What is agent to agent protocol?

Quick answer

Agent2Agent, usually shortened to A2A, is an open protocol that lets independently built AI agents discover each other’s capabilities and collaborate on a task through a standardized set of messages, regardless of which vendor, framework, or underlying model each agent was built with. It was originally developed by Google and later contributed to the Linux Foundation for open, vendor-neutral governance, and it addresses a specific gap the Model Context Protocol doesn’t: where MCP standardizes how a single agent connects to tools and data, A2A standardizes how two or more agents, each capable of independent reasoning, talk to each other directly.

Summary slides
Agent to agent protocol
The specific problem A2A was built to solve
How a task actually moves through the protocol
Why enterprise adoption has leaned toward A2A specifically
Common mistakes teams make around A2A

The specific problem A2A was built to solve

Before a shared standard existed for this, an organization running multiple agents from different vendors or built on different frameworks had no reliable way to make them work together. A customer-support agent built on one platform and a billing agent built on another had no common language for the first to hand off a billing question to the second, so any integration between them had to be built as custom, bespoke code specific to that exact pairing. This is the same integration-burden problem covered in the broader discussion of agent communication protocols elsewhere in this collection, applied specifically to the case where both sides of the connection are independently reasoning agents rather than one agent calling a passive tool.

A2A closes this gap by giving any conforming agent a standardized way to advertise what it can do, receive a task from another agent, work on that task, and return a result, all without either side needing to know anything about the other’s internal implementation. An agent built with one framework can hand work to an agent built with an entirely different one, provided both speak A2A, in much the same way two web servers built with completely different technology stacks can talk to each other because both speak HTTP.

How an agent describes itself to others through an Agent Card

The mechanism A2A uses for discovery is called an Agent Card, a structured, machine-readable document that describes what a given agent can do, what skills it offers, what input and output formats it expects, and how to actually reach it. A client agent looking for help with a task can retrieve another agent’s Agent Card and use it to determine whether that agent is actually suited to the work, without needing a human to manually research and configure the connection in advance.

This matters because it’s what makes dynamic, on-the-fly collaboration between agents genuinely possible rather than something that only works when every connection was hardcoded ahead of time. A system that queries several available agents’ cards, compares their advertised skills against the task at hand, and picks the most suitable one, is doing something that simply isn’t achievable without a standardized, reliable way for agents to describe their own capabilities in a format every other agent can parse and trust.

How a task actually moves through the protocol

Once a client agent has identified a suitable remote agent, A2A structures their interaction around the concept of a task, a unit of work that gets created, tracked through defined states as it progresses, and eventually completed, failed, or cancelled. This task-oriented structure matters specifically because many genuinely useful agent-to-agent collaborations aren’t instantaneous, a remote agent might need considerable time to research something, call several tools of its own, or wait on a slow external process, and A2A is built to support this kind of long-running interaction rather than assuming every exchange resolves in a single, quick request and response.

Within a task, agents can exchange messages back and forth, which supports the more realistic case where a task isn’t fully specified upfront, a remote agent might need to ask a clarifying question partway through, or report partial progress before the task is fully done. The protocol also defines artifacts as the structured outputs a task produces, giving both sides a consistent way to represent and exchange the actual result of the work, whether that’s a document, a piece of data, or some other concrete deliverable, rather than leaving the shape of a finished result ambiguous between two systems that might otherwise have no shared convention for representing it.

Why A2A and the Model Context Protocol are complementary rather than competing

It’s a common point of confusion to treat A2A and the Model Context Protocol as alternatives solving the same problem, when they actually address different layers of the same broader system and are frequently used together. MCP governs how a single agent reaches out to tools, databases, and other external resources it needs to complete its own work. A2A governs how that same agent, once it’s done reasoning about a task, hands part of that task off to a different, independently capable agent rather than to a passive tool.

A practical system often uses both at once: an orchestrating agent might use MCP to pull data from a database it needs for context, then use A2A to delegate a specialized subtask, drafting a legal summary, running a complex financial analysis, to a different agent that’s specifically built and trusted for that narrower kind of work, before assembling the combined result. Understanding this division of labor is what keeps a team from either forcing tool access through an agent-to-agent protocol it wasn’t designed for, or trying to coordinate genuinely independent agents through a tool-access protocol that has no real concept of a second reasoning system on the other end.

What makes coordinating two agents harder than calling a tool

A2A has to solve problems that simply don’t arise when one agent is calling a well-defined tool, because the entity on the other end of an A2A connection is itself uncertain, capable of misunderstanding a request, and producing output that isn’t guaranteed to be correct just because it arrived in a well-formed message. This connects directly to the broader discussion of agent verification covered elsewhere in this collection: a client agent receiving a result from a remote agent through A2A still needs to apply the same scrutiny it would apply to any AI-generated claim, rather than trusting a result simply because it arrived through a properly structured protocol exchange.

The protocol’s support for streaming updates and intermediate messages during a long-running task partly addresses this, giving the client agent visibility into how a remote agent is progressing rather than only seeing a final, opaque result at the end. This transparency matters for trust in the same way it matters for a human supervising an agent’s work, seeing the reasoning and the intermediate steps gives a coordinating agent, or a human reviewing that coordination, a concrete basis for judging whether a result is actually trustworthy, rather than having to accept or reject a finished deliverable with no visibility into how it was produced.

Why enterprise adoption has leaned toward A2A specifically

Since its contribution to the Linux Foundation, A2A has attracted support from a broad range of companies building agent platforms and enterprise software, precisely because the problem it solves, letting agents from different vendors interoperate, matters enormously to any organization that doesn’t want to be locked into building every agent on a single vendor’s stack. An enterprise running agents from several different providers has a direct, practical incentive to see all of them converge on a shared coordination standard rather than each vendor pushing its own incompatible approach, since the alternative is exactly the custom, bilateral integration burden standardization exists to eliminate in the first place.

This dynamic is part of why A2A has moved relatively quickly toward broad, cross-vendor support compared to how agent-to-agent coordination standards might have evolved in a purely single-vendor world. A protocol that only one company controls has limited appeal to competitors and to the organizations that don’t want to depend on a single vendor’s roadmap, while a protocol governed openly, with contributions and support from many independent parties, has a considerably stronger claim to becoming the shared, durable standard the broader ecosystem actually needs.

What building on A2A actually looks like in practice

For a team building a system that needs several specialized agents to work together, adopting A2A means each participating agent exposes an Agent Card describing its capabilities, implements the task lifecycle the protocol defines, and handles incoming requests according to the protocol’s message format, work that’s typically handled by a software development kit rather than something a team implements entirely from scratch. This lets a team focus on what a given agent actually does well, its specific reasoning and its specific tools, while relying on the protocol layer to handle the mechanics of discovery, task tracking, and message exchange consistently.

The practical payoff shows up specifically once a system grows beyond a single agent handling everything itself. A team that starts with one general-purpose agent and later wants to introduce a specialized agent for a narrower, higher-stakes category of task, legal review, financial calculations, security analysis, can add that specialized agent and connect it through A2A without needing to rebuild the coordination layer from scratch, provided the original system was built with this kind of extension in mind from early on rather than as an afterthought bolted onto an architecture that assumed a single agent would always be doing everything.

Common mistakes teams make around A2A

1. Treating A2A and the Model Context Protocol as competing standards rather than recognizing they solve different problems and are frequently deployed together.

2. Trusting a result received through an A2A exchange without applying the same verification discipline that applies to any AI-generated output, simply because it arrived through a well-structured protocol.

3. Building a system around a single, monolithic agent with no architectural room for the kind of specialized agent delegation A2A is meant to support, then finding it difficult to retrofit later.

4. Assuming every agent-to-agent collaboration will resolve quickly, and failing to design for the long-running, multi-step tasks A2A’s task lifecycle was specifically built to accommodate.

5. Skipping the transparency A2A’s streaming and intermediate messaging support provides, receiving only a final result with no visibility into how a remote agent actually arrived at it.

What connects these mistakes is underestimating that coordinating with another independently reasoning agent is a genuinely different problem from calling a well-defined tool, one that requires the same skepticism, transparency, and careful task design that any collaboration between independent, fallible reasoning systems actually calls for.

The deeper reason A2A matters is that the next stage of agentic systems isn’t a single, ever more capable agent doing everything, it’s networks of specialized agents that each do one thing well and know how to hand work to each other reliably, and a shared, open, vendor-neutral protocol is what makes that kind of networked collaboration achievable across an ecosystem built by many different organizations, rather than something that only works within the narrow confines of a single vendor’s own platform.