https://github.com/a2aproject/a2a-python
Official Python SDK for the Agent2Agent (A2A) Protocol
https://github.com/a2aproject/a2a-python
agents generative-ai google
Last synced: 3 months ago
JSON representation
Official Python SDK for the Agent2Agent (A2A) Protocol
- Host: GitHub
- URL: https://github.com/a2aproject/a2a-python
- Owner: a2aproject
- License: apache-2.0
- Created: 2025-05-09T05:42:15.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-23T12:55:09.000Z (12 months ago)
- Last Synced: 2025-06-23T19:50:15.038Z (12 months ago)
- Topics: agents, generative-ai, google
- Language: Python
- Homepage: https://goo.gle/a2a-python-sdk
- Size: 1010 KB
- Stars: 536
- Watchers: 14
- Forks: 115
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-a2a-libraries - Python A2A
- awesome-a2a - a2a-python - python?style=social)](https://github.com/a2aproject/a2a-python) - **Official** Python SDK for running agentic applications as A2A servers following the Agent2Agent Protocol. (⚙️ Implementations & Libraries)
- awesome-mcp - a2aproject/a2a-python - The a2a-python project is the official Python SDK for the Agent2Agent (A2A) Protocol, enabling developers to build and run agentic applications as A2AServers following the A2A Protocol. (MCP Frameworks and libraries / Python)
- awesome-a2a - A2A Python - 2.0` - Official Python SDK for the A2A Protocol. The reference implementation - `pip install a2a-sdk`. (🛠️ Tools & Libraries / 🏛️ Official A2A SDKs)
- awesome-agentic-commerce - Python SDK - `pip install a2a-sdk` (A2A - Agent2Agent Protocol / 🐍 Official SDKs)
- awesome-agent-payments-protocol - a2aproject/a2a-python - dev` branch | (📚 Official Documentation / A2A (Agent-to-Agent Protocol))
- awesome-agentic-commerce - Python SDK
README
# A2A Python SDK
[](LICENSE)
[](https://pypi.org/project/a2a-sdk/)

[](https://pypistats.org/packages/a2a-sdk)
[](https://github.com/a2aproject/a2a-python/actions/workflows/unit-tests.yml)
A Python library for running agentic applications as A2A Servers, following the Agent2Agent (A2A) Protocol.
---
## ✨ Features
- **A2A Protocol Compliant:** Build agentic applications that adhere to the Agent2Agent (A2A) Protocol.
- **Extensible:** Easily add support for different communication protocols and database backends.
- **Asynchronous:** Built on modern async Python for high performance.
- **Optional Integrations:** Includes optional support for:
- HTTP servers ([FastAPI](https://fastapi.tiangolo.com/), [Starlette](https://www.starlette.io/))
- [gRPC](https://grpc.io/)
- [OpenTelemetry](https://opentelemetry.io/) for tracing
- SQL databases ([PostgreSQL](https://www.postgresql.org/), [MySQL](https://www.mysql.com/), [SQLite](https://sqlite.org/))
---
## 🧩 Compatibility
This SDK implements the A2A Protocol Specification [`v0.3.0`](https://a2a-protocol.org/v0.3.0/specification).
| Transport | Client | Server |
| :--- | :---: | :---: |
| **JSON-RPC** | ✅ | ✅ |
| **HTTP+JSON/REST** | ✅ | ✅ |
| **GRPC** | ✅ | ✅ |
---
## 🚀 Getting Started
### Prerequisites
- Python 3.10+
- `uv` (recommended) or `pip`
### 🔧 Installation
Install the core SDK and any desired extras using your preferred package manager.
| Feature | `uv` Command | `pip` Command |
| ------------------------ | ------------------------------------------ | -------------------------------------------- |
| **Core SDK** | `uv add a2a-sdk` | `pip install a2a-sdk` |
| **All Extras** | `uv add "a2a-sdk[all]"` | `pip install "a2a-sdk[all]"` |
| **HTTP Server** | `uv add "a2a-sdk[http-server]"` | `pip install "a2a-sdk[http-server]"` |
| **gRPC Support** | `uv add "a2a-sdk[grpc]"` | `pip install "a2a-sdk[grpc]"` |
| **OpenTelemetry Tracing**| `uv add "a2a-sdk[telemetry]"` | `pip install "a2a-sdk[telemetry]"` |
| **Encryption** | `uv add "a2a-sdk[encryption]"` | `pip install "a2a-sdk[encryption]"` |
| | | |
| **Database Drivers** | | |
| **PostgreSQL** | `uv add "a2a-sdk[postgresql]"` | `pip install "a2a-sdk[postgresql]"` |
| **MySQL** | `uv add "a2a-sdk[mysql]"` | `pip install "a2a-sdk[mysql]"` |
| **SQLite** | `uv add "a2a-sdk[sqlite]"` | `pip install "a2a-sdk[sqlite]"` |
| **All SQL Drivers** | `uv add "a2a-sdk[sql]"` | `pip install "a2a-sdk[sql]"` |
## Examples
### [Helloworld Example](https://github.com/a2aproject/a2a-samples/tree/main/samples/python/agents/helloworld)
1. Run Remote Agent
```bash
git clone https://github.com/a2aproject/a2a-samples.git
cd a2a-samples/samples/python/agents/helloworld
uv run .
```
2. In another terminal, run the client
```bash
cd a2a-samples/samples/python/agents/helloworld
uv run test_client.py
```
3. You can validate your agent using the agent inspector. Follow the instructions at the [a2a-inspector](https://github.com/a2aproject/a2a-inspector) repo.
---
## 🌐 More Examples
You can find a variety of more detailed examples in the [a2a-samples](https://github.com/a2aproject/a2a-samples) repository:
- **[Python Examples](https://github.com/a2aproject/a2a-samples/tree/main/samples/python)**
- **[JavaScript Examples](https://github.com/a2aproject/a2a-samples/tree/main/samples/js)**
---
## 🤝 Contributing
Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines on how to get involved.
---
## 📄 License
This project is licensed under the Apache 2.0 License. See the [LICENSE](LICENSE) file for more details.