什么是 A2A 协议,它的核心架构及主要组件有哪些?
- 标签:大模型、AI、A2A、系统架构
🏛 业务架构师
A2A(Agent2Agent)是 Google 2025 年推出并移交 Linux 基金会治理的开放协议,解决不同主体构建的 Agent 之间如何互相发现、通信、协作的问题——MCP 管 Agent 与工具,A2A 管 Agent 与 Agent。
核心架构与组件:
- Client Agent(发起方)与 Remote Agent(执行方):对等协作主体,不共享内部状态。
- Agent Card:Agent 的"名片"——JSON 文档(
/.well-known/agent.json),声明身份、能力、鉴权、传输方式,是发现机制的基石。 - Task(任务):协作的中心抽象,有完整生命周期(submitted→working→input-required→completed/failed),支持长时异步执行。
- Message 与 Artifact:任务过程中的沟通消息与最终交付的成果物(文件、结构化数据)。
- 传输:HTTP + JSON-RPC + SSE/Webhook 推送。
业务意义:A2A 回答的是"Agent 经济"的互操作问题——企业间的采购 Agent、物流 Agent、财务 Agent 分属不同厂商和云,没有标准协议就要 M×N 点对点集成。A2A 让协作变成"发布名片、下发任务、接收成果"的标准动作,跨组织业务流程自动化才有落地基础。我建议企业关注其生态成熟度:内部工具集成优先 MCP,跨组织协作场景再评估 A2A。
🏗 系统架构师
A2A(Agent2Agent)是跨组织 Agent 互操作协议,我按"核心架构 → 组件 → 落地要点"讲:
核心架构:HTTP(S) + JSON-RPC 的对等服务架构,没有中心broker——每个 Agent 既是 Client(可发起委托)也是 Server(可承接任务),通过Agent Card 自描述 + 任务状态机协作。
主要组件:
- Agent Card:
/.well-known/agent.json发布的能力声明——名称、描述、技能列表、输入输出模态、认证方式、服务端点。相当于 DNS + 服务注册 + API 文档三合一; - Task(任务对象):协作的核心实体,带状态机(submitted → working → input-required → completed/failed/canceled)与唯一 task_id,是幂等与追踪的锚点;
- Message / Artifact:任务内的通信消息与产出物(可多模态:文本、文件、结构化数据);
- 传输与推送:SSE 流式推送 status/artifact 更新,或轮询、webhook 回调——长任务异步化。
落地要点:发现层要缓存 Agent Card 并处理版本变更;长任务要设计超时、重试与补偿(状态机幂等);跨组织认证走 OAuth2 客户端凭证流。
定位一句话:MCP 连"Agent↔工具",A2A 连"Agent↔Agent"——企业内多用 MCP,跨团队/跨组织的 Agent 市场靠 A2A 打通。
💻 全栈开发专家
A2A 的核心架构是「Client-Server + 三大对象」:
角色:
- Client Agent:发起协作请求的一方(可以本身也是个 Agent);
- Server Agent(Remote Agent):接受任务委托、对外暴露能力的一方;
- 传输:HTTP(S) + JSON-RPC 2.0,流式用 SSE。
三大核心对象:
- Agent Card:能力发现的名片(JSON,路径
/.well-known/agent-card.json),声明身份、技能(skills:id/name/description/tags)、端点、鉴权方式、支持的传输; - Task:协作的核心单元,有完整生命周期状态机(
submitted/working/input-required/completed/failed/canceled),支持长任务异步推进和多轮 message 续传; - Message 与 Artifact:Message 是双方往来消息(带 role/parts 多模态部件),Artifact 是任务产出的不可变结果(文件、结构化数据)。
我用 Spring Boot 实现的体会:spring-ai-a2a 把 Agent Card 发布、任务管理、SSE 推送都封装了,服务端核心是维护 Task 状态机的持久化(任务要落库,重启不能丢);客户端核心是处理 input-required(把暂停-收集-续传的交互翻译回自己产品的 UX)。最大坑:任务状态机和 SSE 断连恢复,浏览器/网关超时设置不当会频繁断流,要配心跳和客户端重订阅。