Skip to content

tool

tool

A2AAgentTool — wraps an external A2A agent as an invocable tool.

Classes

A2AAgentTool

A2AAgentTool(client: A2AClient, *, name: str = '')

Bases: BaseTool

Wraps an external A2A agent as a BaseTool.

Follows the MCPToolAdapter pattern for external tool integration.

Source code in src/openjarvis/a2a/tool.py
def __init__(self, client: A2AClient, *, name: str = "") -> None:
    self._client = client
    self._name = name or "a2a_agent"
    self.tool_id = self._name
    # Try to discover agent info
    try:
        card = client.discover()
        if not name:
            self._name = f"a2a_{card.name.lower().replace(' ', '_')}"
            self.tool_id = self._name
        self._description = card.description or f"External A2A agent: {card.name}"
    except Exception as exc:
        logger.debug("Failed to fetch A2A agent description: %s", exc)
        self._description = "External A2A agent"