A2A 是 Agent2Agent 的缩写,意思是“智能体到智能体”。在 AI 语境里,它通常指让不同 Agent 之间互相发现、沟通、协作和交接任务的一类协议或机制。
如果 MCP 关注的是“Agent 怎么连接工具和数据”,A2A 关注的就是“Agent 怎么连接另一个 Agent”。这两个词经常一起出现,但解决的是不同层面的问题。
先用一句话抓住它
A2A 是让不同 AI 智能体之间以标准方式通信、协作和交换任务状态的机制。
生活里的类比是一个团队。一个助理负责查资料,一个助理负责写报告,一个助理负责订会议室。如果他们没有共同的沟通规则,任务交接就会混乱。A2A 想解决的正是这种协作问题。
多个 Agent 为什么需要协议
随着 Agent 能力变多,一个系统里可能不止一个智能体。客服 Agent 可能需要把技术问题交给工程 Agent;旅行规划 Agent 可能需要询价 Agent、日程 Agent 和支付 Agent 配合;企业里不同部门也可能有各自的 AI 助手。
flowchart LR
User["用户目标"] --> AgentA["规划 Agent"]
AgentA --> AgentB["检索 Agent"]
AgentA --> AgentC["执行 Agent"]
AgentB --> AgentA
AgentC --> AgentA
AgentA --> Result["汇总结果"]如果每个 Agent 都用自己的通信方式,协作就会变成定制集成。A2A 的目标,是让 Agent 能描述自己会做什么、接收任务、返回状态、交换结果,并在需要时完成任务交接。
和 MCP 的区别
MCP 可以简单理解为“Agent 找工具”,A2A 可以理解为“Agent 找另一个 Agent”。一个 Agent 可能通过 MCP 调用文件、数据库和 API,也可能通过 A2A 把任务交给另一个更适合的 Agent。
两者并不互相替代。MCP 解决工具连接,A2A 解决智能体协作。一个复杂系统里,它们可能同时存在。
A2A 适合什么场景
A2A 更适合任务天然需要分工的场景。比如企业流程里,销售、客服、财务、工单系统各自有不同 Agent;多专家系统里,法律、技术、数据分析、写作 Agent 分别处理不同部分;长任务中,一个 Agent 负责规划,多个 Agent 并行执行子任务。
它的价值不在于让 Agent 互相闲聊,而在于让能力描述、任务状态和结果交换更标准。
容易误解的地方
多 Agent 不一定比单 Agent 好。任务拆分、通信成本、上下文同步和责任归属都会变复杂。如果一个任务本来可以由一个 Agent 清楚完成,强行拆成多个 Agent 反而可能降低稳定性。
A2A 也不会自动解决安全问题。不同 Agent 之间传递任务和数据时,仍然需要认证、权限、审计和用户确认。Agent 能沟通,不代表每个环节都可靠。
怎么判断它该不该用
设计 A2A 系统时,要让每个 Agent 的能力边界足够清楚:它能做什么,不能做什么,需要什么输入,输出什么结果,失败时如何反馈。尤其当 Agent 能采取外部行动时,必须设置权限和确认点。