A library for building A2A agents with routing capabilities
Project description
A2A Agent Library
A Python library for building A2A (Agent-to-Agent) agents with routing capabilities, DynamoDB-backed registry, and LangChain integration.
Features
- StatusAgent: Base agent implementation with status tracking and structured responses
- RoutingAgentExecutor: Agent executor with intelligent routing capabilities
- DynamoDB Registry: Dynamic agent card registry with heartbeat mechanism
- Server Utilities: FastAPI application builder with A2A protocol support
- LangChain Integration: Built on LangChain for flexible model integration
Installation
pip install distributed-a2a
Quick Start
- Start a server with your agent application:
from distributed_a2a import load_app
from a2a.types import AgentSkill
# Define your agent's skills
skills = [
AgentSkill(
id='example_skill',
name='Example Skill',
description='An example skill',
tags=['example']
)
]
# Create your agent application
app = load_app(
name="MyAgent",
description="My specialized agent",
skills=skills,
api_key="your-api-key",
system_prompt="You are a helpful assistant...",
host="http://localhost:8000"
)
- Send a request with the client
from uuid import uuid4
from distributed_a2a import RoutingA2AClient
if __name__ == "__main__":
import asyncio
request = "Tell me the weather in Bonn"
client = RoutingA2AClient("http://localhost:8000")
response: str = asyncio.run(client.send_message(request, str(uuid4())))
print(response)
Requirements
- Python 3.10+
- langchain
- langchain-core
- langchain-openai
- langgraph
- pydantic
- boto3
- a2a
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
distributed_a2a-0.1.9rc0.tar.gz
(11.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file distributed_a2a-0.1.9rc0.tar.gz.
File metadata
- Download URL: distributed_a2a-0.1.9rc0.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d1df8af19aebb51e2d824bf70e9160526c48a1e678b1fcdfef5a8ee6a188a49
|
|
| MD5 |
a8b74f47bbb74e3d4ea7c7b18407ac57
|
|
| BLAKE2b-256 |
260cac4fcc4f71e521035ae7caad98f68a2edec5ecfecd99c5359bb8d5556d3c
|
File details
Details for the file distributed_a2a-0.1.9rc0-py3-none-any.whl.
File metadata
- Download URL: distributed_a2a-0.1.9rc0-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b92d5c60ca36e87b5eaae2239cafb7c2dfa3cc78a9b565db3bc7d1592cdf38a5
|
|
| MD5 |
3c502aba71a10087ab9cd908d6154bdf
|
|
| BLAKE2b-256 |
8cc0905eb2b2648c7dc723682b2cfc54683da0e51f8ab5b1f87c8c85a46c3232
|