Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
a2aproject/a2a-python: Official Python SDK for the Agent2Agent (A2A) Protocol

a2aproject/a2a-python: Official Python SDK for the Agent2Agent (A2A) Protocol

4 hours ago

A2A Python SDK

License</a> PyPI version</a> !PyPI - Python Version PyPI - Downloads</a> Python Unit Tests</a> Ask Code Wiki

Agent2Agent Protocol Logo

A Python library for running agentic applications as A2A Servers, following the Agent2Agent (A2A) Protocol.


[!IMPORTANT]
Upgrading the SDK from 0.3 to 1.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) or pip

🔧 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]" | | 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]" |

Examples

Helloworld Example

  1. Run Remote Agent
git clone https://github.com/a2aproject/a2a-samples.git
   cd a2a-samples/samples/python/agents/helloworld
   uv run .
  1. In another terminal, run the client
cd a2a-samples/samples/python/agents/helloworld
   uv run test_client.py
  1. 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.

Chat with me