近日,ANP开源技术社区成功完成了一项重要突破——在两个备受关注的开源Manus项目(owl与OpenManus)中,集成了ANP协议支持。这意味着,开源Manus现在能够通过ANP协议顺利访问互联网,实现智能体间的互联互通。
该功能已在开发者社区内部完成小范围测试验证,即日起正式对外开放。
整个集成过程带来了深刻启示。值得关注的是,ANP展现出了区别于MCP的独特优势:只需一个提示词与一个HTTP函数,即可让智能体与任意其他智能体完成通信与协作。
核心要点如下:
- 与MCP相比,ANP的两大关键特性使其更适合智能体间的通信:去中心化的身份认证机制,以及P2P(点对点)协议架构。
- 接入流程极为简便:智能体仅需一个anp_tool.py文件(一个提示词,一个HTTP函数),便能与任意智能体建立连接并通信。
- 这种简洁性源于协议设计本身——两个智能体之间完全解耦,无需复杂概念,天然支持无状态协议。
- 当整个流程首次成功运行时,不得不承认,整个过程带来的震撼真实而强烈:ANP是一个完全AI原生(AI Native)的协议,智能体甚至能在连接过程中自行修复其错误。
- 人工智能不仅改变了软件的开发模式,也正在深刻重塑软件的运行模式与协作模式。未来,软件或许不再需要过于复杂的逻辑,智能体正加速取代现有软件。
ANP是什么?它与MCP有何不同?
ANP是一款专为智能体设计的开源通信协议,其核心能力在于提供去中心化的身份认证,并基于语义网技术实现数据交换与协作。
用更通俗的方式理解:如果说MCP是模型的USB接口,让模型能连接各类资源与工具,那么ANP就是智能体的Email——只要知道对方的ID,你就可以用自己的账号主动发送请求、建立连接。
MCP的工作原理示意图:

ANP的工作原理示意图:

与MCP相比,ANP的两个核心差异点如下。
1、去中心化的身份认证
这种方式类似电子邮件的工作原理。要与另一个智能体通信,只需知晓其ID,无需在对方的系统或平台上注册账号。这使得两个智能体间的协作成本被大幅简化。
2、P2P(点对点)的协议架构
ANP协议的架构是彻底的P2P模式,任何智能体均可主动与另一个智能体建立连接。这并非星型拓扑,也非传统的客户端-服务器模式,而是真正的点对点通信。
开源Manus接入ANP后能实现什么功能?
接入ANP后,开源Manus能够通过该协议与其他智能体进行交互。举例来说:假设存在一个酒店智能体,专门提供酒店查询与预订服务。Manus获取该酒店智能体的ADs(智能体描述文档)后,就能通过ANP与之交互,自主完成酒店信息查询、房间预订等操作。
ANP代码接入开源Manus的详细过程
ANP是以智能体工具的形式接入开源Manus的。无论是owl还是OpenManus,接入方式完全一致——仅需添加一个anp_tool.py模块。
anp_tool.py的代码极为简洁,核心仅包含两部分:一个工具描述(用于提示词),以及一个HTTP函数(用于处理ANP请求)。
工具描述如下:
利用智能体网络协议(ANP)与其他智能体进行交互。
1. 首次使用时,请访问URL:https://agent-search.ai/ad.json,这是一个智能体搜索服务,可通过其内部接口查询能提供酒店、机票、景点等服务的智能体。
2. 获取智能体描述文档后,可根据文档中的数据链接URL爬取相关数据。
3. 在此过程中,可调用API完成服务,直至认为任务已经完成。
4. 注意:使用ANPTool获取的任何URL,均必须通过ANPTool进行调用,请勿直接自行调用。
这段描述的核心作用是告知模型:从智能体描述文档的URL出发,下载文档,接着依据文档中的描述及其任务要求,利用文档中的URL进一步爬取新文档或调用API。整个过程可反复迭代,持续搜索智能体对外公开的信息,直至任务完成或模型判定结束。
HTTP函数如下:
async def execute(
self,
url: str,
method: str = "GET",
headers: Dict[str, str] = None,
params: Dict[str, Any] = None,
body: Dict[str, Any] = None
) -> Dict[str, Any]:
"""
执行HTTP请求,与其他智能体进行交互
参数:
url (str): 智能体描述文件或API端点的URL
method (str, 可选): HTTP方法,默认为"GET"
headers (Dict[str, str], 可选): HTTP请求头
params (Dict[str, Any], 可选): URL查询参数
body (Dict[str, Any], 可选): POST/PUT请求的请求体
返回:
Dict[str, Any]: 响应内容
"""
该HTTP函数本质上是一个HTTP请求发送接口。唯一的区别在于,发送过程中采用了ANP协议的身份认证机制。
智能体身份:
在测试脚本中,为Manus生成了一个用于测试的DID身份"did:wba:agent-did.com:test:public"。对应的DID文档与私钥保存在文件夹"did_test_public_doc"中。
这是一个公开的测试DID,任何人都可借此体验ANP协议。但请注意,它仅适用于测试,无法用于实际产品预订。
接入过程与MCP的主要差异
以上就是接入ANP协议的全部过程。并且,只需完成这一次接入,未来即可与任意类型的智能体进行交互,唯一需要调整的只是用户的意图以及智能体描述文档的URL。
这正是ANP协议设计简洁之处的体现:
- 智能体之间完全解耦,无需了解对方的内部设计与实现
- 借助语义网技术为数据添加语义描述,使AI能够更精准地理解数据
- 通过Linked-Data技术将数据连接成一张数据网络,便于AI自主爬取与利用
ANP没有MCP中那些资源、工具、提示词、文件、sampling等复杂概念。ANP最核心的概念就是智能体描述文档,其中包含了智能体对外提供的所有信息与接口。
此外,由于ANP本质上是一个网络协议,本地只需安装ANP的SDK——agent-connect包即可,无需其他额外安装。
还有一个值得关注的细节:ANP在发布第一天就支持了去中心化的身份认证。两个智能体通信时,无需在对方系统中申请账号,直接使用自身已有的账号即可建立通信。这一点MCP目前还无法实现。
AI原生协议与连接的本质
当整个流程首次成功运行时,整个过程带来的震撼是真实而强烈的。一个有趣的细节是:在实现智能体时,让模型自行组装HTTP请求并处理HTTP响应。
结果发现,当模型首次发送的HTTP请求中某个字段出错,对方智能体返回失败时,模型竟然自动识别了该错误,并主动重发请求,第二次成功完成。
这一发现带来的启示有两个方向:
- 一个AI原生的协议与连接方式,与我们当前互联网所使用的协议和连接方式相比,完全是另一番景象。
- 人工智能不仅改变了软件的开发模式,也正在改变软件的运行模式与协作模式。未来,软件可能不再需要那么多复杂的逻辑——智能体将加速取代现有软件的某些功能。
