Agent-to-Agent Protocol (A2A) Deep Dive: Google's Open Standard for Agent Interop
Google's A2A protocol shipped in 2025 to let agents from different vendors talk to each other. Here is what it does, where it differs from MCP, and who is adopting.
What A2A Solved That MCP Did Not
MCP (Model Context Protocol) standardized how an agent talks to a tool. A2A (Agent-to-Agent) standardizes how an agent talks to another agent. They sit at different layers and complement rather than compete. Google open-sourced A2A in mid-2025 with backing from 50+ vendors. By 2026 it is the dominant cross-vendor agent interop spec.
This is what A2A is, what it is not, and how to think about it relative to the rest of the agent stack.
The Layered Model
flowchart TB
User[User] --> Host[Host App<br/>Claude Desktop, ChatGPT, Cursor]
Host -->|MCP| Tool[MCP Tool/Server]
Host -->|A2A| Agent[Remote Agent]
Agent -->|MCP| Tool2[Tool]
Agent -->|A2A| Agent2[Sub-agent]
MCP is host-to-tool. A2A is agent-to-agent. An agent can be an MCP host AND an A2A peer at the same time.
The Core A2A Concepts
A2A defines four primary objects:
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
- Agent Card: a small metadata document at
/.well-known/agent.jsonthat describes who the agent is, what it can do, what skills it advertises, and how to authenticate - Task: a unit of work an agent is asked to do, identifiable, statefully tracked
- Message: structured request/response in the conversation around a task
- Artifact: outputs produced by the agent — files, structured objects, streamed events
The transport is HTTP with JSON-RPC over either polling or Server-Sent Events for streaming updates.
A Sample A2A Interaction
sequenceDiagram
participant Cli as Client Agent
participant Srv as Server Agent
Cli->>Srv: GET /.well-known/agent.json
Srv-->>Cli: agent card (skills, auth)
Cli->>Srv: POST tasks/send (task, message)
Srv-->>Cli: task accepted (id)
Cli->>Srv: GET tasks/{id}/events (SSE)
Srv-->>Cli: status: working
Srv-->>Cli: artifact: partial result
Srv-->>Cli: status: completed
How A2A Differs from MCP
| Feature | MCP | A2A |
|---|---|---|
| Direction | Host → Tool | Agent → Agent |
| Transport | stdio / SSE / streamable HTTP | HTTP + SSE |
| State | tool calls are stateless | tasks are stateful |
| Discovery | server registries | well-known agent cards + DNS |
| Auth | OAuth 2.1 (extension) | OAuth 2.1 native |
The two are designed to compose. An A2A server agent typically uses MCP servers internally for its own tool calls.
Who's Adopting
By Q1 2026 the public adopters include Salesforce (Agentforce), ServiceNow, SAP, Atlassian (Rovo), Box, and dozens of smaller agent platforms. Microsoft's Copilot Studio supports A2A as of February 2026. Anthropic shipped A2A as a Claude plugin standard in March 2026.
The notable holdout: OpenAI's Agent Builder uses its own protocol (closer to function-calling-as-a-service) and has not committed to A2A. The 2026 betting line is that interop will eventually force everyone in.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
What A2A Does Not Solve
Three things A2A explicitly leaves to higher-level systems:
- Discovery beyond well-known URLs: there is no global registry, by design
- Trust and authorization: A2A says how to authenticate; it does not say how to decide which agents to trust
- Cost and resource accounting: how money flows when one agent invokes another is out of scope
These are being addressed by adjacent specs (Agent Communications Protocol, Agent Capability Negotiation), but A2A itself is deliberately narrow.
Practical Pattern: The Agent-as-Service
In 2026 the pattern emerging is "agent as a microservice." A specialist agent (say, a billing-resolution agent) lives at https://billing.example.com with an agent card, exposes its capabilities, and any other agent in the org's catalog can invoke it. Internal teams ship agents the way they used to ship microservices.
flowchart LR
Triage[Triage Agent] -->|A2A| Billing[Billing Agent]
Triage -->|A2A| Returns[Returns Agent]
Triage -->|A2A| Tech[Tech Support Agent]
Billing -->|MCP| Stripe
Returns -->|MCP| WMS
Tech -->|MCP| Sentry
Builder Notes for 2026
If you are shipping an A2A-compatible agent, a few practical patterns:
- Implement
/.well-known/agent.jsonfirst; clients discover capabilities here - Stream meaningful progress events; clients use them for UX
- Use task IDs as durable handles; clients reconnect with them
- Implement OAuth 2.1 with PKCE from day one; do not retrofit auth later
Sources
- A2A specification — https://github.com/google/A2A
- Google A2A blog announcement — https://cloud.google.com/blog/products/ai-machine-learning
- "MCP and A2A together" Anthropic — https://www.anthropic.com/news
- Salesforce Agentforce A2A support — https://www.salesforce.com/news
- "Agent interop in 2026" review — https://thenewstack.io
Try CallSphere AI Voice Agents
See how AI voice agents work for your industry. Live demo available -- no signup required.