✨ 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, Starlette)
- gRPC
- OpenTelemetry for tracing
- SQL databases (PostgreSQL, MySQL, SQLite)
🧩 Compatibility
This SDK implements the A2A Protocol Specification v0.3.0.
| Transport | Client | Server |
|---|---|---|
| JSON-RPC | ✅ | ✅ |
| HTTP+JSON/REST | ✅ | ✅ |
| GRPC | ✅ | ✅ |
🚀 Getting Started
Prerequisites
- Python 3.10+
uv(recommended) orpip
🔧 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
-
Run Remote Agent
git clone https://github.com/a2aproject/a2a-samples.git cd a2a-samples/samples/python/agents/helloworld uv run .
-
In another terminal, run the client
cd a2a-samples/samples/python/agents/helloworld uv run test_client.py -
You can validate your agent using the agent inspector. Follow the instructions at the a2a-inspector repo.
🌐 More Examples
You can find a variety of more detailed examples in the a2a-samples repository:
🤝 Contributing
Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines on how to get involved.
📄 License
This project is licensed under the Apache 2.0 License. See the LICENSE file for more details.