每位 AI 工程师都应了解的 A2A、MCP 与 ACP(二)

253 阅读5分钟

什么是A2A(智能体到智能体协议)?

谷歌推出的智能体到智能体(A2A)协议是一种跨平台规范,旨在支持AI智能体在异构系统间通信、协作和委派任务。

与ACP的本地优先定位或MCP的工具集成层不同,A2A解决的是横向互操作性问题——它标准化了不同厂商或运行时的智能体如何在开放网络上交换能力并协调工作流。

协议概述

A2A定义了一种基于HTTP的通信模型,其中智能体被视为可互操作的服务。每个智能体公开一张“智能体卡片”(Agent Card)——一种机器可读的JSON描述符,详细说明其身份、能力、端点和认证要求。

智能体利用这些信息:

  • 以编程方式发现彼此

  • 协商任务和角色

  • 交换消息、数据和流式更新

从原理上讲,A2A与传输层无关,但目前指定通过HTTPS使用JSON-RPC 2.0作为核心交互机制。

核心组件

智能体卡片(Agent Cards)

描述智能体能力、端点、支持的消息类型、认证方法和运行时元数据的JSON文档。

A2A客户端/服务器接口

每个智能体可作为客户端(任务发起者)、服务器(任务执行者)或两者兼具,支持动态任务路由和协商。

消息与工件交换

支持包含上下文的多部分任务、流式输出(通过SSE)和持久性工件(如文件、知识块)。

用户体验协商

智能体可调整消息格式、内容粒度和可视化方式,以匹配下游智能体的能力。

安全架构

  • 基于OAuth 2.0和API密钥的授权

  • 能力范围限定的端点——智能体仅暴露声明交互所需的功能

  • 智能体可在“不透明”模式下运行——隐藏内部逻辑,仅公开可调用服务

实现特点

  • 天生适配Web:基于HTTP、JSON-RPC和标准Web安全机制

  • 与模型无关:适用于任何实现该协议的智能体系统(LLM或其他)

  • 支持任务流式处理和轻量级负载的多轮协作

工程用例

➀ 跨平台智能体生态系统:不同团队或厂商的智能体需安全互操作的场景

➁ 云原生AI环境中的分布式智能体编排(如Vertex AI、LangChain、HuggingFace Agents)

➂ 多智能体协作框架:如跨多个系统(如CRM、HR、IT智能体)的企业AI工作流

协议对比分析

互补还是竞争?

A2A + MCP

A2A与MCP并非竞争关系——二者解决的是智能体AI领域完全不同的问题,且实际上能很好地协同工作。

可以将MCP视为让AI智能体接入现实世界的协议。它使智能体能够访问文件、API、数据库等——本质上是提供执行有价值任务所需的所有结构化上下文。无论是获取实时销售数据还是生成定制报告,MCP负责处理与工具和数据的连接。

而A2A则构建于上层,专注于智能体间的协作。它为智能体提供了共同的通信语言和规则,使其能够发现彼此、委派任务并协商协作方式——即便这些智能体由不同厂商开发或在不同平台上运行。

简而言之:

⟢ MCP连接AI与工具。

⟢ A2A连接AI与其他AI。

二者共同构成了构建智能协作系统的强大模块化基础。

那么ACP 呢?

接下来是 ACP,它采用了完全不同的思路。其核心是本地优先的智能体协调——无需云端支持。不同于使用 HTTP 和基于 Web 的发现机制,ACP 允许智能体在共享运行时内部直接发现并通信。

这种设计非常适合以下场景:

  • 带宽有限或需要低延迟的环境(如机器人技术或设备端助手),

  • 隐私敏感且需完全离线运行的场景,

  • 或在与互联网隔绝的环境中部署(如工厂车间、边缘节点)。

ACP 并非试图与 A2A 竞争——它只是填补了不同的细分领域。但在某些设置中,尤其是在严格控制的环境中,ACP 可能会完全取代 A2A,因为它省去了 Web 原生协议的开销,直接在本地完成任务。

收敛还是碎片化?

随着更多团队采用这些协议,未来可能呈现几种趋势:

最佳情况?我们看到收敛。

想象一个统一的智能体平台:A2A 处理智能体间的交互,MCP 管理对工具和数据的访问,而 ACP 风格的运行时则接入边缘或离线场景。一切无缝协作,开发者无需关心底层协议如何工作,只需在其上构建应用。

最坏情况?生态碎片化。

不同厂商推行自家版本的 A2A 或 MCP,最终导致混乱——就像 Web 服务早期那样,没有大量粘合代码就无法实现互操作。

中间立场?开源工具和中间件可能成为救星。

这些项目将位于智能体和协议之间,抽象差异并为开发者提供简洁统一的 API——同时根据智能体的运行位置和方式在底层进行转换。

简而言之:我们仍处于早期阶段。但我们现在如何构建和采用这些标准,将决定 AI 智能体最终是形成一个凝聚的生态系统还是沦为碎片化的孤岛集合。