a2a-sdk0.3.12
a2a-sdk0.3.12
Published
A2A Python SDK
pip install a2a-sdk
Package Downloads
Authors
Project URLs
Requires Python
>=3.10
Dependencies
- google-api-core
>=1.26.0 - httpx-sse
>=0.4.0 - httpx
>=0.28.1 - protobuf
>=5.29.5 - pydantic
>=2.11.3 - cryptography
>=43.0.0; extra == "all" - fastapi
>=0.115.2; extra == "all" - grpcio-reflection
>=1.7.0; extra == "all" - grpcio-tools
>=1.60; extra == "all" - grpcio
>=1.60; extra == "all" - opentelemetry-api
>=1.33.0; extra == "all" - opentelemetry-sdk
>=1.33.0; extra == "all" - sqlalchemy
[aiomysql,asyncio]>=2.0.0; extra == "all" - sqlalchemy
[aiosqlite,asyncio]>=2.0.0; extra == "all" - sqlalchemy
[asyncio,postgresql-asyncpg]>=2.0.0; extra == "all" - sse-starlette
; extra == "all" - starlette
; extra == "all" - cryptography
>=43.0.0; extra == "encryption" - grpcio-reflection
>=1.7.0; extra == "grpc" - grpcio-tools
>=1.60; extra == "grpc" - grpcio
>=1.60; extra == "grpc" - fastapi
>=0.115.2; extra == "http-server" - sse-starlette
; extra == "http-server" - starlette
; extra == "http-server" - sqlalchemy
[aiomysql,asyncio]>=2.0.0; extra == "mysql" - sqlalchemy
[asyncio,postgresql-asyncpg]>=2.0.0; extra == "postgresql" - sqlalchemy
[aiomysql,asyncio]>=2.0.0; extra == "sql" - sqlalchemy
[aiosqlite,asyncio]>=2.0.0; extra == "sql" - sqlalchemy
[asyncio,postgresql-asyncpg]>=2.0.0; extra == "sql" - sqlalchemy
[aiosqlite,asyncio]>=2.0.0; extra == "sqlite" - opentelemetry-api
>=1.33.0; extra == "telemetry" - opentelemetry-sdk
>=1.33.0; extra == "telemetry"
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)
🚀 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.