A2A Python SDK

April 20, 2026 ยท View on GitHub

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 VersionTransportClientServer
1.0JSON-RPCโœ…โœ…
1.0HTTP+JSON/RESTโœ…โœ…
1.0gRPCโœ…โœ…
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.

Featureuv Commandpip Command
Core SDKuv add a2a-sdkpip install a2a-sdk
All Extrasuv add "a2a-sdk[all]"pip install "a2a-sdk[all]"
HTTP Serveruv add "a2a-sdk[http-server]"pip install "a2a-sdk[http-server]"
gRPC Supportuv add "a2a-sdk[grpc]"pip install "a2a-sdk[grpc]"
OpenTelemetry Tracinguv add "a2a-sdk[telemetry]"pip install "a2a-sdk[telemetry]"
Encryptionuv add "a2a-sdk[encryption]"pip install "a2a-sdk[encryption]"
Database Drivers
PostgreSQLuv add "a2a-sdk[postgresql]"pip install "a2a-sdk[postgresql]"
MySQLuv add "a2a-sdk[mysql]"pip install "a2a-sdk[mysql]"
SQLiteuv add "a2a-sdk[sqlite]"pip install "a2a-sdk[sqlite]"
All SQL Driversuv 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 .
    
  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.