The Agent2Agent (A2A) Protocol is revolutionizing how AI agents communicate and collaborate - enabling seamless interoperability across different frameworks, vendors, and platforms. This repository collects the best resources to help developers build A2A-compatible agents.
Contents
- 🤔 What is A2A? (Briefly)
- 💡 Key Principles
- ⚙️ How Does A2A Work? (High Level)
- 🚀 Getting Started with A2A
- 🏛️ Official Resources
- 📜 Specification & Core Concepts
- ⚙️ Implementations & Libraries
- 🛠️ Tools & Utilities
- 📚 Tutorials & Articles
- 🎬 Demos & Examples
- 🔗 Related Protocols & Concepts
- 💬 Community
- Contributing
🤔 What is A2A? (Briefly)
A2A (Agent2Agent) is an open protocol from Google and partners enabling different AI agents (from various vendors/frameworks) to communicate securely and collaborate on tasks. It aims to break down silos between isolated agent systems, allowing for more complex cross-application automation.
⭐ Official Website: a2aproject.github.io/A2A | ⭐ Official GitHub: github.com/a2aproject/A2A | 🌐 Multilingual Docs (EN/ZH/JA): agent2agent.ren
💡 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 Does A2A Work? (High Level)
- Discovery: Agents publish an
Agent Card(JSON) describing capabilities, endpoint, and auth needs. - Communication: A
Clientagent sends aTaskrequest (containing aMessagewithParts) to aRemote 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 generatedArtifacts(results, also containingParts). - Updates: For long tasks, the Server can optionally stream
TaskStatusUpdateEventorTaskArtifactUpdateEventvia Server-Sent Events (SSE) or use Push Notifications.
For details, see the Official Technical Documentation.
🚀 Getting Started with A2A
New to A2A? Here's a suggested path:
- Understand the Basics: Read the sections above (What is A2A?, Key Principles, How it Works). Check the 📰 Announcement Blog Post.
- Explore Core Concepts: Dive into the 📖 Official Technical Documentation, focusing on
Agent Card,Task,Message,Part, andArtifact. - 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 Samples Repo and follow its instructions to run a client (like the CLI) and a sample agent (e.g., LangGraph or Genkit agent).
- Review the Code: Look at the
common(Python) orserver/client(JS/TS) 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
- 📄 A2A Protocol Website - The main documentation site.
- 💻 google/A2A GitHub Repository - Source code for the spec, docs, and official samples.
- 📰 Google Developers Blog Post - Announcement blog post explaining the motivation and partners.
- 📰 How A2A is Building a World of Collaborative Agents - 2026 official update on real-world A2A adoption, partner momentum, and the growing agent ecosystem.
📜 Specification & Core Concepts
(See How Does A2A Work? above for summaries)
- 📖 A2A Technical Documentation - (Full Details) Detailed explanation of actors, transport, auth, core objects (Task, Artifact, Message, Part), Agent Card, etc.
- 📄 JSON Specification - The raw JSON schema definition for A2A structures.
- 💡 Key Principles (Docs) - Link to the principles section in the official docs.
- 🃏 Agent Card Specification (Docs) - Link to the Agent Card section in the official docs.
- 🗺️ Agent Discovery (Topic) - Discussion on how clients can find agent cards.
- 🔔 Push Notifications (Topic) - Details on the push notification mechanism.
- 🛡️ Enterprise Readiness (Topic) - Discussion on security, auth, privacy aspects.
⚙️ Implementations & Libraries
Official Samples
These demonstrate basic A2A client/server communication.
Quick Start First-time users: try TypeScript
Movie Recommendation Agent, PythonHello World, or GoGo Reference Impl— minimal dependencies and the simplest startup commands.
Framework Integrations (Official Samples)
These show how agents built with specific frameworks can expose an A2A interface.
| Language | Agent Framework | Agent Description | Key A2A Features Demonstrated | Link |
|---|---|---|---|---|
| 🐍 Python | LangGraph | Multi-turn dialogue orchestration | Tools, Streaming, Multi-turn | Link |
| 🐍 Python | CrewAI | Multi-role collaboration | Non-textual Artifacts (Files) | Link |
| 🐍 Python | Google ADK | Expense reimbursement | Multi-turn, Forms (DataPart) | Link |
| 🐍 Python | Semantic Kernel | Tool orchestration | Tools, Multi-turn | Link |
| 🐍 Python | AG2 | Mutual agent calls | Agent-to-Agent communication | Link |
| 🐍 Python | Azure AI Foundry | Azure AI integration | Cloud deployment, Tools | Link |
| 🐍 Python | LlamaIndex | File Q&A retrieval | RAG, Document processing | Link |
| 🚀 JS/TS | Genkit | Movie info / Code generation | Tools, Artifacts (Files), Async | Link |
| ☕ Java | Spring Boot | Multi-transport agent | HTTP/gRPC, Security | Link |
| 💠 .NET | Semantic Kernel | .NET AI integration | Tools, .NET ecosystem | Link |
Community Implementations
SDKs & Libraries (by language)
- Go
- 🌟 a2a-go by @a2aproject
- Official Go SDK for the A2A Protocol with high-level server (
a2asrv) and client (a2aclient) APIs, multi-transport support (gRPC, REST, JSON-RPC), extensible architecture, and a CLI tool for agent discovery and messaging. - 🌟 trpc-a2a-go by @trpc-group
- Go A2A implementation by the tRPC team featuring full client/server support, in-memory task management, streaming responses, session management, multiple auth methods (JWT, API Key, OAuth2), and comprehensive examples.
- 🌟 a2a-go by @a2aserver
- A Go library for building A2A servers, with example implementations.
- 🌟 a2a-go by @yeeaiclub
- Agent-to-Agent Protocol Implementation for Go, fully supports all methods of the A2A protocol, referring to the official Python SDK implementation.
- 🌟 agent-sdk-go by @agenticenv
- Production-grade Go SDK for durable AI agents built on Temporal workflows. Features first-class A2A server/client, MCP, AG-UI streaming, sub-agents, human-in-the-loop, and OpenTelemetry. Survives crashes and deploys automatically.
- 🌟 a2a-go by @a2aproject
- Rust
- 🌟 a2a-rs by @a2aproject
- Official Rust SDK for the A2A Protocol. Workspace-based implementation with core types, async client/server, gRPC/SLIMRPC bindings, SSE streaming, protobuf interop, and a CLI tool.
- 🌟 ra2a by @qntx
- Comprehensive Rust SDK for A2A v1.0 with all 12 JSON-RPC methods, gRPC/SSE streaming, pluggable storage (PostgreSQL/MySQL/SQLite), OAuth 2.0/mTLS security, OpenTelemetry tracing, and composable Axum handlers.
- 🌟 a2a-rs by @EmilLindfors
- An idiomatic Rust implementation following hexagonal architecture principles.
- 🌟 Agentic by @jeremychone
- A Rust crate providing essential building blocks for agentic applications, with an ergonomic API for MCP and A2A support. (Work in Progress)
- 🌟 jamjet-a2a by @jamjet-labs
- Standalone Rust SDK for A2A v1.0 with client, server, coordinator routing, and MCP bridge. TCK conformant (75/76 mandatory). Two crates:
jamjet-a2a-types(pure types, zero I/O) +jamjet-a2a(full SDK with feature flags). - 🌟 a2a-rust by @tomtom215 - Pure Rust SDK for A2A v1.0 with quad transport (JSON-RPC/REST/WebSocket/gRPC), SSE streaming, agent card signing (JWS/ES256), pluggable stores (SQLite/PostgreSQL), multi-tenancy, and TCK conformance. Published on crates.io as
a2a-protocol-sdk. - 🌟 awaken by @awakenworks
- A Rust agent runtime that serves AI SDK, CopilotKit, A2A, and MCP from the same backend, featuring type-safe state, streaming LLM failure recovery, and plugin extensibility. Published on crates.io.
- 🌟 turul-a2a by @aussierobots
- Proto-first Rust SDK for A2A v1.0 with ergonomic server/client crates, pluggable storage (SQLite/PostgreSQL/DynamoDB), multi-transport support (HTTP/JSON-RPC/SSE/gRPC/AWS Lambda), JWT/API-key auth, and interoperability-tested against the official Go SDK. Published on crates.io.
- 🌟 a2a-rs by @a2aproject
- Python
- 🌟 a2a-python by @a2aproject
- Official Python SDK for running agentic applications as A2A servers following the Agent2Agent Protocol.
- 🌟 a2a_min by @pcingola
- A minimalistic Python SDK for A2A communication.
- 🌟 python-a2a by @themanojdesai
- An easy-to-use Python library for implementing the A2A protocol.
- 🌟 fasta2a by @datalayer
- Framework-agnostic Python A2A server library that lets developers expose agents through ASGI with pluggable storage, broker, and worker components.
- 🌟 A2AServer by @johnson7788
- A Python server framework implementing Google's A2A protocol with MCP integration.
- 🌟 adk-modular-architecture by @k-jarzyna
- A Python project demonstrating a modular architecture for ADK (Agent Development Kit) based agents, with A2A protocol considerations.
- 🌟 codex-a2a by @liujuanjuan1984
- Full A2A Protocol implementation for Codex CLI, providing a stateful, production-oriented agent service with standardized transport and lifecycle mapping.
- 🌟 opencode-a2a by @Intelligent-Internet
- Full A2A Protocol implementation for OpenCode, providing a stateful A2A service with production-friendly deployment, auth, and session continuity.
- 🌟 a2a-adapter by @hybroai
- Python SDK that converts agents from n8n, LangGraph, CrewAI, LangChain, Claude Code, Codex, Ollama, and more into A2A-compatible servers with auto-generated AgentCards and streaming support. Published on PyPI.
- 🌟 distributed_a2a by @Barra-Technologies
- A Python library for building and orchestrating A2A agents with a registry service, router agent, routing client, and MCP management. MIT licensed and published on PyPI as
distributed-a2a.
- 🌟 a2a-python by @a2aproject
- Ruby
- 🌟 a2a by @wilsonsilva
- Ruby gem implementing A2A protocol data structures with serialization, validation, and case transformation support. Published on RubyGems.
- 🌟 llm.rb by @llmrb
- Ruby's most capable AI runtime with A2A support via
LLM::A2A, letting agents consume remote A2A agent skills as local tools over REST/JSON-RPC. Licensed under 0BSD. - 🌟 agent2agent by @general-intelligence-systems
- Full-featured Ruby SDK for A2A with server and client implementations, JSON-RPC 2.0 and HTTP+JSON/REST bindings, SSE streaming, SQLite persistence, push notifications, 47 protocol types, and extensive guides. Built on Falcon + Async for fiber-based concurrency. Published on RubyGems as
agent2agent. Apache 2.0.
- 🌟 a2a by @wilsonsilva
- C++
- 🌟 agent-protocol by @openJiuwen-ai
- C++ SDK for the Agent2Agent (A2A) Protocol (and MCP), providing implementations of agent communication protocols for C++ environments.
- 🌟 a2a-cpp by @MisterVVP
- C++20 SDK for the Agent2Agent (A2A) Protocol with client/server APIs, discovery, REST/JSON-RPC/gRPC transports, streaming, authentication hooks, and CMake/vcpkg/Conan build integration.
- 🌟 agent-protocol by @openJiuwen-ai
- Common Lisp
- 🌟 mcp-lisp by @jsulmont
- Common Lisp SDK for MCP and A2A protocols with server, client, agent, and behavioral spec engine. Implements partial A2A v1.0 support (agent card discovery, messaging, skills, and task lifecycle). Features 438 unit tests, REPL agent with multi-provider LLM support, and agent swarm capabilities. Dual-licensed under MIT OR Apache-2.0.
- 🌟 mcp-lisp by @jsulmont
- C#/.NET
- 🌟 a2a-dotnet by @a2aproject
- Official C#/.NET SDK for the A2A Protocol.
- 🌟 a2adotnet by @azixaka
- A C#/.NET implementation of the A2A protocol.
- 🌟 a2a-net by @neuroglia-io
- .NET implementation of the Agent2Agent (A2A) protocol to enable secure, interoperable communication between autonomous agents across frameworks and vendors.
- 🌟 a2a-dotnet by @a2aproject
- JavaScript/TypeScript
- 🌟 a2a-js by @a2aproject
- Official JavaScript SDK for the Agent2Agent (A2A) Protocol.
- 🌟 a2a-ai-provider by @DracoBlue
- Community A2A provider for the Vercel AI SDK, enabling drop-in interoperability with A2A agents via
generateTextandstreamText. - 🌟 nestjs-a2a by @thestupd
- A module for integrating the A2A protocol into NestJS applications.
- 🌟 Artinet SDK by @the-artinet-project
- TypeScript (Node.js) A2A compliant server/client simplifying interoperable AI agent creation, focusing on DX and production-readiness.
- 🌟 a2a-mesh by @oaslananka
- Production-ready TypeScript runtime for Google's A2A Protocol with multi-framework adapters, registry control plane, JWT/API-key auth, OpenTelemetry observability, CLI scaffolding, and testing toolkit. Published on npm.
- 🌟 a2a-warp by @oaslananka
- Independent TypeScript runtime and toolkit for the A2A protocol, with server/client SDKs, registry, adapters for OpenAI/Anthropic/LangChain/Google ADK/LlamaIndex/CrewAI, CLI, MCP bridge, WebSocket/gRPC transports, and conformance tooling. Published on npm as
@oaslananka/a2a-warp. Apache 2.0. - 🌟 a2a-reference-ts by @reaatech
- Production-ready TypeScript reference implementation of Google's A2A protocol with server framework (Express/Hono adapters), client SDK, bidirectional A2A ↔ MCP bridge, canonical Zod schemas, pluggable auth (OAuth2/JWT/API key), Redis/Postgres persistence, SSE streaming, and OpenTelemetry observability. Published on npm as
@reaatech/*. - 🌟 agent-to-agent-ts by @A2A-tools
- Practical TypeScript A2A implementation with gRPC-first transport, AgentCard discovery, task lifecycle management, JSON Schema validation, HTTP/WebSocket helpers, and a bundled CLI. Node 22+.
- 🌟 a2a-js by @a2aproject
- PHP
- 🌟 a2a-php by @andreibesleaga
- PHP i
- 🌟 a2a-php by @andreibesleaga
No comments yet
Be the first to share your take.