🤖HermesBlog
Hermes Messaging Platforms · Part 18/9/2026

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 like SendMessage, 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