Follow the supply agent's rename
Its Keycloak client and audience scope changed name; the peer entry and the environment variables that point at it move with them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -53,7 +53,7 @@ How to work:
|
||||
bears on a pricing or discontinuation decision. You never act on orders.
|
||||
- State figures as the tools returned them. If a tool returns nothing, say so
|
||||
rather than estimating.
|
||||
- When a decision depends on availability, ask Approvisionnement with
|
||||
- When a decision depends on availability, ask Supply with
|
||||
`check_availability`. It answers; it does not hand back the stock table, and
|
||||
you must not infer availability from the catalog's own quantity field.
|
||||
- Never recommend discontinuing a reference without asking. A reference about to
|
||||
@@ -288,7 +288,7 @@ class CatalogueAgent:
|
||||
is how an agent becomes a proxy onto its neighbours. This one asks a
|
||||
single question of a single peer.
|
||||
"""
|
||||
peer = peers(self._settings)["approvisionnement"]
|
||||
peer = peers(self._settings)["supply"]
|
||||
settings, exchanger = self._settings, self._exchanger
|
||||
|
||||
async def check_availability(productcode: str) -> str:
|
||||
|
||||
@@ -39,8 +39,8 @@ class Settings(BaseSettings):
|
||||
# An A2A call returns an answer, not data. Consulting this one is how the
|
||||
# agent learns whether a reference is about to be reordered before it
|
||||
# recommends dropping it — without gaining any sight of the supply domain.
|
||||
approvisionnement_url: str = "http://supply-agent.agents.svc.cluster.local:8080/"
|
||||
approvisionnement_scope: str = "classic-models-agent-approvisionnement-audience"
|
||||
supply_url: str = "http://supply-agent.agents.svc.cluster.local:8080/"
|
||||
supply_scope: str = "classic-models-agent-supply-audience"
|
||||
mcp_sales_scope: str = "mcp-sales-audience token-exchange-broker-audience"
|
||||
|
||||
# --- inference ----------------------------------------------------------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
"""Calling another agent, as a tool the model can reach for.
|
||||
|
||||
The rule this agent lives by: **an A2A call returns an answer, not data.** It
|
||||
asks Approvisionnement "can S10_1949 be promised?" and receives a decision. It
|
||||
asks Supply "can S10_1949 be promised?" and receives a decision. It
|
||||
never gains read access to whatever that agent can see, and it must not — the
|
||||
whole per-domain scoping rests on a specialist answering rather than handing
|
||||
over its records.
|
||||
@@ -11,7 +11,7 @@ A generic one would let the model reach any peer with any prompt, which is how
|
||||
an agent becomes a proxy onto its neighbours.
|
||||
|
||||
The peer's token is minted per call, for that peer alone, from the end user's
|
||||
own token. A token for Approvisionnement is refused by every other agent, so a
|
||||
own token. A token for Supply is refused by every other agent, so a
|
||||
prompt injection that talks this agent into consulting the wrong peer fails at
|
||||
the realm.
|
||||
"""
|
||||
@@ -42,16 +42,16 @@ class Peer:
|
||||
|
||||
|
||||
def peers(settings: Settings) -> dict[str, Peer]:
|
||||
"""Approvisionnement, and nothing else.
|
||||
"""Supply, and nothing else.
|
||||
|
||||
The design has this agent consult it before a discontinuation decision:
|
||||
a reference that is about to be reordered is not a reference to drop.
|
||||
"""
|
||||
return {
|
||||
"approvisionnement": Peer(
|
||||
"approvisionnement",
|
||||
settings.approvisionnement_url,
|
||||
settings.approvisionnement_scope,
|
||||
"supply": Peer(
|
||||
"supply",
|
||||
settings.supply_url,
|
||||
settings.supply_scope,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user