Python A2A 是一个 Python 库,实现了 Google 的 Agent-to-Agent (A2A) 协议,集成了 Model Context Protocol (MCP),允许你用 Python 创建可以相互通信和协作的 AI 代理系统。
A2A 定义了一种标准的通信格式,MCP 允许代理访问外部工具和数据,Python A2A 的目标是帮助开发者轻松构建复杂的多代理系统,适用于研究、企业应用、客户服务等多个领域,支持多种LLM提供商(例如OpenAI、Anthropic),具有模块化设计,易于扩展和定制。
完全兼容A2A协议标准,包含智能体卡片、任务调度和技能系统等核心模块,原生集成AWS Bedrock模型(包括Claude)、OpenAI、Anthropic等主流LLM,仅需requests库即可运行,轻量化设计。
装饰器语法简化开发流程:
@skill(description="获取天气信息")
def get_weather(self, location):
# 技能实现代码
交互文档自动生成,基于FastAPI风格构建OpenAPI文档,一键生成可视化HTML文档,支持Swagger UI调试接口。
完善的错误处理机制,输入验证体系,支持Flask/Django等主流框架,提供AWS Bedrock完整解决方案。
安装库文件(推荐使用UV包管理器):
uv install python-a2a[all]
创建基础智能体:
from python_a2a import A2AServer, skill, run_server
@agent(name="数学助手", description="解决基础数学问题")
class MathAgent(A2AServer):
@skill(description="加法运算")
def add(self, a: int, b: int):
return a + b
if __name__ == "__main__":
run_server(MathAgent(), port=5000)
构建MCP工具代理:
from python_a2a import A2AMCPAgent, FastMCP
class CalculatorAgent(A2AServer, A2AMCPAgent):
def __init__(self):
super().__init__()
self.mcp = FastMCP("计算器", "提供数学运算功能")
@self.mcp.tool
def multiply(self, x: float, y: float) -> float:
return x * y
async def handle_task(self, task):
if "multiply" in task.message.text:
result = await self.call_mcp_tool("multiply", x=3, y=7)
return f"3 × 7 = {result}"
1、使用类型注解提升可维护性
2、通过装饰器实现技能版本控制
3、建立统一的错误码体系
4、结合Redis实现任务队列管理
5、为关键操作添加审计日志