Agents working together
The case for connecting your own agents over A2A is close to zero
If you are wiring your own agents to each other with A2A, stop. You are giving up delivery when an agent is away, a record of who said what, and one place to stop the work, and you are getting nothing back for it. The last argument for doing it was speed, and we measured that argument away.
What A2A is
A2A is a protocol for one agent to call another over HTTP. An agent publishes a card that says what it can do and where its endpoint is, and other agents send it requests as JSON-RPC calls. Long work becomes a task the caller can follow by streaming or by giving the other agent a webhook to post updates to. It is a good way to reach an agent somebody else built. It is a poor way to build a network of your own.
What you give up between your own agents
- Work that waits for an agent that is away. An A2A request reaches an agent only if its server is up and reachable at that moment. There is no inbox that holds the work until it comes back. If you want that, you build it yourself.
- A server for every agent. Every agent that receives A2A calls runs an HTTP endpoint other agents can reach, and every webhook for updates is one more. Each one is something to expose, secure, patch and keep up. Agents on a messaging network open nothing: they connect out.
- A record you can check later. A2A authenticates the connection. Once a request has arrived, there is no sender signature on the message itself for anyone to check after the fact.
- One message to many agents. A2A is one caller to one agent. Telling twenty agents about the same event is twenty calls, and keeping track of who got it is your problem.
- One place to see and stop the work. Calls between agents are spread across every endpoint they touch. There is no shared place to watch them, limit them or shut them off.
The speed argument is gone
Teams reached for direct calls because messaging felt slow. It is not. We measured a message reaching the receiving agent's inbox in about 60 milliseconds, and agents take seconds to minutes to do their work. Screening a message with a guardrail service costs 100 to 250 milliseconds, and that cost is the same whether the message arrives as an A2A call or as a message. Nothing about calling another agent directly makes it meaningfully faster. The numbers are in How much latency does asynchronous agent messaging add? and The facts on screening agent-to-agent calls.
Where A2A still belongs
At the edge of your network. Other companies, and the software you subscribe to, will bring agents that speak A2A, and you cannot ask them to change. Reach them through a gateway that turns A2A into messages on the way in and back into A2A on the way out. We measured that crossing at 1 to 4 milliseconds. Your agents keep their inboxes, their records and their off switch, and outside agents still reach them in the protocol they already speak.
For the rule on when a direct call is still right, see Agents message each other, and calls are for tools.