An open protocol enabling communication and interoperability between opaque agentic applications.
An open standard enabling users to connect agents to tools and data through MCP, and to other agents through A2A.
An open standard enabling developers to expose portable tools through MCP and interoperable agents through A2A.
[Get started](./tutorials/python/1-introduction.md){ .md-button .md-button--primary }
[Read the spec](./specification.md){ .md-button }
## What is A2A Protocol?
The **Agent2Agent (A2A) Protocol** is an open standard for seamless communication and collaboration between AI agents. In a world where agents are built using diverse frameworks and by different vendors, A2A provides the definitive common language for agent interoperability.
!!! abstract ""
Build with
**[{class="twemoji lg middle"} ADK](https://adk.dev/)** _(or any framework)_,
equip with **[{class="twemoji lg middle"} MCP](https://modelcontextprotocol.io)** _(or any tool)_,
and communicate with
**{class="twemoji lg middle"} A2A**,
to remote agents, local agents, and humans.
## Key Features
- :material-account-group-outline:{ .lg .middle } **Interoperability**
Connect agents built on different platforms (LangGraph, CrewAI, Semantic Kernel, custom solutions) to create powerful, composite AI systems.
- :material-lan-connect:{ .lg .middle } **Complex Workflows**
Enable agents to delegate sub-tasks, exchange information, and coordinate actions to solve complex problems that a single agent cannot.
- :material-shield-key-outline:{ .lg .middle } **Secure & Opaque**
Agents interact without needing to share internal memory, tools, or proprietary logic, ensuring security and preserving intellectual property.
- :material-puzzle-outline:{ .lg .middle } **Extensible**
Add capabilities through formal protocol [extensions and custom bindings](./topics/extension-and-binding-governance.md), governed by a tiered promotion process so the core stays stable.
## Get started with A2A
- :material-book-open:{ .lg .middle } **Read the Introduction**
Understand the core ideas behind A2A.
[:octicons-arrow-right-24: What is A2A?](./topics/what-is-a2a.md)
[:octicons-arrow-right-24: Key Concepts](./topics/key-concepts.md)
- :material-file-document-outline:{ .lg .middle } **Dive into the Specification**
Explore the detailed technical definition of the A2A protocol.
[:octicons-arrow-right-24: Protocol Specification](./specification.md)
- :material-application-cog-outline:{ .lg .middle } **Follow the Tutorials**
Build your first A2A-compliant agent with our step-by-step Python quickstart.
[:octicons-arrow-right-24: Hands-on-Tutorial](./tutorials/python/1-introduction.md)
- :material-code-braces:{ .lg .middle } **Explore Code Samples**
See A2A in action with sample clients, servers, and agent framework integrations.
[:fontawesome-brands-github: GitHub Samples](https://github.com/a2aproject/a2a-samples)
- :material-console-line:{ .lg .middle } **Use the A2A CLI**
Discover, message, and manage any A2A agent from your terminal — and give your coding assistant the same power.
[:octicons-arrow-right-24: Introducing the A2A CLI](./blog/posts/introducing-a2a-cli.md)
[:fontawesome-brands-github: a2aproject/a2a-cli](https://github.com/a2aproject/a2a-cli)
- :material-code-braces:{ .lg .middle } **Download the Official SDKs**
[:fontawesome-brands-python: Python](https://github.com/a2aproject/a2a-python)
[:fontawesome-brands-js: JavaScript](https://github.com/a2aproject/a2a-js)
[:fontawesome-brands-java: Java](https://github.com/a2aproject/a2a-java)
[:material-language-csharp: C#/.NET](https://github.com/a2aproject/a2a-dotnet)
[:fontawesome-brands-golang: Golang](https://github.com/a2aproject/a2a-go)
[:fontawesome-brands-rust: Rust](https://github.com/a2aproject/a2a-rs)
- :material-play-circle:{ .lg .middle } **Video** Intro in under 8 min
- :material-play-circle:{ .lg .middle } **Course** [DeepLearning.AI](https://www.deeplearning.ai) - Intro to A2A
[](https://goo.gle/dlai-a2a)
## How A2A Works with MCP
The Model Context Protocol (MCP) and the A2A Protocol are not competitors — they are highly complementary. They solve two different problems and are designed to work together.
- **MCP is for agent-to-tool communication:** it standardizes how an agent connects to its tools, APIs, and resources to get information. See [Model Context Protocol](https://modelcontextprotocol.io/).
- **A2A is for agent-to-agent communication:** as a universal, decentralized standard, A2A lets independent agents — including those using MCP — discover each other, delegate tasks, and share results.
Use MCP to equip an individual agent with the specific tools it needs to do its job (e.g., access to a GitHub repository or a SQL database). Use A2A to let that specialized agent securely collaborate with other agents across different frameworks.
```mermaid
flowchart LR
User(🧑💻 User) <--> ClientAgent(🤖 Client Agent)
RemoteAgent(🤖 Remote Agent)
RemoteTool(⚙️ Remote Tool)
ClientAgent -- Using --> RemoteAgent
ClientAgent -- Using --> RemoteTool
style User fill:#fdebd0,stroke:#e67e22,stroke-width:2px
style ClientAgent fill:#d6eaf8,stroke:#3498db,stroke-width:2px
style RemoteAgent fill:#d6eaf8,stroke:#3498db,stroke-width:2px
style RemoteTool fill:#d6eaf8,stroke:#3498db,stroke-width:2px
```
_A client agent reaches remote tools with MCP and remote agents with A2A._
[:octicons-arrow-right-24: A2A and MCP — deeper dive](./topics/a2a-and-mcp.md)
## What A2A Is Not
A2A is a focused protocol. To set expectations, here is what it explicitly does not try to be:
- **Not an agent development kit** like LangGraph, CrewAI, or ADK for building agentic applications. A2A is the communication layer between agents built with any of these.
- **Not a sub-agent or tool-call protocol.** A2A does not specify how an agent talks to its own sub-agents or how it invokes tools — use your framework's native primitives, or MCP, for those.
- **Not a replacement for [MCP](https://modelcontextprotocol.io/).** MCP standardizes agent-to-tool communication; A2A standardizes agent-to-agent communication. They are complementary (see [above](#how-a2a-works-with-mcp)).
- **Not an interactive messaging app** like Slack, Discord, WhatsApp, or Telegram. A2A is a machine-to-machine protocol for autonomous agents.
## Governance & Open Source
A2A was originally developed by Google and donated to the Linux Foundation. It is maintained by a Technical Steering Committee with representatives from AWS, Cisco, Google, IBM Research, Microsoft, Salesforce, SAP, and ServiceNow, and supported by a broad community of [partners](./partners.md).
Join the community on [Discord](https://discord.gg/a2aprotocol) to connect with contributors, ask questions, and discuss the protocol.
For details on how the project is run, see [`GOVERNANCE.md`](https://github.com/a2aproject/A2A/blob/main/GOVERNANCE.md) and [`MAINTAINERS.md`](https://github.com/a2aproject/A2A/blob/main/MAINTAINERS.md).
## License
The A2A Protocol is licensed under the [Apache License 2.0](https://github.com/a2aproject/A2A/blob/main/LICENSE) and welcomes [contributions](https://github.com/a2aproject/A2A/blob/main/CONTRIBUTING.md) from the community.