Intended Audience
- Developers
License
- OSI Approved :: Apache Software License
Operating System
- OS Independent
Programming Language
- Python
- Python :: 3
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
Topic
- Software Development :: Libraries :: Python Modules
A2A Python SDK
A Python library for running agentic applications as A2A Servers, following 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.
โจ 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 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 | โ | โ |
๐ 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.