Skip to content

多角度全面对比Google最新的A2A、ANP、MCP

谷歌刚刚发布了一个新的智能体通信协议A2A(Agent to Agent),本文会从多个方面全面对比A2A、ANP、MCP。

解决的问题

ANP和A2A都是为了解决智能体之间的通信问题,都看到了MCP在智能体通信上的局限性:MCP更加擅长于让模型连接工具与资源。

同时,ANP和A2A都认为自己是和MCP互补的。ANP与A2A则有一定的重合,之所以是“一定的重合”,是因为看下来,A2A好像想解决的是企业内部的智能体协作,虽然官网没有明确地说明这一点,但是我从他们的设计中能够感受到这一点,特别是在Task的设计上。

设计原则

在设计原则上,ANP与A2A有很多相似之处:

  • 强调简单,并且复用现有的协议。
  • 强调身份,智能体身份是ANP最核心的模块。
  • 解耦(不透明):智能体不必共享思考过程、计划或工具。这是ANP、A2A与MCP在设计细节上最大的区别。

A2A应该也看到了MCP的复杂性,选择使用Task来作为核心的概念,Task确实是比Tools、Resources更加抽象,更高level的概念。

MCP的Tools和Resources也是非常适合MCP的概念,但是sampling、root的设计我认为需要斟酌一下。

协议架构

ANP与A2A在协议架构上都可以看做P2P架构。MCP是典型的C/S架构,不单单是连接上,也包括协议的概念、角色设定上。

无疑P2P架构更适合智能体网络。

传输层

都支持HTTP,除此之外,MCP由于需要访问本地资源,为了方便,还支持stdio。

核心概念

MCP的核心概念是Tools、Resources、Sampling、Root、Prompts。

A2A的核心概念是Task、Artifact(工件)、Message、Part。

ANP的核心概念是Interface:包括NaturalLanguageInterface(自然语言接口)、StructuredInterface(结构化接口)。

ANP是将智能体交互方式的定义下放到了Interface中。比如,Interface可以是一个预订酒店的API,这个API直接返回结果。也可以是类似A2A的Task,在Interface中定义Task的状态。但是在协议层,我们没有直接显式的定义Task以及状态。

从不透明程度看:

  • MCP是白盒,能够查看对方内部的文件、工具、资源等信息
  • A2A是灰盒,虽然不共享智能体的思考过程、计划或工具,但是仍然定义了智能体之间的任务,以及任务的状态等
  • ANP是黑盒,两个智能体完全不透明,只交付最终结果。同时保留灵活性。

智能体身份

这块的差异非常的大。

ANP

协议本身会携带身份信息、身份验证信息,目前主要是使用W3C的DID方案,一个智能体可以用自己的身份信息,与其他所有的智能体进行交互,不必在其他智能体平台申请账号。

我们认为DID是最适合智能体的身份方案,特别是在互联网场景下。当然也可扩展其他的身份认证方式。

A2A

A2A采用OpenAPI支持的认证方式,包括:HTTP 认证(如 Basic、Bearer)、API Key(可放在请求头、查询参数或 Cookie)、Cookie 认证、OAuth 2.0 以及 OpenID Connect。

A2A协议本身不携带身份信息,只携带身份验证信息,身份验证信息在带外获得,即在A2A协议之外通过其他的手段获得,比如通过Oauth。

A2A的设计使其能够充分利用企业现有的身份体系。但是,在智能体互联网的场景中,如果要实现任意智能体之间的连接,A2A用起来会麻烦一些。

MCP

MCP使用Oauth做的身份验证,也是一个中心化的方案,在连接工具和资源这个场景是适合的。

智能体描述

ANP与A2A比较类似,都是使用JSON。

A2A的智能体描述文档命名为Agent Card,本质上是一个json文档。

ANP的智能体描述则是基于JSON-LD和schema.org,这是语义网的技术,目的是提高两个智能体对信息理解的一致性。

智能体发现

MCP的发现规范还没有看到,不过大概率用和ANP、A2A类似的发现机制。

ANP和A2A都是基于RFC 8615做的,相当于在一个域名的.well-known目录下增加一个元数据文档,A2A的文件名是agent.json,ANP的文件名是agent-descriptions。

使用这个方案,都可以被搜索引擎非常方便地抓取到。

智能体信息组织

在智能体或者MCP server对外的信息组织上,A2A和MCP都使用的是JSON-RPC,类似一种远程调用技术。

ANP在这里比较独特,ANP采用的是语义网的Linked-Data技术,目标是构建一个便于AI访问和理解的AI原生数据网络。

从这个角度看,ANP的技术路线更加靠近Web,我们认为未来的智能体互联网是一个非常开放的网络,只有这样才能够让信息自由地流动,进而释放AI的能力。

开源license

ANP的license是MIT,Google-A2A的license是Apache 2.0。

我仔细研究了一下,后面如果要推到大厂、参与标准化、走国际化路线,Apache 2.0 会是企业法律部门优先认可的协议。MIT 虽然简单,但在你这种有专利潜在风险和商业化路径的协议项目里,容易被企业法律团队卡住。

开源许可上ANP会修改为Apache 2.0。

趋势

虽然说A2A号称与MCP是互补的,但是在阅读文档的过程中,我隐约看到一个可能:工具Agent化,Agent工具化

现有的工具,是否可以进化成一个Agent?未来的Agent,是否也是一个工具?

如果从这个角度看,MCP和A2A,包括ANP,应该会有一定的重叠。

对行业智能体协议的影响

MCP已经成为模型连接工具与资源的事实标准,A2A短期是难以撼动的。不过对于ANP是有很大的影响的。

好的影响是,让智能体通信与协作被更多的人看到。之前MCP火的时候,我们去讲ANP,很多人是不理解的。现在我们不用再强调智能体通信协作的重要性了。

坏的影响是,A2A和ANP有很大部分功能是重叠的,A2A背靠谷歌,影响力非常大,ANP主要靠开源社区,影响力无法比。这对ANP的发展是不利的。

最后

ANP最有价值的部分,其实是社区对未来智能体互联网的设想,社区独特的互联网理念(连接即权力),以及DID+语义网的技术路线。

如果你也认可我们的理念,认可我们对未来智能体互联网的设想,欢迎加入我们,无论是以个人,还是以公司名义,我们需要你的支持

我们正在筹备ANP开源技术社区创始委员会,这是一个临时委员会,目的是为了让社区能够走向正轨,成长为一个更加开放的社区。感兴趣可以联系我。