Skip to main content

A2A Python SDK

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

a2a_sdk-1.1.2.tar.gz (379.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

a2a_sdk-1.1.2-py3-none-any.whl (246.0 kB view details)

Uploaded Python 3

File details

Details for the file a2a_sdk-1.1.2.tar.gz.

File metadata

  • Download URL: a2a_sdk-1.1.2.tar.gz
  • Upload date:
  • Size: 379.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for a2a_sdk-1.1.2.tar.gz
Algorithm Hash digest
SHA256 f928d8bf9a0dc0a473ee8258bd5226c1b8520a85c70e7f233c3b9b0e30a1bd10
MD5 d469cbe1b24a83227e3d66816cf8b72d
BLAKE2b-256 38cc59b35c518d8289bd59d20d9d216ca29ccb41c4697eb85971efe41d1adaf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for a2a_sdk-1.1.2.tar.gz:

Publisher: python-publish.yml on a2aproject/a2a-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a2a_sdk-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: a2a_sdk-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 246.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for a2a_sdk-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb9a698f526dc45a9ea967d7804e7aa363ff273d2c44fbed699bc68c9399f9c9
MD5 454d6a003c708792f6bb81956b8818d5
BLAKE2b-256 c133d414a03d5ef5a7d6d09a20dc9f8094e7fb9edb488662ff99c535a2a62cf1

See more details on using hashes here.

Provenance

The following attestation bundles were made for a2a_sdk-1.1.2-py3-none-any.whl:

Publisher: python-publish.yml on a2aproject/a2a-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page