Skip to content

LangGraph负责人对MCP的挑战,ANP是怎么解决的?

最近MCP在网上比较火,看到了Langchain官网的一篇博客,FounderPark也做了转载:

原始链接:https://blog.langchain.dev/mcp-fad-or-fixture/ 中文链接:https://mp.weixin.qq.com/s/etvDsU422z8uiknCn6fw4A

内容是 LangChain 联合创始人、CEO Harrison Chase 与 LangGraph 负责人 Nuno Campos 针对 MCP 的辩论,探讨 MCP 究竟是昙花一现的热点还是注定成为未来的标准。

虽然有些观点,我未必认同,包括对MCP协议的定义与使用。但是Nuno Campos对MCP提出的几个问题确实直击要害。

由于我们一直在做智能体通信协议,我们发布的ANP应该是全球第一个面向智能体的通信协议,当MCP发布后,我们第一时间就进行了研究,也发现了Nuno Campos提出的这些问题。

其实这些问题,ANP在设计之初就已经考虑了。今天主要聊聊ANP是怎么解决这些问题的。

Nuno Campos对MCP提出的几个问题核心有哪些

Nuno Campos在与Harrison Chase的辩论中,提出了MCP当前存在的几个核心问题:

  • 协议复杂性过高:MCP不仅仅是一个工具调用协议,还同时提供了提示(prompts)和模型补全(LLM completions)服务,这种设计增加了协议的复杂性。
  • 实现难度较大:MCP采用了双向通信机制,增加了实现的复杂性,尤其是对于开发者而言,增加了额外的负担。
  • 难以在服务器端扩展:MCP当前的设计并非无状态协议,难以在服务器端进行扩展,尤其是在分布式环境下,身份认证和状态管理问题突出。
  • 工具质量与模型适配问题:将随机工具插入到一个对工具毫无了解的智能体中,必然会导致工具调用的质量下降,影响用户体验。

ANP的解决方案

针对Nuno Campos提出的这些问题,ANP在设计之初就进行了深入的思考,并提出了相应的解决方案:

智能体身份问题

我们认为这是协议最重要的问题。MCP刚发布的时候,只支持本地server,最主要的原因也是他们没有想清楚身份的问题如何解决。我们和MCP社区官方也有过沟通,不过他们并没有采纳我们的建议。

mcp-did-proposal

后来他们选择了OpenID Connect作为身份认证方案,但是OpenID Connect本身是一个中心化的方案,无法提供去中心化、分布式的身份认证,在智能体协作上,存在天然的短板。

而我们在设计ANP的第一天,就在尝试解决智能体去中心化身份的问题,我们最终的方案,能够达到类似email的效果:在每个平台内部,是中心化的方案,但是整体网络是一个去中心化的方案。不同平台之间都可以互相通信。

详细对比可以参考:did:wba对比OpenID Connect、API keys

我们能够理解他们选择OpenID Connect的原因:解决Chatbot应用与现有互联网的融合问题。但是,我们相信,随着智能体互联网的发展,ANP所倡导的去中心化、智能体为核心的设计理念,将更适合未来智能体网络的需求。

协议复杂性问题

ANP明确了自身的定位:专注于智能体之间的通信协议,而非模型的上下文协议。ANP不提供模型补全服务,也不提供提示服务,而是专注于定义智能体之间如何进行身份认证、信息交换和协作。

ANP的设计理念是"Agent-Centric",每个智能体都是网络中的平等节点,协议本身只负责定义智能体之间的通信规则和数据格式,极大地降低了协议的复杂性。

我们在开源项目OpenManus的基础之上,添加了ANP协议的支持,大家可以看下我们的代码(app/tool/anp_tool.py)。git地址:https://github.com/agent-network-protocol/OpenManus-ANP。(社区内测中,有问题可以给我们反馈)

智能体集成ANP,只需要200行代码就可以完成,核心是一个提示词,一个http函数。剩下的事情完全由模型来驱动。

http函数就是模型的浏览器,通过它,模型就可以方便的访问、遍历通过ANP协议连接起来的数据网络。构建一个方便AI访问的数据网络,一直都是ANP的目标。

智能体基于ANP的连接方式,才是真正AI Native的连接的方式。

服务器端扩展问题

ANP本身并不定义协议内部的状态,因为基于ANP的智能体描述协议是自描述的。所谓的自描述,是模型可以在文档中声明接口调用的方式,可以是有状态的,也可以是无状态的,ANP都支持。

智能体可以自由的决定,它对外的接口是哪种方式,可以是有状态的,也可以是无状态的。

工具质量与模型适配问题

我认为这是模型要解决的问题,和协议无关。协议能够提供的,是更好的描述信息与工具的使用方式。这一点我认为他的理解是有偏差的,或者他是对协议这种模式的质疑。

核心概念的差异

ANP和MCP在协议的核心概念上还是有很大的差异的。MCP中,tool、资源、提示词是协议的核心。但是在ANP中,这些都是不存在的。

ANP提供的是对智能体公开信息的描述,这些信息可以是基本信息,比如咖啡店卖什么咖啡,也可以是API接口描述,通过这个接口可以购买咖啡。

信息是ANP唯一的概念,也是最核心的概念,没有资源、没有工具、没有提示词,一切由模型决定,由智能体开发者决定。