Normandy.A2A.Registry (normandy v0.6.2)

View Source

Helpers for discovering remote A2A agents and registering them as tools.

Example

alias Normandy.A2A.Registry, as: A2ARegistry
alias Normandy.Tools.Registry

registry = Registry.new()

{:ok, registry} = A2ARegistry.discover_and_register(
  registry,
  "https://agent.example.com",
  auth_token: "bearer-token"
)

Summary

Functions

Discovers a remote A2A agent and registers it as tool(s) in the registry.

Creates AgentTool structs from a pre-fetched agent card.

Functions

discover_and_register(registry, base_url, opts \\ [])

@spec discover_and_register(Normandy.Tools.Registry.t(), String.t(), keyword()) ::
  {:ok, Normandy.Tools.Registry.t()} | {:error, term()}

Discovers a remote A2A agent and registers it as tool(s) in the registry.

Creates one tool per skill if the agent has skills, or a single general tool if it has no skills.

Options

  • :auth_token - Bearer token for authentication
  • :transport_opts - Options passed to the A2A transport (also used for discovery)
  • :timeout - Task completion timeout (default: 60s)

from_agent_card(agent_card, endpoint, opts \\ [])

@spec from_agent_card(Claudio.A2A.AgentCard.t(), String.t(), keyword()) :: [
  Normandy.A2A.AgentTool.t()
]

Creates AgentTool structs from a pre-fetched agent card.

Returns one tool per skill, or a single general tool if no skills.