智能体间协作的“巴别塔困境“如何破解?解读Agent通信4大协议:MCP/ACP/A2A/ANP

AI 智能体的兴起触发了AI应用协作的新领域。这些智能体不再局限于被动的聊天机器人或独立的系统,它们现在被设计用于推理、计划和协作ーー跨任务、跨域甚至跨组织。但随着这一愿景成为现实,一个挑战很快浮出水面: 智能体如何以一种安全、可伸缩和可互操作的方式可靠地相互交流、共享上下文并共同做出决策?

一类新的通信协议应运而生。从模型上下文协议 (MCP) 到 IBM 和思科的代理通信协议 (ACP) ,从谷歌的跨厂商代理对代理协议 (A2A) 到去中心化的代理网络协议 (ANP) ,这些协议正在竞相定义智能体在AI时代如何协调。

这些方法都带来了独特的优势,不是理论上的,它们正在被实现、试验和标准化ーー帮助开发人员解决当前的问题,并使第一波自治系统能够在生产环境中运行。它们对互操作性、上下文共享和安全通信的贡献不仅仅是有价值的,而且可能是必不可少的。

1. MCP : 结构化上下文注入

Anthropic引入的模型上下文协议 (Model Context Protocol,MCP) 定义了一个标准化的接口,用于向大模型提供结构化的实时上下文。使得像 GPT 或 DeepSeek这样的语言模型可以访问工具和知识,减少了对硬编码集成或自定义流水线的需求,允许开发人员将 "实时" 信息插入其他静态模型

一个通俗一点的类比,可以将其视为大模型的通用适配器。它确保不同的应用程序可以轻松地插入它们的数据和函数,以便大模型可以有效地使用它们,而不管它们来自哪个源。

MCP的核心功能是上下文数据注入。MCP 允许外部资源 (如文件、数据库行或 API 响应) 直接拉入提示词或工作内存。所有这些都通过标准化的接口实现,因此大模型可以保持轻量且干净。MCP 还允许大模型动态地调用工具或者生成报告 ,并且按需调用。这就像给AI增加了一个可以访问一个工具箱,而且没有硬连接到模型本身的工具箱。MCP不是用所有可能的细节来填充提示词,而是帮助组合重要的背景信息,采用模块化的、即时的提示词构建,使用更智能的背景信息,更少的token,得到更好的输出。

MCP使用基于 json 的能力描述符在 HTTP (s) 上运行,在设计上是为与模型无关,任何具有大模型都可以利用兼容MCP的服务器。而且,与 API 网关和企业认证标准 (如 OAuth2) 兼容。

MCP 的典型应用场景是内部API与大模型的集成, 支持对结构化业务数据的安全、只读或交互式访问,而不暴露原始端点,能够为自治智能体配备来自 Salesforce、 SAP 或内部知识库等工具的运行时上下文。同时,根据用户会话、系统状态或任务流水线逻辑定制提示词。

MCP非常适用于业务或基于云的智能体生态系统中的多智能体工作流,使用标准化的 api 和 JSON 模式,旨在使用规划逻辑衡量AI之间的协作努力。基于MCP的智能体并不对物理世界进行推理,它们只提取数据、处理数据,然后根据事先训练和提示指令输出结果。智能体的理解是根据上下文注入的,而不是自我建模的。

2. ACP:受控环境中的结构化协作

智能体通信协议 (Agent Communication Protocol,ACP) 是一个开放标准,最初由 BeeAI 和 IBM 提出,用于支持在同一局部或边缘环境中运行的 AI 智能体 之间的结构化通信、发现和协作。

一个通俗的类比,我们可以把它想象成 AI 智能体的邮政服务ーー ACP 定义了 "信封"(消息格式) 和传递规则,这样使用不同堆栈的智能体仍然可以交换有意义的信息。与面向云的协议 (如 A2A) 或上下文路由协议 (如 MCP) 不同,ACP 是为本地优先的实时代理编排而设计的,具有最小的网络开销和在共享运行时内部署的智能体之间的紧密集成。

ACP 定义了一个去中心化的代理环境,其中每个智能体使用本地广播/发现层公布其身份、功能和状态。智能体通过事件驱动的消息传递进行通信,通常使用本地总线或 IPC (进程间通信) 系统,可选的运行时控制器可以编排智能体行为、聚合遥测和执行策略。ACP 智能体通常作为轻量级、无状态的服务或具有共享通信底层的容器运行。

ACP专为低延迟环境设计 (例如,本地协调、机器人、离线边缘 AI),可以通过 gRPC、 ZeroMQ 或自定义运行时总线实现。ACP强调本地自主权限,而不需要云依赖或外部服务注册,同时支持自动任务路由的功能和语义描述符。

ACP的典型应用场景是边缘设备上的多智能体协调 (例如,无人机、物联网集群或机器人舰队),本地优先的大模型系统协调调用,支持传感器输入和操作执行。鉴于自治的运行时环境,智能体能够在没有云基础设施的环境下进行协调。

简而言之,ACP 为模块化 AI 系统提供了本地协议层的运行时,优先考虑低延迟协调、弹性和可组合性。对于隐私敏感、自治或边缘优先的部署来说,这是很自然的选择,因为在这些环境中云优先的部署中是不切实际的。

3.A2A:跨厂商智能体的互操作性

由 Google 引入的 Agent-to-Agent (A2A) 协议是一个跨平台规范,用于使 AI 智能体能够跨异构系统进行通信、协作和委托任务,并以结构化格式返回结果。与 ACP 的本地优先或 MCP 的工具集成层不同,A2A 解决了水平互操作性问题,能够将来自不同供应商或运行时的智能体进行标准化,并在开放网络上交换功能集和协调工作流。

一个通俗一点的类比,我们可以想象一个项目管理平台,其中 AI 智能体可以看到彼此的技能 并委托任务。A2A 为他们如何协调和共享他们的工作 ("工件") 提供了规则。

A2A选择使用Task来作为核心的概念,Task是比MCP中的Tools、Resources等抽象级别更高的概念。A2A 定义了一个基于 http 的通信模型,其中智能体被视为可互操作的服务。智能体利用一个机器可读的 JSON 描述符来通过编程发现彼此,协商任务和角色,交换消息、数据和流更新。A2A 原则上与传输层无关,但目前指定基于HTTPS 的JSON-RPC 2.0 作为其交互的核心机制。

A2A协议的核心组件如下:

  1. Agent Cards: json 文档,描述了代理的功能、端点、支持的消息类型、身份验证方法和运行时元数据。

  2. A2A 客户机/服务器接口: 每个智能体可以作为客户机 (任务发起者)、服务器 (任务执行者) 或两者兼而有之,从而支持动态任务路由和协商。

  3. 消息和工件交换:支持具有上下文的多部分任务、流输出 (通过 SSE) 和持久化工件 (例如文件、知识模块)。

  4. 用户体验协商:智能体可以调整消息格式、内容粒度和可视化,以匹配下游代理的功能。

A2A基于OAuth 2.0 和基于密钥的 API 进行授权,也就是说,A2A基于 HTTP、 JSON-RPC 和标准 web 的安全性完成构建,是web原生的安全性设计。智能体只公开声明的交互所需的函数来明确端点的能力范围,以在 "不透明" 模式下运行,隐藏内部逻辑,同时显示可调用的服务。A2A具有模型无关性, 能够与任何实现该协议的智能体系统(例如,大模型 或其他服务) 一起工作,支持任务流和轻量级有效负载的多轮协作。

A2A的典型应用场景是对来自不同团队或供应商的智能体进行安全互操作,形成跨平台的智能体生态系统。其中,采用了云原生AI境中的分布式智能体编排 ,例如,Vertex AI,LangChain,HuggingFace 智能体s等。作为一个多智能体协作框架,能够支持跨多个企业系统的AI 工作流 ,解决了 crm、 HR 系统或生产力代理等工具之间的互操作性问题,得到了主要企业供应商的支持。

4. ANP:Web智能体的未来

在当前所有的代理协议中,代理网络协议 (ANP) 最符合主动推理和空间网络的要求。ANP 建立在分布式标识符 (distributed identifiers,DIDs) 和 JSON-LD 链接数据之上,它允许智能体在语义上描述自己,在全局范围内发现彼此,并进行对等通信。

我们做一个简单的类比,想象一个全球性的,安全的AI 智能体在线市场,ANP 为智能体提供了 id (如数字护照) 和规则,以发现彼此,证明他们的身份,并公开和安全地协作。协议本身会携带身份信息、身份验证信息,目前主要是使用W3C的DID方案,一个智能体可以用自己的身份信息,与其他所有的智能体进行交互,不必在其他智能体平台申请账号。ANP采用了去中心化的身份安全通信,基于关联数据的语义建模,通过开放注册表或搜索索引智能体的描述进行发现。

ANP的核心概念是Interface,包括自然语言接口和结构化接口,将智能体交互方式的定义下放到了Interface中,支持自主发现、去中心化身份验证和语义推理,虽然 ANP 目前不支持像 rgm 这样的预测或分层推理体系结构,但是它的基础设施可以提供传输和发现层的智能体。

ANP的智能体描述则是基于JSON-LD和http://schema.org,这是语义网的技术,具体可以参考《从语义网到知识图谱》一文。其目的是提高两个智能体对信息理解的一致性。ANP采用的是语义网的Linked-Data技术,目标是构建一个便于AI访问和理解的AI原生数据网络。

同样,ANP可能缺乏共享的全局上下文和空间网络提供的事务性知识图谱。它能够连接智能体,但不连接它们的环境。这或许是空间网络开始接管的地方。

5.智能体间通信协议的思考

在一定意义上,A2A 和 MCP 是互补的,它们解决的是AI 智能体完全不同的部分,而且它们实际上可以配合得非常好。可以把 MCP 看作是让AI 智能体接入世界的协议, MCP使智能体能够访问文件、 api 和数据库,基本上就是他们做一些有用的事情所需要的所有结构化上下文。无论是提取实时销售数据还是生成自定义报告,MCP 都处理与工具和数据的连接。A2A 是智能体开始合作的地方,A2A 为他们提供了一种共享的语言和一套规则来发现彼此、委派任务、协商他们如何一起工作ーー即使他们是由不同的供应商构建或运行在不同的平台上。

简单而言,MCP 连接AI和工具,而A2A 连接 AI 和其他 AI,它们共同构成了构建智能协作系统的强大模块基础。

ACP采用了完全不同的方法。这完全是本地优先代理协调的问题,不需要云服务。ACP 不使用 HTTP 和基于 web 的发现,而是允许代理在共享运行时内部相互查找和通信。这非常适用于带宽有限或者需要低延迟 (比如机器人技术或者设备上的助手) 的场景, 或者隐私级别很高,以及在没有互联网的环境中部署 (例如,工厂车间、边缘节点)。

ACP 并非试图与 A2A 竞争,它只是填补了一个不同的利基市场。但是在一些设置中,特别是在严格控制的环境中,ACP 可能完全取代 A2A,因为它跳过了 web 本地协议的开销,只是在本地完成工作。

ANP 则像是充满了互联网情怀方法,实现智能体在互联网上的连接与协作。ANP的最大价值在于社区对未来智能体互联网的设想,是社区独特的互联网理念(连接即权力),以及DID+语义网的技术路线。这可能是ANP演进的核心动力。

MCP/ACP/A2A 使用注册表或服务描述符 (如代理卡) 来公布代理功能。每个协议都定义了自己的发现方法,通常需要一个已知的目录或端点。ANP 更进一步,通过 JSON-LD 和 did 实现去中心化发现,使代理具有自主身份和开放 web 上的语义可见性。

| 特性 | MCP | ACP | A2A | ANP |
| 功能聚焦 | 面向大模型的上下文注入 | 智能体的本地协作 | 跨平台的智能体通信 | 跨平台跨网络的智能体通信 |
| 通信模型 | 客户机/服务器(host/server 模型) | 去中心化的本地运行时 | 基于HTTP的客户机/服务器,采用智能体Cards | 基于HTTP的客户机/服务器,采用JSON-LD |
| 应用范围 | 垂直集成(模型调用工具) | 本地优先的智能体运行时 | 智能体之间的水平集成 | 开放网络中智能体之间的水平集成 |
| 发现机制 | 在服务器上的工具注册 | 本地广播/运行时注册 | HTTP上的A2A.json | HTTP 上的智能体-descriptions |
| 传输协议 | HTTP(s),JSON | IPC,ZeroMQ,gRPC(灵活) | HTTP(s),JSON-RPC2.0 | HTTP(s), JSON-LD |
| 安全模型 | App层验证,OAuth2,有范围的API | 运行时沙箱,私有网络的安全性 | OAuth2,受限的开放端点 | W3C DID技术构建去中心化的身份认证 |
| 适用场景 | 大模型应用访问外部数据或外部工具 | 边缘智能,嵌入式系统,离线智能体 | 跨平台多智能体工作流 | 跨网络跨平台的多智能体工作流 |

用例 大模型连接一组内部的API 设备内的多个小智能体协调 企业级分布式智能体的协作 互联网分布式智能体的协作

接下来,一种理想的情况是各协议趋同互补。设想一个统一的智能体平台,其中 A2A 处理企业内部智能体之间的来回操作,MCP 管理对工具和数据的访问,ACP风格的运行时插件用于边缘或离线场景,ANP则可以安全地使用互联网上的各种智能体。一切正常运行,开发人员可以在此基础上进行构建,而无需担心哪个协议在幕后做什么。最坏的情况是支离破碎,不同的供应商推出不同风格的MCP/ACP/A2A/ANP ,结果就是一团糟,就像 web 服务的早期,没有大量的胶水代码,什么都不能与其他任何东西进行交互。

开源工具和中间件可以挽救这种局面。这些项目位于代理和协议之间,抽象出它们之间的区别,并为开发人员提供一个干净、统一的 API ーー同时根据代理运行的位置和方式在底层进行转换。

6.小结

MCP,ACP,A2A,ANP基本上都能够使智能体相互发现对方、协商任务和直接共享消息。在大多数情况下,每个智能体管理自己的本地状态和上下文。

  • MCP 简化了智能体访问工具和数据的方式。

  • ACP 为企业智能体生态系统引入了本地结构化协作。

  • A2A 通过创建共享任务语言解决了供应商锁定问题。

  • ANP 推进了代理身份和发现的去中心化愿景。

虽然 MCP、 ACP、 A2A 和 ANP 都在解决当今的智能体通信需求方面取得了长足的进步,但它们都诞生于一个特定的环境 ------ AI 智能体,并在当前的互联网结构中运行。随着向主动推理智能体和分布式智能的演进,可能都有其局限性。

【参考资料与关联阅读】

相关推荐
生涯にわたる学び2 小时前
自旋锁/互斥锁 设备树 iic驱动总线 day66 67 68
arm开发
李小白202002027 小时前
windows 10系统安装arm虚拟机
arm开发
亿道电子Emdoor2 天前
【ARM】PACK包管理
arm开发
wypywyp3 天前
基于arm芯片的驱动开发——温湿度传感器dht11
arm开发·驱动开发
亿道电子Emdoor3 天前
【ARM】MDK如何实现使用Hex文件完成程序烧录
arm开发·stm32·单片机
彻骨寒风3 天前
在麒麟 ARM (aarch64)安装OpenJDK11和elasticsearchkibana
运维·arm开发·jenkins
2301_1472583694 天前
ARM - GPIO 标准库开发
arm开发
Yeats_Liao4 天前
X86、X64 与 ARM:架构的剖析与比较
arm开发·架构
ShiMetaPi5 天前
【GM3568JHF】FPGA+ARM异构开发板 使用指南:显示与触摸
arm开发·嵌入式硬件·fpga开发·rk3568
亿道电子Emdoor5 天前
【ARM】MDK出现:Unable to find ARM libraries
arm开发·stm32·单片机