A2A Python SDK
Project description
A2A Python SDK
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, Starlette)
- gRPC
- OpenTelemetry for tracing
- SQL databases (PostgreSQL, MySQL, SQLite)
🧩 Compatibility
This SDK implements the A2A Protocol Specification 0.3.
[!IMPORTANT] There is an alpha version available with support for both
1.0and0.3versions. Development for this version is taking place in the1.0-devbranch, tracked in #701.
| 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]" |
| Vertex AI Task Store | uv add "a2a-sdk[vertex]" |
pip install "a2a-sdk[vertex]" |
| 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file a2a_sdk-1.0.0a1.tar.gz.
File metadata
- Download URL: a2a_sdk-1.0.0a1.tar.gz
- Upload date:
- Size: 375.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6262da31ad187395fb8383844280dc30996b79a873dbd6e8ea198ad142e2276
|
|
| MD5 |
71035f4275cdb3cddb91d342afd72995
|
|
| BLAKE2b-256 |
55a180bda1b72fc64c9b55402b2af9d7832e83f5fd095dfc2f6a315847651bc9
|
Provenance
The following attestation bundles were made for a2a_sdk-1.0.0a1.tar.gz:
Publisher:
python-publish.yml on a2aproject/a2a-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
a2a_sdk-1.0.0a1.tar.gz -
Subject digest:
c6262da31ad187395fb8383844280dc30996b79a873dbd6e8ea198ad142e2276 - Sigstore transparency entry: 1271254684
- Sigstore integration time:
-
Permalink:
a2aproject/a2a-python@6b5651102326ae4c7e8936c1109a0f09693c9034 -
Branch / Tag:
refs/tags/v1.0.0-alpha.1 - Owner: https://github.com/a2aproject
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@6b5651102326ae4c7e8936c1109a0f09693c9034 -
Trigger Event:
release
-
Statement type:
File details
Details for the file a2a_sdk-1.0.0a1-py3-none-any.whl.
File metadata
- Download URL: a2a_sdk-1.0.0a1-py3-none-any.whl
- Upload date:
- Size: 236.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11a1812eabd02f5dfbee5fb69882188f420c9533af683300854d4da8a2bdd9a4
|
|
| MD5 |
9e72d5b2ca6ba9ea5d5383a0417decee
|
|
| BLAKE2b-256 |
75f253bf0214ef127da783ad262746eb9b223ff6257821a1dad6af7cef7473f2
|
Provenance
The following attestation bundles were made for a2a_sdk-1.0.0a1-py3-none-any.whl:
Publisher:
python-publish.yml on a2aproject/a2a-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
a2a_sdk-1.0.0a1-py3-none-any.whl -
Subject digest:
11a1812eabd02f5dfbee5fb69882188f420c9533af683300854d4da8a2bdd9a4 - Sigstore transparency entry: 1271254692
- Sigstore integration time:
-
Permalink:
a2aproject/a2a-python@6b5651102326ae4c7e8936c1109a0f09693c9034 -
Branch / Tag:
refs/tags/v1.0.0-alpha.1 - Owner: https://github.com/a2aproject
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@6b5651102326ae4c7e8936c1109a0f09693c9034 -
Trigger Event:
release
-
Statement type: