A2A 智能体通信协议

A2A 约定智能体之间怎样介绍能力、委派任务和交付结果,让调用方不必了解对方的内部实现。

返回概念图谱 →

理解与应用

A2A(Agent2Agent)是一套智能体之间的通信协议。一个差旅助手想请财务助手查询报销进度,不需要知道财务助手用了什么模型、提示词或数据库,只要双方对能力描述、消息、任务状态和返回产物有共同约定,就能围绕同一个任务交互。本篇以 A2A v1.0.0 为边界。

差旅助手首先读取财务助手的 Agent Card,了解它提供哪些能力、支持什么接口、如何认证。随后发出“查询报销单 R-204 的进度”,并记录返回的任务标识。如果请求能立即处理,对方可以直接回复消息;如果查询要等待多个系统,任务就会在一段时间内持续更新。调用方因此能区分“已接到请求”“正在查询”和“结果已交付”。

假如财务助手发现缺发票,需要补充输入,差旅助手就应把这个缺口带回原任务,而不是新建一笔无关委派。重连时也是如此:任务标识帮助双方继续追踪原来的工作,但并不自动保证业务动作只执行一次。涉及修改报销单时,服务还需要自己的幂等和授权检查。

协议统一的是协作接口,具体怎样分工仍由应用决定。一个中心调度器可以联系多个助手,助手也可以点对点交流,A2A 并不要求固定拓扑。Agent Card 中写着“能提交报销”,同样不表示用户批准了本次提交;远端返回的文字也只是外部信息,不能替用户扩大原任务范围。

关系速览
A2A 智能体通信协议应用于 →多智能体协作

A2A 可用于不同 Agent 服务间交换消息和任务状态;多 Agent 不强制使用 A2A。

人工确认约束 →A2A 智能体通信协议

远端任务请求涉及重要行动时,委托方必须保留确认与取消边界。

看一次交互:委派一次报销进度查询

这里用中文呈现交互含义。等待发票编号属于补充任务输入,对应 TASK_STATE_INPUT_REQUIRED;若缺少访问财务系统所需的授权,则对应 TASK_STATE_AUTH_REQUIRED,不能用补充编号代替授权。调用方始终追踪同一任务,拿到任务标识时还不能说查询已经完成。

以下为教学示意,未连接真实业务系统。

交互示意

差旅助手 → 财务助手:查询报销单 R-204 的当前进度。
财务助手 → 差旅助手:已建立任务 T-17,正在查询。
财务助手 → 差旅助手:需要补充输入,请提供发票编号。
差旅助手 → 用户:这笔报销需要发票编号才能继续查。
用户补充编号后,差旅助手在任务 T-17 中继续交互。

示意结果

任务 T-17 完成:R-204 等待发票核验。
交付内容:当前状态、待补材料,以及查询所依据的记录。

常见误区

  • “已受理”只表示请求进入了处理流程,不能作为任务完成的回执。
  • Agent Card 描述能力;用户授权、数据权限和身份核验仍需要各自的检查。
  • 网络断开后另起任务,可能把一次委派变成两次执行。

前置与延伸

建议先读

相关概念

参考与版本

Apollo 原创讲解与教学示例。参考资料用于核对技术定义;核验日不代表资料的发布日期。

  • A2A v1.0.0 Release ↗

    官方发布记录日期为 2026-03-12;核对正式版本及枚举等破坏性变更,接入时仍须核对客户端和服务端实际支持版本。 · 核验:2026-10-10

  • A2A v1.0.0 固定规范 ↗

    固定核对官方 v1.0.0 标签下的任务、消息、Agent Card、接口协商与授权说明;文件标题残留 RC 字样,正式发布状态以对应 Release 为准。示例不实现全部状态或线协议字段。 · 核验:2026-10-10