Content
# Awesome A2A [](https://awesome.re)
> A curated list of awesome Agent2Agent (A2A) protocol resources, including server implementations, libraries, tools, and tutorials to help developers build interoperable AI agent systems.
## Contents
* [What is A2A?](#what-is-a2a)
* [Key Principles](#key-principles)
* [How A2A Works](#how-a2a-works)
* [Getting Started](#getting-started)
* [Official Resources](#official-resources)
* [Server Implementations](#server-implementations)
* [Frameworks & Libraries](#frameworks--libraries)
* [Tools & Utilities](#tools--utilities)
* [Articles](#articles)
* [Tutorials](#-tutorials)
* [Demos & Examples](#demos--examples)
* [Related Protocols & Concepts](#related-protocols--concepts)
* [Community](#community)
* [Contributing](#contributing)
* [License](#license)
## What is A2A?
A2A (Agent2Agent) is an open protocol created by Google and partners that enables different AI agents from various vendors and frameworks to communicate securely and collaborate on tasks. It aims to break down silos between isolated agent systems, enabling more complex cross-application automation.
**⭐ Official Website:** [google.github.io/A2A](https://google.github.io/A2A) | **⭐ Official GitHub:** [github.com/google/A2A](https://github.com/google/A2A)
## Key Principles
* **Simple:** Uses existing standards (HTTP, JSON-RPC, SSE)
* **Enterprise Ready:** Focuses on Auth, Security, Privacy, Monitoring
* **Async First:** Handles long-running tasks & human-in-the-loop
* **Modality Agnostic:** Supports Text, Files, Forms, Streams, etc.
* **Opaque Execution:** Agents interact without sharing internal logic/tools
## How A2A Works
1. **Discovery:** Agents publish an `Agent Card` (JSON) describing capabilities, endpoint, and auth needs
2. **Communication:** A `Client` agent sends a `Task` request (containing a `Message` with `Parts`) to a `Remote Agent (Server)` using HTTP/JSON-RPC 2.0
3. **Execution & Response:** The Server processes the task, updating its `status`. It responds with the final status and any generated `Artifacts` (results)
4. **Updates:** For long tasks, the Server can optionally stream `TaskStatusUpdateEvent` or `TaskArtifactUpdateEvent` via Server-Sent Events (SSE) or use Push Notifications
*For details, see the [Official Technical Documentation](https://google.github.io/A2A/#/documentation)*
## Getting Started
New to A2A? Here's a suggested path:
1. **Understand the Basics:** Read the sections above ([What is A2A?](#what-is-a2a), [Key Principles](#key-principles), [How A2A Works](#how-a2a-works))
2. **Explore Core Concepts:** Dive into the [Official Technical Documentation](https://google.github.io/A2A/#/documentation), focusing on `Agent Card`, `Task`, `Message`, `Part`, and `Artifact`
3. **See it in Action:** Watch the [Official Demo Video](https://storage.googleapis.com/gweb-developer-goog-blog-assets/original_videos/A2A_demo_v4.mp4) and explore the code for the [Multi-Agent Web App Demo](https://github.com/google/A2A/tree/main/demo)
4. **Run the Samples:** Clone the [Official Repository](https://github.com/google/A2A) and follow the instructions in `/samples` to run a client and a sample agent
5. **Review the Code:** Look at the common libraries in the official samples to see how A2A communication is implemented
6. **Try Building:** Adapt a sample or use a library to create your own basic A2A agent or client
## Official Resources
* 📄 [A2A Protocol Website](https://google.github.io/A2A) - The main documentation site
* 💻 [google/A2A GitHub Repository](https://github.com/google/A2A) - Source code for the spec, docs, and official samples
* 📰 [Google Developers Blog Post](https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/) - Announcement blog post explaining the motivation and partners
## Server Implementations
### 🎖️ Official Samples
* [google/google_adk](https://github.com/google/A2A/tree/main/samples/python/agents/google_adk) 🎖️ 🐍 🏠 - An expense reimbursement agent built with Google Agent Development Kit (ADK), showcasing multi-turn interactions and webform handling
* [google/langgraph](https://github.com/google/A2A/tree/main/samples/python/agents/langgraph) 🎖️ 🐍 ☁️ - A currency conversion agent built with LangGraph, showcasing multi-turn interactions and tool usage
* [google/crewai](https://github.com/google/A2A/tree/main/samples/python/agents/crewai) 🎖️ 🐍 ☁️ - An image generation agent built with CrewAI, showcasing text-to-image generation
### 🗺️ Location Services
* [pab1it0/google-maps-a2a](https://github.com/pab1it0/google-maps-a2a) 🐍 ☁️ - An A2A server providing Google Maps capabilities including geocoding, reverse geocoding, directions, places search, and more
### 🛠️ Developer Tools
* [EmilLindfors/a2a-rs](https://github.com/EmilLindfors/a2a-rs) 🦀 🏠 - A Rust implementation of the A2A protocol following idiomatic Rust practices and hexagonal architecture principles, with client and server implementations, multiple transport options, streaming support, and more
## Frameworks & Libraries
* [Google Agent Development Kit (ADK)](https://github.com/google/A2A) 🎖️ 🐍 - Google's framework for building A2A-compliant agents
* [LangGraph](https://github.com/langchain-ai/langgraph) 🐍 - A framework for building stateful, multi-actor applications with LLMs, with A2A support
* [CrewAI](https://github.com/crewai/crewai) 🐍 - Framework for orchestrating role-playing, autonomous AI agents with A2A support
* [a2a-go](https://github.com/a2aserver/a2a-go) 🏎️ - A Go library for building A2A servers, with example implementations
* [a2adotnet](https://github.com/azixaka/a2adotnet) #️⃣ - A C#/.NET implementation of the A2A protocol
* [nestjs-a2a](https://github.com/thestupd/nestjs-a2a) 📇 - A module for integrating the A2A protocol into NestJS applications
* [python-a2a](https://github.com/themanojdesai/python-a2a) 🐍 - An easy-to-use Python library for implementing the A2A protocol
## Tools & Utilities
* [TheRaLabs/legion-a2a](https://github.com/TheRaLabs/legion-a2a) 🐍 - A robust Python implementation of the A2A protocol with both Pydantic v2 and dataclass model implementations, providing type-safe communication between agents with complete support for task management, messaging, file/data transfer, status updates, and error handling
* [pcingola/a2a_min](https://github.com/pcingola/a2a_min) 🐍 - A minimalistic Python SDK for A2A communication, with a client for communicating with A2A-compatible agents, a server for implementing A2A-compatible agents, streaming response support, push notification support, and task management
* [Aira](https://github.com/IhateCreatingUserNames2/Aira) - An A2A network implementation for hosting, registering, discovering, and interacting with agents
* [Cognisphere](https://github.com/IhateCreatingUserNames2/Cognisphere) - An AI agent development framework built on Google's ADK, facilitating agent creation for A2A networks
## Articles
* 📄 [Official A2A Conceptual Overview (README)](https://github.com/google/A2A#conceptual-overview) - High-level explanation in the official repo's README
* 🚀 [Getting Started Guide (Official README)](https://github.com/google/A2A#getting-started) - Links to docs, spec, samples in the official repo's README
* 🌐 [Agent2Agent Protocol Documentation Site](https://agent2agent.ren) - Community-driven, open-source documentation site for the A2A protocol, built with React/TypeScript, supporting English, Chinese, and Japanese
## 📚 Tutorials
* 🔰 [A2A Tutorial (1): Building Google A2A Demo](https://a2a.ac/posts/a2a-tutorial-build-demo) - Complete walkthrough for setting up an A2A development environment, configuring remote and host agents, and experiencing the end-to-end A2A workflow with a practical bubble sort example
## Demos & Examples
* 🌐 [Official Multi-Agent Web App (Python/Mesop)](https://github.com/google/A2A/tree/main/demo) - Demonstrates the orchestrator agent interacting with multiple remote agents, rendering text, images, and forms
* 🎥 [Official Demo Video](https://github.com/google/A2A#see-a2a-in-action) - Video embedded in the official repository's README
## Related Protocols & Concepts
* 📦 [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol/servers) - Complementary protocol focused on providing tools/context *to* agents ([A2A and MCP Discussion](https://google.github.io/A2A/#/topics/a2a_and_mcp.md))
## Community
* 🐞 [google/A2A GitHub Issues](https://github.com/google/A2A/issues) - For reporting bugs or suggesting protocol improvements
* 💬 [google/A2A GitHub Discussions](https://github.com/google/A2A/discussions/) - For general questions, ideas, and community discussions about the A2A protocol
* 🔒 [Private Feedback Form](https://docs.google.com/forms/d/e/1FAIpQLScS23OMSKnVFmYeqS2dP7dxY3eTyT7lmtGLUa8OJZfP4RTijQ/viewform) - Google form for private feedback
## Contributing
Contributions are welcome! 🙌 Please read the [contributing guidelines](CONTRIBUTING.md) first. Let's build this list together!
## License
This repository is licensed under the [MIT License](LICENSE).