Skip to content

a2aproject/a2a-python

A2A Python SDK

License PyPI version PyPI - Python Version PyPI - Downloads Python Unit Tests

Ask Code Wiki
A2A 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:

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

  1. Run Remote Agent

    git clone https://github.com/a2aproject/a2a-samples.git
    cd a2a-samples/samples/python/agents/helloworld
    uv run .
  2. In another terminal, run the client

    cd a2a-samples/samples/python/agents/helloworld
    uv run test_client.py
  3. 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.

Contributors

Languages