# a2a-sdk

> A2A Python SDK

- **URL**: https://www.freshcrate.ai/projects/a2a-sdk
- **Author**: pypi
- **Category**: AI Agents
- **Latest version**: `v1.1.0` (2026-05-29)
- **License**: Unknown
- **Source**: https://github.com/a2aproject/a2a-python/blob/main/CHANGELOG.md
- **Homepage**: https://pypi.org/project/a2a-sdk/
- **Language**: Python
- **GitHub**: 1,849 stars, 419 forks
- **Registry**: pypi (`a2a-sdk`)
- **Tags**: `2`, `a2a`, `agent`, `protocol`, `pypi`, `sdk`

## Description

# A2A Python SDK

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
[![PyPI version](https://img.shields.io/pypi/v/a2a-sdk)](https://pypi.org/project/a2a-sdk/)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/a2a-sdk)
[![PyPI - Downloads](https://img.shields.io/pypi/dw/a2a-sdk)](https://pypistats.org/packages/a2a-sdk)
[![Python Unit Tests](https://github.com/a2aproject/a2a-python/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/a2aproject/a2a-python/actions/workflows/unit-tests.yml)
<!-- markdownlint-disable no-inline-html -->
<a href="https://codewiki.google/github.com/a2aproject/a2a-python">
  <img src="https://www.gstatic.com/_/boq-sdlc-agents-ui/_/r/Mvosg4klCA4.svg" alt="Ask Code Wiki" height="20">
</a>

<div align="center">
   <img src="https://raw.githubusercontent.com/a2aproject/A2A/refs/heads/main/docs/assets/a2a-logo-black.svg" width="256" alt="A2A Logo"/>
   <h3>
      A Python library for running agentic applications as A2A Servers, following the <a href="https://a2a-protocol.org">Agent2Agent (A2A) Protocol</a>.
   </h3>
</div>

<!-- markdownlint-enable no-inline-html -->

---

> [!IMPORTANT]
> **Upgrading the SDK from `0.3` to `1.0`?** See the [**v0.3 → v1.0 migration guide**](docs/migrations/v1_0/README.md). For supported A2A spec versions, see [Compatibility](#-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](https://fastapi.tiangolo.com/), [Starlette](https://www.starlette.io/))
  - [gRPC](https://grpc.io/)
  - [OpenTelemetry](https://opentelemetry.io/) for tracing
  - SQL databases ([PostgreSQL](https://www.postgresql.org/), [MySQL](https://www.mysql.com/), [SQLite](https://sqlite.org/))

---

## 🧩 Compatibility

This SDK implements the A2A Protocol Specification [`1.0`](https://a2a-protocol.org/v1.0.0/specification/), with compatibility mode for [`0.3`](https://a2a-protocol.org/v0.3.0/specification). See [#742](https://github.com/a2aproject/a2a-python/issues/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

### [Helloworld Example](https://github.com/a2aproject/a2a-samples/tree/main/samples/python/agents/helloworld)

1. Run Remote Agent

   ```bash
   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

   ```bash
   cd a2a-samples/samples/python/agents/helloworld
   uv run test_client.py
   ```

3. You can valida

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `v1.1.0` | 2026-05-29 | High | ## [1.1.0](https://github.com/a2aproject/a2a-python/compare/v1.0.3...v1.1.0) (2026-05-29)   ### Features  * **server:** restore FastAPI /docs visibility for A2A routes ([#1024](https://github.com/a2aproject/a2a-python/issues/1024)) ([1122d4e](https://github.com/a2aproject/a2a-python/commit/1122d4e92e49f6eaadb5dbd94c67352adb13bf44))   ### Bug Fixes  * **compat:** remove ListTasks from v0.3 REST adapter ([#1043](https://github.com/a2aproject/a2a-python/issues/1043)) ([#1068](https://github.com/a2a |
| `v1.0.3` | 2026-05-13 | High | ## [1.0.3](https://github.com/a2aproject/a2a-python/compare/v1.0.2...v1.0.3) (2026-05-13)   ### Features  * **helpers:** add non-text Part extractors and artifact update events ([745d998](https://github.com/a2aproject/a2a-python/commit/745d9988beca9b708e24349ec9dfa4138f12d472))   ### Bug Fixes  * **deps:** cap protobuf below 7 ([#1019](https://github.com/a2aproject/a2a-python/issues/1019)) ([7af6050](https://github.com/a2aproject/a2a-python/commit/7af60502532a44f440885157aaae36c024416b85)) * **e |
| `v1.0.2` | 2026-04-24 | High | ## [1.0.2](https://github.com/a2aproject/a2a-python/compare/v1.0.1...v1.0.2) (2026-04-24)   ### Features  * **helpers:** add non-text Part, Message, and Artifact helpers ([#1004](https://github.com/a2aproject/a2a-python/issues/1004)) ([cfdbe4c](https://github.com/a2aproject/a2a-python/commit/cfdbe4c08c58b773a8766c17f5b5eabbe67bf3dd))   ### Bug Fixes  * **proto:** use field.label instead of is_repeated for protobuf compatibility ([#1010](https://github.com/a2aproject/a2a-python/issues/1010)) ([7d |
| `1.0.0` | 2026-04-21 | Low | Imported from PyPI (1.0.0) |
| `v1.0.0` | 2026-04-20 | High | ## [1.0.0](https://github.com/a2aproject/a2a-python/compare/v1.0.0-alpha.3...v1.0.0) (2026-04-20)  See the [**v0.3 → v1.0 migration guide**](docs/migrations/v1_0/README.md) and changelog entries for alpha versions below.  ### ⚠ BREAKING CHANGES  * remove Vertex AI Task Store integration ([#999](https://github.com/a2aproject/a2a-python/issues/999))  ### Bug Fixes  * rely on agent executor implementation for stream termination ([#988](https://github.com/a2aproject/a2a-python/issues/988)) ([d77cd68 |
| `v1.0.0-alpha.3` | 2026-04-17 | High | ## [1.0.0-alpha.3](https://github.com/a2aproject/a2a-python/compare/v1.0.0-alpha.2...v1.0.0-alpha.3) (2026-04-17)   ### Bug Fixes  * update `with_a2a_extensions` to append instead of overwriting ([#985](https://github.com/a2aproject/a2a-python/issues/985)) ([e1d0e7a](https://github.com/a2aproject/a2a-python/commit/e1d0e7a72e2b9633be0b76c952f6c2e6fe11e3e5)) |
| `v1.0.0-alpha.2` | 2026-04-17 | High | ## [1.0.0-alpha.2](https://github.com/a2aproject/a2a-python/compare/v1.0.0-alpha.1...v1.0.0-alpha.2) (2026-04-17)   ### ⚠ BREAKING CHANGES  * clean helpers and utils folders structure ([#983](https://github.com/a2aproject/a2a-python/issues/983)) * Raise errors on invalid AgentExecutor behavior. ([#979](https://github.com/a2aproject/a2a-python/issues/979)) * extract developer helpers in helpers folder ([#978](https://github.com/a2aproject/a2a-python/issues/978))  ### Features  * Raise errors on i |
| `v1.0.0-alpha.1` | 2026-04-10 | Medium | ## [1.0.0-alpha.1](https://github.com/a2aproject/a2a-python/compare/v1.0.0-alpha.0...v1.0.0-alpha.1) (2026-04-10)   ### ⚠ BREAKING CHANGES  * **client:** make ClientConfig.push_notification_config singular ([#955](https://github.com/a2aproject/a2a-python/issues/955)) * **client:** reorganize ClientFactory API ([#947](https://github.com/a2aproject/a2a-python/issues/947)) * **server:** add build_user function to DefaultContextBuilder to allow A2A user creation customization ([#925](https://github. |
| `v0.3.26` | 2026-04-09 | Medium | ## [0.3.26](https://github.com/a2aproject/a2a-python/compare/v0.3.25...v0.3.26) (2026-04-09)   ### Features  * Add support for more Task Message and Artifact fields in the Vertex Task Store ([#908](https://github.com/a2aproject/a2a-python/issues/908)) ([5e0dcd7](https://github.com/a2aproject/a2a-python/commit/5e0dcd798fcba16a8092b0b4c2d3d8026ca287de))   ### Bug Fixes  * remove the use of deprecated types from VertexTaskStore ([#889](https://github.com/a2aproject/a2a-python/issues/889)) ([6d49122 |
| `v1.0.0-alpha.0` | 2026-03-17 | Low | ## 1.0.0-alpha.0 (2026-03-17)   ### ⚠ BREAKING CHANGES  * **spec**: upgrade SDK to A2A 1.0 spec and use proto-based types ([#572](https://github.com/a2aproject/a2a-python/issues/572), [#665](https://github.com/a2aproject/a2a-python/issues/665), [#804](https://github.com/a2aproject/a2a-python/issues/804), [#765](https://github.com/a2aproject/a2a-python/issues/765)) * **client:** introduce ServiceParameters for extensions and include it in ClientCallContext ([#784](https://github.com/a2aproj |

## Dependency audit

- **Score**: 72/100
- **Total deps**: 22
- **Resolved**: 7
- **Unresolved**: 15
- **License conflicts**: 0
- **Warnings**: 7
- **Scanned**: 2026-05-11

## Citation

- HTML: https://www.freshcrate.ai/projects/a2a-sdk
- Markdown: https://www.freshcrate.ai/projects/a2a-sdk.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/a2a-sdk/deps

_Generated by freshcrate.ai. Indexes pypi releases for AI-agent ecosystem packages._
