Loading repository data…
Loading repository data…
a2aproject / repository
Official Python SDK for the Agent2Agent (A2A) Protocol
[!IMPORTANT] Upgrading the SDK from
0.3to1.0? See the v0.3 → v1.0 migration guide. For supported A2A spec versions, see Compatibility.
This SDK implements the A2A Protocol Specification 1.0, with compatibility mode for 0.3. See #742 for details on the compatibility scope.
| Spec Version | Transport | Client | Server |
|---|---|---|---|
1.0 | JSON-RPC | ✅ | ✅ |
1.0 | HTTP+JSON/REST | ✅ | ✅ |
1.0 | gRPC | ✅ | ✅ |
0.3 (compat) | JSON-RPC | ✅ | ✅ |
0.3 (compat) | HTTP+JSON/REST | ✅ | ✅ |
0.3 (compat) | gRPC | ✅ | ✅ |
uv (recommended) or pipInstall 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]" |
| FastAPI Integration | uv add "a2a-sdk[fastapi]" | pip install "a2a-sdk[fastapi]" |
| 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]" |
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.
You can find a variety of more detailed examples in the a2a-samples repository:
Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines on how to get involved.
This project is licensed under the Apache 2.0 License. See the LICENSE file for more details.