Normandy.A2A.AgentTool
(normandy v0.6.2)
View Source
Wraps a remote A2A agent as a Normandy BaseTool.
When the LLM calls this tool, a message is sent to the remote agent via the A2A protocol and the result is returned.
Example
alias Normandy.A2A.AgentTool
{:ok, card} = Claudio.A2A.Client.discover("https://agent.example.com")
tool = AgentTool.new("https://agent.example.com/a2a", card,
auth_token: "bearer-token",
timeout: 30_000
)
agent = BaseAgent.register_tool(agent, tool)
Summary
Functions
Creates a new AgentTool for a remote A2A agent.
Prepares the tool with LLM-provided input parameters.
Types
@type t() :: %Normandy.A2A.AgentTool{ agent_card: Claudio.A2A.AgentCard.t(), auth_token: String.t() | nil, endpoint: String.t(), input: map(), skill_id: String.t() | nil, timeout: pos_integer(), transport_opts: keyword() }
Functions
@spec new(String.t(), Claudio.A2A.AgentCard.t(), keyword()) :: t()
Creates a new AgentTool for a remote A2A agent.
Options
:skill_id- Specific skill to expose (nil for general agent access):auth_token- Bearer token for authentication:transport_opts- Options passed to the A2A transport:timeout- Maximum time to wait for task completion (default: 60s)
Prepares the tool with LLM-provided input parameters.