综合介绍
AgentNetworkProtocol(简称ANP)是一个开源协议项目,托管于GitHub,专注于为智能代理(AI Agents)提供安全、高效的通信解决方案。它通过三层架构——身份与加密通信层、元协议层和应用协议层,解决代理网络的互联互通、本地化接口和高效协作问题。ANP基于W3C DID标准实现去中心化身份认证,支持端到端加密通信,并通过元协议实现代理间的自主协商,目标是构建一个支持数十亿智能代理的开放协作网络。由Gaowei Chang发起,采用MIT许可证,项目正推进协议设计与实现,未来计划成为国际标准。
功能列表
- 去中心化身份认证:基于W3C DID规范,支持跨平台代理身份验证,无需依赖中心化系统。
- 端到端加密通信:采用ECDHE协议,确保通信内容仅限双方解密,中间节点不可见。
- 元协议协商:通过自然语言协商通信协议,支持代理自组织和动态调整。
- 代理能力描述:基于语义网标准,定义代理功能和支持的协议,便于数据交换。
- 代理发现机制:提供协议帮助代理定位和连接其他代理。
- 开源代码支持:通过AgentConnect实现协议功能,供开发者集成与测试。
使用帮助
如何安装与使用
AgentNetworkProtocol(ANP)目前是一个开源协议项目,主要以文档和代码形式提供,尚未发布独立应用程序。以下是详细使用指南:
1. 获取项目资源
- 访问GitHub仓库:在浏览器输入
https://github.com/agent-network-protocol/AgentNetworkProtocol
,进入项目主页。 - 克隆代码:开发者可通过Git命令获取:
git clone https://github.com/agent-network-protocol/AgentNetworkProtocol.git
完成后,你将拥有所有文档和代码。
- 阅读文档:无需安装即可直接查看README.md,或参考技术白皮书(
01-AgentNetworkProtocol Technical White Paper.md
)。
2. 探索AgentConnect实现
ANP的开源实现位于https://github.com/agent-network-protocol/AgentConnect
:
- 克隆AgentConnect:
git clone https://github.com/agent-network-protocol/AgentConnect.git
- 环境准备:安装必要的运行环境(如Node.js或Python,具体依赖待文档明确)。建议查看AgentConnect的README文件。
- 运行示例:进入目录,按文档运行代码。例如:
node example.js
这将启动一个简单的代理通信实例。
3. 主要功能操作流程
以下是ANP核心功能的详细操作步骤,假设你已准备好开发环境:
(1) 配置去中心化身份认证
- 生成DID:基于
did:wba
方法生成去中心化标识符: - 使用DID库(如
did-resolver
),生成唯一标识符。 - 示例(伪代码):
const did = await generateDID('wba'); console.log("DID:", did);
- 上传DID文档:将生成的DID文档上传至测试服务器:
- 请求路径:
https://agent-network-protocol.com/wba/user/<16位随机ID>/did.json
- 示例PUT请求:
PUT /wba/user/2i3dg4dtf908cde0/did.json HTTP/1.1 Host: agent-network-protocol.com Content-Type: application/json {<DID_document_json>}
- 成功后,DID为
did:wba:agent-network-protocol.com:wba:user:2i3dg4dtf908cde0
。 - 验证身份:通过测试接口验证:
- 请求:
https://agent-network-protocol.com/wba/test
- 携带签名:
GET /wba/test HTTP/1.1 Host: agent-network-protocol.com Authorization: DID did:wba:agent-network-protocol.com:wba:user:2i3dg4dtf908cde0 Nonce <abc123> Timestamp <2025-03-10T12:00:00Z> VerificationMethod <key-1> Signature <base64url签名>
- 返回token用于后续请求。
(2) 实现端到端加密通信
- 密钥协商:基于DID公私钥对,使用ECDHE协议:
- 代理A生成密钥对,发送公钥给代理B。
- 代理B回复公钥,双方计算共享密钥。
- 示例(伪代码):
const sharedKey = negotiateECDHKey(agentBPublicKey, agentAPrivateKey);
- 发送加密消息:
- 加密消息并发送:
const message = "Hello, Agent B!"; const encrypted = encrypt(message, sharedKey); sendToAgentB(encrypted);
- 代理B用共享密钥解密。
(3) 使用元协议协商通信
- 发起协商:代理A发送元协议请求:
- 示例请求(自然语言描述):
{ "request": "需要数据分析服务", "protocols": ["JSON-RPC", "REST"], "input": "JSON格式数据", "output": "分析结果" }
- 协商过程:代理B响应支持的协议,最终达成一致。
- 生成代码:双方生成协议处理代码并部署,例如:
const protocolCode = generateProtocolCode("REST");
deployProtocol(protocolCode);
(4) 代理描述与发现
- 描述代理:创建JSON-LD格式描述文件:
{ "agentId": "did:wba:agent-network-protocol.com:wba:user:2i3dg4dtf908cde0", "capabilities": ["data-analysis"], "protocols": ["REST"] }
- 发现代理:通过发现协议查询:
- 请求:
https://agent-network-protocol.com/wba/discovery
- 返回匹配代理列表。
- 请求:
4. 测试与开发
- 使用测试接口:访问
https://agent-network-protocol.com/wba/demo/generate
生成DID和密钥对:GET /wba/demo/generate HTTP/1.1 Host: agent-network-protocol.com
返回:
{ "did_document": "<DID文档>", "private_key": "<私钥>" }
- 提交PR:根据
CONTRIBUTING.md
贡献代码。 - 联系支持:邮件
chgaowei@gmail.com
或加入Discord(https://discord.gg/sFjBKTY7sB
)。
5. 注意事项
- 项目处于开发阶段,部分功能(如消息代理服务)尚未完善。
- 测试服务器限额:每个IP最多上传50个文件。
- 关注GitHub更新以获取最新进展。
通过以上步骤,你可以全面体验ANP的功能并参与开发。