Awesome A2A 
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?
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 | ⭐ Official GitHub: 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
- Discovery: Agents publish an
Agent Card (JSON) describing capabilities, endpoint, and auth needs
- Communication: A
Client agent sends a Task request (containing a Message with Parts) to a Remote Agent (Server) using HTTP/JSON-RPC 2.0
- Execution & Response: The Server processes the task, updating its
status. It responds with the final status and any generated Artifacts (results)
- 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
Getting Started
New to A2A? Here's a suggested path:
- Understand the Basics: Read the sections above (What is A2A?, Key Principles, How A2A Works)
- Explore Core Concepts: Dive into the Official Technical Documentation, focusing on
Agent Card, Task, Message, Part, and Artifact
- See it in Action: Watch the Official Demo Video and explore the code for the Multi-Agent Web App Demo
- Run the Samples: Clone the Official Repository and follow the instructions in
/samples to run a client and a sample agent
- Review the Code: Look at the common libraries in the official samples to see how A2A communication is implemented
- Try Building: Adapt a sample or use a library to create your own basic A2A agent or client
Official Resources
Server Implementations
🎖️ Official Samples
- google/google_adk 🎖️ 🐍 🏠 - An expense reimbursement agent built with Google Agent Development Kit (ADK), showcasing multi-turn interactions and webform handling
- google/langgraph 🎖️ 🐍 ☁️ - A currency conversion agent built with LangGraph, showcasing multi-turn interactions and tool usage
- google/crewai 🎖️ 🐍 ☁️ - An image generation agent built with CrewAI, showcasing text-to-image generation
🗺️ Location Services
- 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 🦀 🏠 - 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) 🎖️ 🐍 - Google's framework for building A2A-compliant agents
- LangGraph 🐍 - A framework for building stateful, multi-actor applications with LLMs, with A2A support
- CrewAI 🐍 - Framework for orchestrating role-playing, autonomous AI agents with A2A support
- a2a-go 🏎️ - A Go library for building A2A servers, with example implementations
- a2adotnet #️⃣ - A C#/.NET implementation of the A2A protocol
- nestjs-a2a 📇 - A module for integrating the A2A protocol into NestJS applications
- python-a2a 🐍 - An easy-to-use Python library for implementing the A2A protocol
Tools & Utilities
- 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 🐍 - 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 - An A2A network implementation for hosting, registering, discovering, and interacting with agents
- Cognisphere - An AI agent development framework built on Google's ADK, facilitating agent creation for A2A networks
Articles
📚 Tutorials
- 🔰 A2A Tutorial (1): Building Google A2A 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
Related Protocols & Concepts
Community
Contributing
Contributions are welcome! 🙌 Please read the contributing guidelines first. Let's build this list together!
License
This repository is licensed under the MIT License.