Agent2Agent (A2A) 协议
开放协议,让不同的AI Agent能发现彼此、协商交互方式并安全协作,构建互联互通的智能体生态。
- Star 数
- ★ 26k
- 最近更新
- 3 天前
- License
- Apache-2.0
- 主语言
- Shell
- FA 评分
- 0/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 使用Python SDK将基于LangGraph构建的Agent部署为A2A服务器,使其能被其他系统调用。
- 不适合
- 需要完全离线、无网络环境的团队
- 希望开箱即用、无需学习新协议与 SDK 的团队
- 需要成熟稳定、已有大量生产部署验证的团队
这个 Agent 能做什么,适合哪些场景?
A2A是一个开放协议,定义了一套标准化的消息格式和交互流程,使得不同框架、不同厂商构建的AI Agent(智能体)能够通信和协同工作。它解决了AI Agent之间互操作性缺失的问题,让它们以Agent而非工具的形式相互协作。协议基于JSON-RPC 2.0 over HTTP(S),通过‘Agent Card’进行发现,支持同步请求/响应、流式(SSE)和异步推送通知,并能交换文本、文件和结构化数据。项目由Linux基金会托管,提供Python、Go、JS等官方SDK,并配套完整的文档和示例。采用A2A协议,可以为Agent提供一种通用语言,促进更互联、更强大、更具创新性的AI生态系统。
A2A协议定义了一套标准化的交互机制,使Agent能够:1)通过发布'Agent Card'来发现彼此的能力,Agent Card包含了能力描述和连接信息;2)协商交互模式,包括文本、表单和媒体;3)通过任务管理相关方法(如message/send、task/get、task/cancel等)进行长期任务的协作,支持同步、流式和异步推送;4)在不暴露内部状态、记忆或工具的情况下安全协作。该协议本身不提供可执行文件,而是通过SDK(如a2a-python、a2a-go、a2a-js)为Agent开发提供库支持,开发者可以使用这些SDK将其Agent暴露为符合A2A的服务器,或创建客户端连接其他Agent。
- 使用Python SDK将基于LangGraph构建的Agent部署为A2A服务器,使其能被其他系统调用。
- 在医疗场景中,使用A2A连接多个不同框架的Agent,构建协作式患者分诊系统。
- 企业IT部门需要集成多个供应商的Agent,A2A作为标准协议实现跨供应商的Agent协同。
- 开发者创建A2A客户端,调用远程Agent执行特定任务,如客户服务机器人集成本地订单查询Agent。
- 使用A2A的流式传输和异步推送功能,实现实时对话或长任务进度通知。
如何安装或部署这个 Agent?
A2A本身是协议规范,无需安装。但为了使用它,需要选择相应的SDK并安装依赖。官方提供了多种语言的SDK:Python SDK (pip install a2a-sdk)、Go SDK (go get github.com/a2aproject/a2a-go)、JS SDK (npm install @a2a-js/sdk)、Java SDK (通过Maven)、.NET SDK (dotnet add package A2A)、Rust SDK (cargo add a2a-lf)。安装后,还需要阅读官方文档和示例来了解如何实现A2A服务器或客户端。
如何使用这个 Agent?
首先,查看官方文档和协议规范(https://a2a-protocol.org)。然后,根据语言选择合适的SDK,并按照文档创建符合A2A的Agent服务器或客户端。参考官方示例(a2a-samples仓库)快速上手。例如,使用Python SDK,你可以从a2a.server导入A2ARequestHandler和A2AServer,定义你的Agent的逻辑,然后启动服务器。
这个 Agent 有哪些优点和局限?
- 开放、社区驱动的标准,Linux基金会托管,支持多厂商协作。
- 提供多种语言官方SDK,降低接入门槛。
- 支持灵活的交互模式(同步、流式、异步),适应不同场景。
- 协议设计考虑了企业级需求的安全、认证和可观测性。
- 作为新协议,生态尚在早期,实际应用案例可能有限。
- 需要开发者学习新协议和SDK,有学习成本。
- 运行需依赖网络和HTTP服务,不适合离线环境。
- 目前不支持动态方法发现(如QuerySkill()),灵活性和扩展性受限。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Agent2Agent (A2A) 协议 当前 | 0 · 缺口较多 | 代码库 / SDK免费 | ★ 26k | 3 天前 | Shell | — |
| pi ACP 适配器 | 66 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 734 | 13 天前 | TypeScript | — |
| Cotal | 77 · 表现良好 | 命令行工具免费 | ★ 331 | 今天 | TypeScript | Codex · Claude Code |
| Pydantic Deep Agents | 68 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 1.1k | 13 天前 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据仅包含README、LICENSE、SECURITY.md和CI工作流,未提供任何关于权限最小化、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的具体实现或文档。因此所有信任标准均得0分。
证据中未包含任何代码或测试,无法评估自洽性、依赖可用性或失败消息。因此所有可靠性标准均得0分。
README描述了目标受众和使用场景,但未提供具体的能力边界、触发精度或环境适配细节。因此所有适应性标准均得0分。
README提供了项目概述和链接,但未包含安装说明、命名稳定性、示例、已知限制、版本变更日志或维护责任的具体信息。许可证文件存在,但未在评分中体现。因此所有约定标准均得0分。
证据中未提供任何关于输出可用性、边际价值或成本效益的具体信息。因此所有有效性标准均得0分。
证据中未提供任何可验证的声明或来源,无法进行声明可追溯性、跨来源佐证或事实与推断分离的评估。因此所有可验证性标准均得0分。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 该仓库仅包含协议文档和CI配置,未提供任何可执行代码或测试,无法验证其实际功能。
- 发布者身份未经验证,且未提供任何安全或权限相关的实现细节,使用前需谨慎评估。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
[1.0.1](https://github.com/a2aproject/A2A/compare/v1.0.0...v1.0.1) (2026-05-26) Bug Fixes * spec: prefer application/a2a+json in HTTP binding ([#1753](https://github.com/a2aproject/A2A/issues/1753)) ([7ff1004](https://github.com/a2aproject/A2A/commit/7ff10041597b9c8a736a477e1890d2c79173bbcf)) * spec: recent transcoding-related error changes ([#1627](https://github.com/a2aproject/A2A/issues/1627)) ([757f0ec](https://github.com/a2aproject/A2A/commit/757f0ec6d067ec071ff915f21ab420200ba1baa3)) …在 GitHub 查看 ↗ -
发布说明摘录
[1.0.0](https://github.com/a2aproject/A2A/compare/v0.3.0...v1.0.0) (2026-03-12) ⚠ BREAKING CHANGES * spec: Combine TaskPushNotificationConfig and PushNotificationConfig ([#1500](https://github.com/a2aproject/A2A/issues/1500)) * spec: remove duplicated ID from the create task push config request ([#1487](https://github.com/a2aproject/A2A/issues/1487)) * spec: pluralize configs in ListTaskPushNotificationConfigs ([#1486](https://github.com/a2aproject/A2A/issues/1486)) * spec: Add LF prefix to the package. ([#1474](https://github.com/a2aproject/A2A/issues/1474)) …在 GitHub 查看 ↗ -
发布说明摘录
[0.3.0](https://github.com/a2aproject/A2A/compare/v0.2.6...v0.3.0) (2025-07-30) ⚠ BREAKING CHANGES * Add mTLS to SecuritySchemes, add oauth2 metadata url field, allow Skills to specify Security ([#901](https://github.com/a2aproject/A2A/issues/901)) * Change Well-Known URI for Agent Card hosting from agent.json to agent-card.json ([#841](https://github.com/a2aproject/A2A/issues/841)) * Add method for fetching extended card ([#929](https://github.com/a2aproject/A2A/issues/929)) Features …在 GitHub 查看 ↗