核心要点

  • A2A=Agent2Agent,Google 2025 主导、捐给 Linux 基金会的开放协议,解决"不同厂商/框架的 Agent 之间如何互相发现与协作"

  • 核心对象:AgentCard(能力声明 JSON)、Task(有状态长任务)、Message/Part(交互单元)、Artifact(产出物)

  • 通信基于现有标准:HTTP + JSON-RPC,长任务用 SSE 流式推送进度;五大原则之一是"模态无关"

  • A2A 是"横向"Agent↔Agent,MCP 是"纵向"Agent↔工具/数据,二者互补:MCP 给 Agent 装手脚,A2A 让 Agent 们组队

标准回答

定义

A2A(Agent2Agent)是 Google 于 2025 年主导推出、随后捐赠给 Linux 基金会托管的开放协议。它要解决的不是"一个 Agent 怎么用工具",而是"不同公司、不同框架开发的 Agent,如何在不暴露各自内部实现的前提下互相发现、对话、委派任务并交付结果"。

核心对象

  • AgentCard:一份公开的 JSON 能力声明(通常放在固定 well-known 路径),描述这个 Agent 是谁、会做什么、支持哪些技能、用什么认证方式。其它 Agent 靠它来"发现"对方。
  • Task:一次有状态的长任务,有生命周期(submitted/working/completed 等),适合跑几分钟到几小时的活。
  • Message / Part:一次交互里的消息,Part 是消息的组成片段(文本、文件、结构化数据)。
  • Artifact:任务产出的结果物。

通信方式

走 HTTP 之上的 JSON-RPC;长任务的中间进度用 SSE 流式推送,也支持 push 通知回调。整套不发明新轮子,全部架在成熟的 Web 标准上。

五大设计原则

拥抱 Agent 原生能力(不把对方降级成普通工具,允许非结构化的自然协作)、基于现有标准(HTTP/JSON-RPC/SSE)、默认安全(企业级认证授权)、支持长任务(异步、有状态)、模态无关(文本、音视频、表单都能传)。

与 MCP 的关系

MCP 是"纵向"——把工具、数据、上下文标准化地接给单个 Agent,方向是 Agent↔工具;A2A 是"横向"——让 Agent 与 Agent 之间协作通信,方向是 Agent↔Agent。一个解决"我能不能用这个能力",一个解决"我能不能找别的 Agent 帮忙"。二者互补:MCP 给一个 Agent 装上手脚,A2A 让一群 Agent 组队干活。

常见误区

⚠️ 常见踩坑

别把 A2A 和 MCP 当成竞争关系或二选一——它们解决正交的问题(横向协作 vs 纵向接工具),实际系统里常常同时用:Agent 内部靠 MCP 调工具,对外靠 A2A 与别的 Agent 协作。

追问

追问 1AgentCard 里一般包含哪些信息?它在协作流程里起什么作用?

AgentCard 是一份 JSON 形式的"能力名片",通常托管在对方服务的 well-known 路径上供公开发现。典型字段包括:名称与描述、服务端点 URL、协议版本、支持的能力(如是否支持流式 SSE、push 通知)、技能列表(每个技能有 id、描述、输入输出示例、标签)、以及认证方式(如 OAuth、API Key)。

在流程里它扮演"发现 + 握手"的角色:一个客户端 Agent 先拉取目标的 AgentCard,判断对方会不会做这件事、怎么认证,再决定是否发起 Task。它让 Agent 之间不必预先硬编码彼此的接口,实现松耦合的动态组队。

追问 2为什么 A2A 要把 Task 设计成有状态的长任务,而不是一次请求一次响应?

因为 Agent 协作的活往往不是毫秒级返回的。比如"帮我调研一个市场并出报告"可能要跑十几分钟、调多个子 Agent、产出多个中间结果。

有状态 Task 带来三个好处:一是生命周期可追踪(submitted→working→completed/failed),客户端能随时查进度;二是支持流式与异步——中间进度用 SSE 推、最终结果用 Artifact 交付,长任务还能用 push 回调,避免长连接挂死;三是支持"任务中再交互",比如执行到一半需要补充信息时回一条 input-required 状态向调用方要参数。这套设计正对应"支持长任务"这条设计原则。

追问 3在一个真实系统里,A2A 和 MCP 会怎么同时出现?举个例子。

设想一个"差旅助手"主 Agent:用户说"下周去上海出差,订机票酒店并报销"。

主 Agent 内部用 MCP 接入日历、邮箱、内部报销系统等工具与数据(纵向取能力);但订机票、订酒店分别是航司方和酒店方各自的专业 Agent,主 Agent 通过 A2A 发现它们的 AgentCard、各发一个 Task 去委派(横向找帮手),拿回 Artifact(订单确认)后,再用 MCP 调报销工具提交。

可以记成一句话:MCP 让单个 Agent 变强,A2A 让多个 Agent 协同;前者接工具,后者接同行。

🔗 相似问题

同一考点的不同问法,面试官可能换着问,一起刷更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习