A2A Protocol — AI Talking to AI
A2A Protocol — AI Talking to AI — easy-to-understand guide based on official docs
Think of it like two colleagues from different companies exchanging emails to get a project done — except both colleagues are AI agents, and the “email” is a standard protocol called A2A.
A2A (Agent-to-Agent) is an open standard (v1.0, stewarded by the Linux Foundation) that lets independent AI agents talk to each other. It’s like a universal language for AI: whether your agent is a Hermes, a LangChain bot, a CrewAI crew, or a Google ADK agent, they can all understand each other.
When Should You Use A2A?
You might want A2A when:
- Your Hermes on your laptop needs help from a Hermes on a server — each with its own memory, tools, and credentials.
- You want to delegate a task to a specialist agent — like one that’s really good at web searches or coding.
- You want to expose your Hermes as a service so other frameworks’ agents can send it tasks.
Tip: If you’re running multiple agents on the same machine, skip A2A. Use in-process subagents or a kanban board instead. A2A is for crossing machines, processes, or frameworks.
Enabling A2A
Getting started is simple. Run:
hermes gateway setup
Then pick A2A. Or, edit ~/.hermes/config.yaml:
gateway:
platforms:
a2a:
enabled: true
extra:
port: 9900
The outbound tools (calling other agents) are off by default. Turn them on with:
hermes tools
Calling Other Agents (Outbound)
Once enabled, your Hermes gets a set of tools:
a2a_discover(url)— fetch and summarize a peer’s “Agent Card” (like a business card for AI).a2a_call(agent, message, context_id?)— send a task, get a reply.a2a_list()— see configured peers and saved conversations.a2a_history(context_id)— recall a past A2A conversation.a2a_orchestrate(capability, message, mode?)— fan out a task to every peer with a certain skill.
You can configure known peers in config.yaml:
a2a_agents:
researcher:
url: "http://research-box.local:9900"
auth: { type: bearer, token: "..." }
timeout: 120
capabilities: [web_search, research]
Then just ask your Hermes: “Ask the researcher agent to summarize today’s arXiv postings.” It’ll handle the rest.
Being Callable (Inbound)
With the platform enabled, your Hermes serves:
- Agent Card at
GET /.well-known/agent-card.json— advertises your agent’s name, skills, and auth requirements. - JSON-RPC 2.0 at
POST /— standard methods likeSendMessage,GetTask,ListTasks, and more. - SSE streaming for real-time responses.
- Push notifications (webhooks) for long-running tasks, signed with HMAC-SHA256.
Inbound tasks are injected into a live gateway session — so your agent just works as usual.
Summary
A2A is the universal translator for AI agents. It lets your Hermes call others and be called, across machines and frameworks, using a clean, open standard.
Practical tip: Start small. Enable A2A, configure one peer (like a research agent), and try a single a2a_call. Once you see it work, expand to more peers and capabilities. You’ll be building an AI team in no time.
📖 Official Docs
This article is based on the official Hermes Agent documentation:Official docs › user-guide/messaging/a2a