ConfigsApr 6, 2026·3 min read

A2A Protocol — Agent-to-Agent Communication Standard

Google's open protocol for AI agents to discover, communicate, and collaborate across frameworks. SDKs for Python, TypeScript, Java, Go, and .NET. 23,000+ stars, Apache 2.0.

TL;DR
Google's open protocol enabling AI agents to discover, communicate, and collaborate across frameworks.
§01

What it is

The A2A (Agent-to-Agent) Protocol is Google's open standard for AI agents to discover each other's capabilities, communicate, and collaborate regardless of the framework they were built with. Each agent publishes an Agent Card describing its skills, and other agents use the protocol to delegate tasks, exchange data, and coordinate multi-agent workflows. SDKs are available for Python, TypeScript, Java, Go, and .NET.

Developers building multi-agent systems where agents from different frameworks need to interoperate benefit from A2A. It solves the problem of vendor lock-in in agent orchestration by providing a shared communication layer.

§02

How it saves time or tokens

Without A2A, connecting agents built on different frameworks requires custom integration code for each pair. A2A standardizes this with a single protocol, reducing the integration work from O(n^2) to O(n). Agents can also discover each other's capabilities dynamically, avoiding the overhead of hardcoded routing logic.

§03

How to use

  1. Install the A2A SDK for your language
  2. Create an Agent Card describing your agent's capabilities
  3. Implement the A2A server interface and connect to other A2A agents
§04

Example

# Python SDK
from a2a import A2AServer, AgentCard, Task

card = AgentCard(
    name='code-reviewer',
    description='Reviews Python code for bugs and style issues',
    skills=['code-review', 'python']
)

class MyAgent(A2AServer):
    def handle_task(self, task: Task):
        code = task.input['code']
        # Review the code...
        return {'review': 'LGTM, no issues found'}

agent = MyAgent(card=card)
agent.start(port=8080)
# TypeScript/JavaScript
npm install @a2a-js/sdk

# Go
go get github.com/a2aproject/a2a-go
§05

Related on TokRepo

§06

Common pitfalls

  • A2A is a communication protocol, not an orchestration framework; you still need logic to decide which agent handles which task
  • Agent discovery requires a registry or known endpoints; there is no global agent directory built into the protocol
  • Protocol adoption is early; expect breaking changes in the SDK as the specification evolves

Frequently Asked Questions

How is A2A different from MCP?+

MCP (Model Context Protocol) connects AI agents to tools and data sources. A2A connects agents to each other. They are complementary: an agent uses MCP to access tools and A2A to collaborate with other agents.

Which programming languages have A2A SDKs?+

Official SDKs are available for Python, TypeScript/JavaScript, Java, Go, and .NET. The protocol is language-agnostic, so any language that can handle HTTP/JSON can implement it.

What is an Agent Card?+

An Agent Card is a JSON document that describes an agent's identity, capabilities, and skills. Other agents read the card to discover what tasks the agent can handle. It serves as the agent's public interface definition.

Is A2A production-ready?+

A2A is an open specification with growing adoption. It is suitable for building production multi-agent systems, though the protocol and SDKs are still evolving. Pin your SDK version and monitor for breaking changes.

Can A2A agents work with non-A2A agents?+

Not directly through the A2A protocol. You would need to wrap a non-A2A agent with an A2A server interface that translates between the protocols. This is similar to writing an API adapter.

Citations (3)
🙏

Source & Thanks

Created by Google, hosted by Linux Foundation. Licensed under Apache 2.0.

A2A — ⭐ 23,000+

Thank you to Google and the A2A project team for building the definitive agent interoperability standard.

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets