多角度全面对比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开源技术社区创始委员会,这是一个临时委员会,目的是为了让社区能够走向正轨,成长为一个更加开放的社区。感兴趣可以联系我。