python-a2a
Google A2A 协议的权威 Python 实现,让不同 AI 代理之间能够统一对话与协作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Google A2A 协议的权威 Python 实现,让不同 AI 代理之间能够统一对话与协作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你公司里有三位专家——财务顾问、市场分析师和法律顾问。他们各自都很聪明,但彼此之间用不同的语言、不同的格式汇报工作。财务用 Excel、法律用 Word、市场用 PPT,结果每次跨部门协作都要花大量时间"翻译"对方的数据。这就是当前 AI 代理生态的真实写照。
Python A2A 正是来解决这个问题的。
它由开发者 Manoj Desai 创建,是 Google A2A(Agent-to-Agent)协议的权威 Python 实现,同时深度整合了 MCP(Model Context Protocol),让不同来源、不同框架的 AI 代理能够用统一的方式"对话"、交换信息、协同完成任务。
当前 AI 领域,LangChain、AutoGPT、CrewAI 等框架各自为政——用 LangChain 写的代理很难直接调用用 CrewAI 构建的工具。MCP 虽然解决了"代理如何调用外部工具"的问题,但不同 MCP 实现之间同样无法直接通信。
A2A 协议则从更高一层入手,定义了代理与代理之间的通信规范:任务下发、状态同步、结果返回、流式输出。而 Python A2A 在此基础上加入了双向转换层,不仅能让 A2A 代理互相通信,还能将 LangChain 代理和 A2A 代理"翻译"互通。
项目源码结构清晰,按职责划分为独立子模块:
| 模块 | 职责 |
|---|---|
server/ | A2A 服务端,支持 Flask 和 aiohttp |
client/ | A2A 客户端,含 LLM 路由和流式处理 |
models/ | 协议数据模型(Agent、Message、Task、Conversation) |
mcp/ | MCP 协议完整实现,含 JSON-RPC 2.0 |
langchain/ | 与 LangChain 生态的双向互操作 |
discovery/ | 代理注册与发现机制 |
workflow/ | 复杂多代理工作流编排引擎 |
agent_flow/ | 可视化 Agent Flow UI |
cli.py | 命令行工具 |
这种模块化设计意味着你可以只使用其中一部分——比如只引入 MCP client 调用 GitHub 工具,而不必引入整个 A2A 服务器。
开发者只需定义一个继承自 A2AServer 的类,加上 @agent 和 @skill 装饰器,即可将任意 Python 函数暴露为 A2A 技能,供其他代理调用:
from python_a2a import A2AServer, skill, agent
@agent(name="天气助手", description="提供天气预报")
class WeatherAgent(A2AServer):
@skill(name="查天气", description="查询指定城市的天气")
def get_weather(self, location):
return f"{location}今天晴朗,25°C"
服务启动同样简洁,一行 run_server(agent) 即可。底层自动处理 HTTP 路由、任务队列、状态管理等基础设施。
项目在 v0.5.x 中对 MCP 进行了完全重写,遵循 JSON-RPC 2.0 规范。内置多个生产级 Provider,覆盖真实场景:
所有示例均为真实服务连接(非 mock),开发者克隆仓库后可直接运行,体验代理调用真实工具的全流程。
通过 langchain/ 模块,你可以:将 LangChain Tool 转换为 MCP Endpoint 供 A2A 代理调用;将 A2A 技能包装成 LangChain Tool 供 LangChain Agent 使用;构建同时包含两种代理的混合工作流。
这意味着企业可以逐步迁移现有 LangChain 项目,同时引入 A2A 的标准化能力,而无需全量重写。
项目内置可视化 Web UI(start_ui.py),支持拖拽式构建代理网络。界面包含代理节点注册与管理、技能连接线配置、实时任务执行监控、SSE 流式输出展示。虽然界面较为基础,但对于学习和原型开发已经足够。
workflow/ 模块提供了比简单顺序调用更强大的编排能力:条件分支(根据返回结果选择不同执行路径)、并行执行(多个子任务同时进行)、AIAgentRouter(基于 LLM 的智能路由,自动选择最合适的代理处理请求)。
# 标准 pip 安装(推荐,含所有功能)
pip install "python-a2a[all]"
# 或使用现代 uv 工具(更快)
uv add python-a2a
python start_ui.py
# 访问 http://localhost:8000 即可看到 Agent Flow UI
项目不提供 Dockerfile,也不支持 docker-compose,适合作为 Python 库集成到现有项目中,或在服务器上手动安装运行。
| 维度 | 评价 |
|---|---|
| 架构设计 | 模块化良好,职责清晰,符合开闭原则 |
| 类型标注 | 含 py.typed 标记,全套类型提示 |
| 代码规范 | 使用 black + isort 统一格式化 |
| 测试覆盖 | tests/ 目录结构完整,含兼容性专项测试 |
| 文档质量 | 多语言 README(英/中/日/西/德/法),详细文档站 |
| 协议合规 | 专项测试 test_google_a2a_compatibility.py 确保与 Google A2A 规范一致 |
Python A2A 的出现折射出一个大趋势:AI 行业正在从"单代理"向"多代理协作"演进。随着 Claude Code、Cursor、Copilot 等工具陆续引入 Agent 能力,代理之间的互操作标准将成为刚需。
Google A2A 协议虽然还很年轻,但背靠 Google 的影响力,加上 Python A2A 这种高质量的第三方实现,有望成为 Agent 间通信的事实标准之一。项目当前 996 stars 的体量虽不算大,但增长势头值得关注。
对于开发者而言,Python A2A 是一个低门槛的多代理系统学习工具;对于企业而言,它是渐进式引入 Agent 标准化的可行路径。