A2A 协议与 Agent 间通信

Agent 开发进阶3讲解 5

A2A 让 Agent 把对方当黑盒协作,而不是把对方的工具搬过来:Agent Card 声明能力,Task 状态机管生命周期,消息与产物分开交付。它和 MCP 互补 —— MCP 连工具,A2A 连 Agent;判据是对端有没有自己的判断与状态。

也叫:A2A · Agent-to-Agent · Agent Card · Task 状态机 · Agent 间通信

三个核心对象出自 T3-5

原文示意
① Agent Card(能力名片)—— 放在 /.well-known/agent-card.json
   {
     "name": "ExpenseAgent",
     "description": "根据行程与票据生成预支/报销申请",
     "url": "https://expense.corp.internal/a2a",
     "version": "1.0.0",
     "capabilities": { "streaming": true, "pushNotifications": true },
     "securitySchemes": { ... },        ← 声明怎么鉴权(OAuth / API Key / OIDC)
     "skills": [ { "id": "create-advance", "name": "生成预支申请", ... } ],
     "signature": { ... }               ← v1.0 的签名字段
   }

② Task(任务)—— 委派的基本单元,有唯一 ID,状态机驱动
③ Artifact(产出物)—— 任务的交付结果,由若干 Part(文本/文件/结构化数据)组成

Agent Card 的定位相当于 Agent 版的 OpenAPI 描述:调用方先读卡片,判断"这个 Agent 能不能干这活、我该怎么向它鉴权",再决定要不要派任务。

签名是 v1.0 的关键升级(截至 2026-08):Agent Card 支持 JWS 签名(RFC 7515),对卡片的规范化形式(JSON Canonicalization Scheme, RFC 8785)计算。调用方在信任任何一条声明的能力或鉴权方式之前先验签,防的是发现层的卡片伪造——这在跨组织场景里是刚需,因为你根本没有和对方预先建立集成关系。

以上节选自T3-5 A2A 协议与 Agent 间通信——把对方当黑盒,而不是把对方的工具搬过来,读全文能看到前后语境。

延伸阅读

考这个知识点的题1

会连带问到2