A2A 协议与 Agent 间通信
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 间通信——把对方当黑盒,而不是把对方的工具搬过来,读全文能看到前后语境。