A2A Production Patterns: Why Multi-Agent Systems Need a Protocol
Back to all articles
AI Engineering
11 min read14 min read

A2A Production Patterns: Why Multi-Agent Systems Need a Protocol

Google's A2A protocol is not another agent framework. It is the missing standard for secure, multi-agent coordination in real production systems.

Debasish Maji
Debasish Maji
AI Engineering Lead
September 2, 2026
A2AAgentic AIMCPMulti-Agent SystemsArchitectureProduction AI

A2A is the missing standard for production multi-agent systems

The first thing most teams learn is that the model is not the bottleneck. The bottleneck is coordination.

You can build an excellent single-agent system with a good prompt, a clean tool layer, and a reliable evaluation loop. The moment you add a second specialist agent, a vendor-specific workflow, or a human approval gate, the whole architecture changes. The question stops being "Can the model reason?" and becomes "How do agents discover each other, hand off work, and keep state consistent without leaking private tooling or memory?"

That is exactly why Google's new Agent2Agent protocol, or A2A, matters right now. Announced in September 2026 and donated to the Linux Foundation, A2A is an open protocol for agent-to-agent interoperability. The project description is explicit: it is meant to let agents built on different frameworks coordinate securely without sharing their internal memory, tools, or proprietary logic. The Google blog and the protocol docs describe the same core idea: A2A fixes the communication layer that the ecosystem was missing.

MCP solved the tool side of the problem. The framework for remote agent communication was not there. That gap is why we keep seeing the same anti-patterns in production: giant orchestrators with brittle JSON schemas, hardcoded agent names, and brittle HTTP wrappers around everything that should really be a protocol.

If you have already read our MCP tutorial and agentic AI guide, this is the next step. A2A is not a replacement for those ideas. It is the layer that makes them work across teams, vendors, and long-running workflows.

MCP fixed tool access. A2A fixes agent handoff.

The best summary of the relationship between the two standards is in the official A2A docs: MCP standardizes how an agent connects to tools, APIs, and data sources. A2A standardizes how one agent discovers another agent, delegates work, and exchanges results.

That is the difference between a tool contract and an agent contract.

A tool contract answers questions like:

  • What does this function take?
  • What do I pass in?
  • What does it return?
  • How do I authenticate?

An agent contract answers different questions:

  • What capabilities does this agent expose?
  • Can it do this task, or only that one?
  • Does it support a long-running workflow?
  • Can it stream updates, or is it a synchronous endpoint?
  • How do I negotiate output formats for a UI, a file, or a structured artifact?

That distinction matters because most teams do not need a smarter model. They need a cleaner protocol for delegation.

The A2A docs make the separation explicit: the protocol is not an agent development kit. It is not a replacement for your orchestrator or your framework. It is a communication layer between agents. The same official language says A2A is not a sub-agent protocol or a tool-call format. It is a machine-to-machine protocol designed for autonomous collaboration.

This is the right shape. A good agent architecture is not a single monolithic agent pretending to be a generalist. It is a fleet of specialists with clear contracts. What is agentic AI becomes operational only once you can define those contracts cleanly.

What A2A actually defines in production

The main reason A2A is interesting is that it defines a real task lifecycle instead of a free-form chat transcript. The Google blog and the current A2A spec point to a few concrete building blocks.

First, there is the Agent Card. This is the public metadata describing what a remote agent does. It is the equivalent of a service registry for agents. In a production system, the card tells a client agent what capabilities are available, what message formats are expected, and which tasks the remote agent is allowed to perform. This is where discovery starts.

Second, there is the task model. A2A treats work as a task with a lifecycle, not as a single-turn message. A remote agent can accept a task, update progress, and then return an artifact once work is done. This is critical for long-running work such as research, compliance review, procurement workflow, or candidate screening, where the user does not want to wait for an agent to finish while the agent process is still composing a response. The protocol was explicitly designed to support long-running tasks and status updates.

Third, there are parts and artifact negotiation. The protocol supports message parts with content types and allows a client to negotiate the right format for the interface: a transcript, a structured object, a generated image, or a form that another UI needs. This is a serious production feature because one of the most expensive mistakes in agent systems is assuming every agent output can be rendered as plain text. Real agent systems need typed outputs, not just natural-language speeches.

Fourth, it is designed around HTTP, JSON-RPC and SSE. That matters because the ecosystem can build on what already exists in enterprise systems: auth, proxies, load balancers, API gateways, monitoring, and event streams. This is not a proprietary protocol hidden inside a vendor SDK. It is designed to be deployable in the same environments that already run internal APIs.

Taken together, these are not just semantics. They are the beginning of a production interface contract.

The real production pattern: specialized agents over a single generalist

The strongest use of A2A is not "an agent that talks to another agent for fun." It is the pattern where each agent owns one job and the system routes work to the correct specialist.

A clean architecture looks like this:

  1. 1A client agent receives the user request.
  2. 2It decides which remote agent has the right capability.
  3. 3It calls the remote agent through A2A.
  4. 4The remote agent executes its specialized workflow and returns structured output or progress updates.
  5. 5The client agent aggregates the results and responds to the user.

This is how you stop the classic failure mode of multi-agent systems: every agent becoming a little bit of everything, with no clean boundaries and no reliable way to reason about who owns what.

Think about the standard enterprise examples Google highlighted: hiring workflows, service operations, procurement, customer support, and supply-chain tasks. These are not examples of one large general-purpose agent. They are examples of a coordinator and multiple specialists who know their own domains and can exchange structured results.

This pattern matters even more in internal product teams. A marketing agent can source demand signals, a sales agent can rank leads, a product research agent can summarize customer feedback, and a data quality agent can validate outputs before the orchestrator surfaces anything to the user. Each one has a narrow capability and a clear contract. A2A gives you a standard way to express that without inventing custom HTTP wrappers for every integration.

Why this is different from the usual "agent orchestration" hype

A lot of multi-agent writing is just a pitch for another orchestration framework. That is the wrong abstraction boundary.

If you are using LangGraph, CrewAI, Semantic Kernel, or a custom orchestrator, keep using it. Those tools are still useful for task planning, routing, retries, loops, and guardrails. But a protocol like A2A is what happens when you need a remote agent boundary. It is not a replacement for the orchestrator. It is the interface that lets different orchestrators talk to each other.

This becomes visible in practice in the A2A docs: the protocol explicitly does not try to be an agent development kit. It does not stand in for your framework's own tool-calling or sub-agent logic. It is not a new user-facing chat app. It is a source of truth for machine-to-machine communication between agent systems.

That distinction matters. A company that ships a single monolithic agent experiences fewer coordination problems than one that builds four different stacks, each with their own way of delegating work. A2A lets that architecture remain modular instead of turning into a fleet of incompatible adapters.

The production problems A2A helps solve

A2A is best understood as a way to reduce the failure modes that keep multi-agent systems brittle.

1. Capability discovery

Without a protocol, every agent needs custom discovery logic. You end up writing code like "if agent name ends with pricing, call this endpoint; if it has the word claims tag, call that one." That is fragile and expensive.

A2A introduces structured capability discovery through the Agent Card. That means the client can ask, "What can this remote agent do, and what task shapes does it accept?" That is a much more stable contract than a single endpoint with undocumented semantics.

2. Long-running work

The protocol supports long-running tasks and progressive updates. That is essential before you can build systems where an agent continues working while a user goes off to another task. Without this, every system becomes a blocking call that turns into a UI timer rather than a real workflow.

3. Output negotiation

A lot of agent systems fail in real clients because they assume text output. A2A gives a way to negotiate artifacts and content types. This is extremely important for products that need to render charts, structured JSON, PDFs, or embedded forms rather than a plain chat transcript.

4. Vendor and framework independence

This is the big enterprise story. A2A is designed to work across frameworks and vendors. For large organizations, that is not a nice-to-have. It is the difference between a pilot and an operating model.

How I would build it in a real system

I would not start by building a protocol from scratch. I would start by defining the contract and then use the right framework on top of it.

This is the pattern I recommend for an internal product team:

Python
import json
import requests

AGENT_CARD = {
    "name": "pricing-agent",
    "description": "Finds pricing and coverage options for enterprise plans.",
    "capabilities": ["pricing", "coverage", "legal-review"],
    "url": "https://agents.example.com/a2a",
}

payload = {
    "jsonrpc": "2.0",
    "id": "task-42",
    "method": "tasks/send",
    "params": {
        "message": {
            "role": "user",
            "parts": [{
                "type": "text",
                "text": "Compare pricing for a 200-seat plan in the US and India."
            }]
        }
    }
}

response = requests.post(
    "https://agents.example.com/a2a",
    json=payload,
    timeout=30,
)
response.raise_for_status()

result = response.json()
print(json.dumps(result, indent=2))

This is intentionally minimal, because the real value is not the code shape. It is the contract: the client does not need to know the remote agent internals; it discovers a capability, sends a task, and consumes the task result or progress updates through a standard shape.

The second thing I would build is a strict output envelope. Every remote agent should return:

  • a task ID,
  • a status,
  • a version of the artifact,
  • an explicit schema, and
  • clear failure modes.

If an agent can produce only one text output and one side effect, that is still fine. The important part is that this is defined up front and enforced.

This is exactly where most agent systems fail: they turn a human conversation into a production contract without any type discipline. A2A is a step toward fixing that by making the remote interaction a real API boundary rather than a loose message stream.

What to watch out for

A2A solves real architectural problems, but it does not remove the need for operational discipline. The most common failure modes still show up in production.

The first is capability mismatch. An agent advertises a capability that it cannot reliably deliver. This is the same issue as in any service registry, but it is worse when the agent decides at runtime what it can do. You need explicit contracts and opinionated tests for every remote skill.

The second is state drift. Remote agents can update progress while the client is still making decisions. If your system does not use task IDs, versioning, and clear handoff semantics, you end up with duplicate or stale work.

The third is auth and trust boundaries. A2A is designed to be secure by default, but a secure protocol still needs strong identity and authorization. If your client can call any remote agent without policy checks, you will end up with the same failure mode as every other internal API: too much trust and no explicit scope.

The fourth is over-optimizing for coordination before you have a single useful agent. If the system is not solving a real workflow, protocol engineering is just churn. Build the single specialist first. Then give it a clean contract. Then add the second agent.

My view: A2A matters because the hard part is no longer the model

The hardest part of a production AI system is not writing another prompt. It is deciding who owns the task, how the task moves between systems, and how you keep the chain of accountability intact when multiple agents are involved.

That is why A2A matters. It is the protocol layer that says, "Here is the interface for collaboration," rather than leaving every team to design its own ad hoc handshake.

The market is moving in this direction for a reason. When agents need to operate across frameworks, vendors, and enterprise systems, you cannot keep pretending that a single API wrapper is enough. You need a shared protocol, and A2A is the first one that looks like it was designed for real production use rather than for a demo.

If you are designing multi-agent systems today, do not treat A2A as an edge-case protocol. Treat it as the start of a stable platform boundary. Use it alongside MCP, your agent design process, and a strong operational model. That is how you turn an impressive demo into a system that keeps working when the number of moving parts grows.

Frequently Asked Questions

What is A2A and how is it different from MCP?

MCP standardizes how an agent connects to tools, APIs, and data sources. A2A standardizes how one agent discovers and delegates work to another agent. They are complementary, not competing standards. You use MCP for tool access and A2A for agent-to-agent communication.

Is A2A a framework or a protocol?

A2A is a protocol. It defines the task and message semantics, and it is designed to run over established web standards like HTTP, JSON-RPC, and SSE. It does not replace frameworks like LangGraph, CrewAI, or Semantic Kernel. It sits above them and lets them interoperate.

When should an engineering team care about A2A?

When you have multiple specialized agents, or when you need to integrate across vendors or frameworks, A2A becomes useful very quickly. It is especially important for long-running workflows, delegation, and enterprise systems that need standard discovery and authentication.

Does A2A replace orchestrators?

No. Orchestrators are still the place where you decide how work is planned, routed, retried, and evaluated. A2A is the protocol for remote agent communication. Use orchestration for local control flow and A2A for cross-agent boundaries.

What should I watch out for in production?

The biggest risks are capability mismatch, state drift, weak auth boundaries, and turning a real workflow into a decorative agent demo. Treat the Agent Card and task lifecycle as part of your API contract, not as optional metadata.

Where to go from here

If you want to move from theory to implementation, start with the systems that are already real: AI agent foundations, MCP basics, and the agentic AI course. If you are thinking about your own path, the AI engineer roadmap gives a practical sequence for building the right skills.

If you want to see this in a live session, join one of our workshops. The next session is priced at ₹499 / $19 and is designed to make the architecture real, not theoretical. If you want a lighter starting point, grab the free Claude Code cheat sheet and then check out our AI career tools and resume checker.

A2A is not a fancy abstraction. It is a practical answer to the real problem every multi-agent team eventually hits: the moment one agent needs to work with another agent in a way that is secure, portable, and operationally sane.

Found this helpful?

Share it with others who might benefit

TweetShare

Related articles

📚 Continue Learning