{"id":50433725,"url":"https://github.com/agent-network-protocol/ANP","last_synced_at":"2026-06-17T07:01:17.419Z","repository":{"id":251566063,"uuid":"837784644","full_name":"agent-network-protocol/anp","owner":"agent-network-protocol","description":"Our vision is to provide communication capabilities for intelligent agents, allowing them to connect with each other to form a collaborative network of intelligent agents.","archived":false,"fork":false,"pushed_at":"2026-06-10T07:24:07.000Z","size":4352,"stargazers_count":318,"open_issues_count":16,"forks_count":52,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-06-10T09:13:09.852Z","etag":null,"topics":["agent","ai","did"],"latest_commit_sha":null,"homepage":"https://agent-network-protocol.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agent-network-protocol.png","metadata":{"files":{"readme":"README.cn.md","changelog":null,"contributing":"CONTRIBUTING.cn.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-08-04T02:59:33.000Z","updated_at":"2026-06-10T07:24:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"d3ccc450-60bb-4c7c-9def-2bb4e27e549c","html_url":"https://github.com/agent-network-protocol/anp","commit_stats":null,"previous_names":["chgaowei/didall","chgaowei/ai-agent-protocol","chgaowei/agentconnect","agent-network-protocol/agentconnect"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/agent-network-protocol/anp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agent-network-protocol","download_url":"https://codeload.github.com/agent-network-protocol/anp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34437451,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","ai","did"],"created_at":"2026-05-31T16:00:20.871Z","updated_at":"2026-06-17T07:01:17.412Z","avatar_url":"https://github.com/agent-network-protocol.png","language":"Python","funding_links":[],"categories":["Inter-Agent Protocols"],"sub_categories":["Standards"],"readme":"\u003cdiv align=\"center\"\u003e\n\n[English](README.md) | [中文](README.cn.md)\n\n\u003c/div\u003e\n\n# AgentConnect\n\n## AgentConnect是什么\n\nAgentConnect是[Agent Network Protocol(ANP)](https://github.com/agent-network-protocol/AgentNetworkProtocol)的开源SDK实现。\n\nAgentNetworkProtocol(ANP)的目标是成为**智能体互联网时代的HTTP**，为数十亿智能体构建一个开放、安全、高效的协作网络。\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/images/agentic-web.png\" width=\"50%\" alt=\"Agentic Web\"/\u003e\n\u003c/p\u003e\n\n\n\n## 🔐 为你的智能体添加 DID 身份认证\n\n想让你的智能体支持去中心化身份认证？查看 [DID WBA 身份认证集成指南](examples/python/did_wba_examples/DID_WBA_AUTH_GUIDE.md)，快速为任何 Python HTTP 服务添加 DID WBA 认证能力。\n\n### 当前 DID-WBA 默认行为\n\n- **路径型 DID 默认创建为 `e1_`**：`create_did_wba_document()` 现在默认使用 Ed25519 `Multikey` 绑定密钥创建路径型 DID。\n- **默认请求认证格式为 HTTP Message Signatures**：`DIDWbaAuthHeader` 默认发送 `Signature-Input` / `Signature`，如果有消息体还会带上 `Content-Digest`。\n- **仍保留旧版兼容模式**：如果需要兼容仍在使用旧 Authorization 认证流程的客户端，可以显式指定 `auth_mode=\"legacy_didwba\"`。\n- **Access Token 标准返回头改为 `Authentication-Info`**：在迁移期内，服务端还会额外返回兼容用的 `Authorization: Bearer ...` 响应头。\n- **resolver 现在更严格**：\n  - `resolve_did_wba_document()` 会始终校验 `e1_` / `k1_` 的 DID 绑定关系\n  - 对 `e1_`，proof 已纳入绑定校验，必须是有效的 `DataIntegrityProof + eddsa-jcs-2022`\n  - 对 `k1_`，proof 默认仍然可选；但在 `verify_proof=True` 时，会要求 proof 使用的 key 本身就是绑定 key\n\n---\n\n## 🚀 快速开始 - 30秒构建ANP智能体\n\nOpenANP是构建ANP智能体最简单的方式。只需几行代码即可完成：\n\n### 服务端（3步搭建）\n\n```python\nfrom fastapi import FastAPI\nfrom anp.openanp import AgentConfig, anp_agent, interface\n\n@anp_agent(AgentConfig(\n    name=\"My Agent\",\n    did=\"did:wba:example.com:agent\",\n    prefix=\"/agent\",\n))\nclass MyAgent:\n    @interface\n    async def hello(self, name: str) -\u003e str:\n        return f\"Hello, {name}!\"\n\napp = FastAPI()\napp.include_router(MyAgent.router())\n```\n\n运行：`uvicorn app:app --port 8000`\n\n### 客户端（3行调用）\n\n```python\nfrom anp.openanp import RemoteAgent\n\nagent = await RemoteAgent.discover(\"http://localhost:8000/agent/ad.json\", auth)\nresult = await agent.hello(name=\"World\")  # \"Hello, World!\"\n```\n\n### 自动生成的端点\n\n| 端点 | 说明 |\n|------|------|\n| `GET /agent/ad.json` | Agent Description 文档 |\n| `GET /agent/interface.json` | OpenRPC 接口文档 |\n| `POST /agent/rpc` | JSON-RPC 2.0 端点 |\n\n📖 **完整示例**：[OpenANP 示例](examples/python/openanp_examples/)\n\n---\n\n## 两种使用ANP SDK的方式\n\n### 🔧 方式一：OpenANP（推荐 - 构建智能体）\n\n最优雅、最简洁的ANP智能体SDK：\n\n```python\nfrom anp.openanp import anp_agent, interface, RemoteAgent\n\n# 服务端：构建你的智能体\n@anp_agent(AgentConfig(name=\"Hotel\", did=\"did:wba:...\", prefix=\"/hotel\"))\nclass HotelAgent:\n    @interface\n    async def search(self, query: str) -\u003e dict:\n        return {\"results\": [...]}\n\n# 客户端：调用远程智能体\nagent = await RemoteAgent.discover(\"https://hotel.example.com/ad.json\", auth)\nresult = await agent.search(query=\"Tokyo\")\n```\n\n**特性：**\n- **装饰器驱动**：`@anp_agent` + `@interface` = 完整智能体\n- **自动生成**：ad.json、interface.json、JSON-RPC 端点\n- **Context 注入**：自动管理会话和 DID\n- **LLM 集成**：内置 OpenAI Tools 格式导出\n\n📖 **完整文档**：[OpenANP README](anp/openanp/README.cn.md)\n\n---\n\n### 🔍 方式二：ANP Crawler（文档爬取）\n\n爬虫风格的SDK，用于爬取和解析ANP文档（类似于ANP的网络爬虫）：\n\n```python\nfrom anp.anp_crawler import ANPCrawler\n\n# 使用DID认证初始化爬虫\ncrawler = ANPCrawler(\n    did_document_path=\"path/to/did.json\",\n    private_key_path=\"path/to/key.pem\"\n)\n\n# 爬取智能体描述并获取OpenAI Tools格式\ncontent, tools = await crawler.fetch_text(\"https://example.com/ad.json\")\n\n# 执行发现的工具\nresult = await crawler.execute_tool_call(\"search_poi\", {\"query\": \"北京\"})\n\n# 或直接调用JSON-RPC\nresult = await crawler.execute_json_rpc(\n    endpoint=\"https://example.com/rpc\",\n    method=\"search\",\n    params={\"query\": \"hotel\"}\n)\n```\n\n你可以将crawler的接口封装为LLM的tools，这样可以作为ANP客户端与ANP server进行交互。\n\n**特性：**\n- **爬虫风格**：像网络爬虫一样爬取和解析ANP文档\n- **OpenAI Tools格式**：转换接口用于LLM集成\n- **直接JSON-RPC**：无需接口发现即可调用方法\n- **无需LLM**：确定性的数据收集\n\n📖 **完整文档**：[ANP Crawler README](anp/anp_crawler/README.cn.md)\n\n---\n\n### RemoteAgent vs ANPCrawler\n\n| 特性 | RemoteAgent | ANPCrawler |\n|------|-------------|------------|\n| **风格** | 代理对象（像本地方法） | 爬虫（爬取文档） |\n| **用法** | `agent.search(query=\"Tokyo\")` | `crawler.execute_tool_call(\"search\", {...})` |\n| **类型安全** | 完整类型提示，异常驱动 | 基于字典的返回 |\n| **适用场景** | 使用代码访问固定的智能体，构建ANP的Skills | 使用LLM驱动的方式，访问远程的ANP智能体，并且与智能体进行交互 |\n\n```python\n# RemoteAgent：方法调用像本地方法一样\nagent = await RemoteAgent.discover(url, auth)\nresult = await agent.search(query=\"Tokyo\")  # 像调用本地方法\n\n# ANPCrawler：爬虫风格的文档爬取\ncrawler = ANPCrawler(did_path, key_path)\ncontent, tools = await crawler.fetch_text(url)  # 爬取和解析文档\nresult = await crawler.execute_tool_call(\"search\", {\"query\": \"Tokyo\"})\n```\n\n---\n\n## 安装\n\n### 方式一：通过pip安装\n```bash\npip install anp\n```\n\n### 方式二：源码安装（推荐开发者使用）\n\n```bash\n# 克隆仓库\ngit clone https://github.com/agent-network-protocol/AgentConnect.git\ncd AgentConnect\n\n# 使用UV配置环境\nuv sync\n\n# 安装可选依赖\nuv sync --extra api      # FastAPI/OpenAI 集成\nuv sync --extra dev      # 开发工具\n\n# 运行示例\nuv run python examples/python/did_wba_examples/create_did_document.py\n```\n\n---\n\n## 所有核心模块\n\n| 模块 | 说明 | 文档 |\n|------|------|------|\n| **OpenANP** | 装饰器驱动的智能体开发（推荐） | [README](anp/openanp/README.cn.md) |\n| **ANP Crawler** | 轻量级发现与交互SDK | [README](anp/anp_crawler/README.cn.md) |\n| **FastANP** | FastAPI插件框架 | [README](anp/fastanp/README.cn.md) |\n| **AP2** | 智能体支付协议v2 | [README](anp/ap2/README.cn.md) |\n| **Authentication** | DID-WBA身份认证 | [示例](examples/python/did_wba_examples/) |\n| **Proof** | W3C Data Integrity 与 RFC 9421 origin proof 辅助能力 | [Python包](anp/proof/__init__.py) |\n| **E2EE HPKE** | 基于HPKE的端到端加密（私聊+群聊） | [示例](examples/python/e2e_encryption_hpke_examples/) |\n\n---\n\n## 按模块分类的示例\n\n### OpenANP示例（推荐入门）\n位置：`examples/python/openanp_examples/`\n\n| 文件 | 说明 | 复杂度 |\n|------|------|--------|\n| `minimal_server.py` | 极简服务端（约30行） | ⭐ |\n| `minimal_client.py` | 极简客户端（约25行） | ⭐ |\n| `advanced_server.py` | 完整功能（Context、Session、Information） | ⭐⭐⭐ |\n| `advanced_client.py` | 完整客户端（发现、LLM集成） | ⭐⭐⭐ |\n\n```bash\n# 终端1：启动服务端\nuvicorn examples.python.openanp_examples.minimal_server:app --port 8000\n\n# 终端2：运行客户端\nuv run python examples/python/openanp_examples/minimal_client.py\n```\n\n### ANP Crawler示例\n位置：`examples/python/anp_crawler_examples/`\n\n```bash\n# 快速入门\nuv run python examples/python/anp_crawler_examples/simple_amap_example.py\n\n# 完整演示\nuv run python examples/python/anp_crawler_examples/amap_crawler_example.py\n```\n\n### DID-WBA身份认证示例\n位置：`examples/python/did_wba_examples/`\n\n```bash\n# 创建DID文档\nuv run python examples/python/did_wba_examples/create_did_document.py\n\n# 身份认证演示\nuv run python examples/python/did_wba_examples/authenticate_and_verify.py\n```\n\n### FastANP示例\n位置：`examples/python/fastanp_examples/`\n\n```bash\n# 简单智能体\nuv run python examples/python/fastanp_examples/simple_agent.py\n\n# 酒店预订智能体（完整示例）\nuv run python examples/python/fastanp_examples/hotel_booking_agent.py\n```\n\n### AP2支付协议示例\n位置：`examples/python/ap2_examples/`\n\n```bash\n# 完整AP2流程（商户+购物者）\nuv run python examples/python/ap2_examples/ap2_complete_flow.py\n```\n\n### E2EE HPKE加密示例\n位置：`examples/python/e2e_encryption_hpke_examples/`\n\n| 文件 | 说明 | 复杂度 |\n|------|------|--------|\n| `basic_private_chat.py` | 一步初始化 + 双向加密通信 + Rekey | ⭐ |\n| `group_chat_example.py` | 三方群聊 Sender Key + Epoch推进 | ⭐⭐⭐ |\n| `key_manager_example.py` | HpkeKeyManager多会话生命周期管理 | ⭐⭐⭐ |\n| `error_handling_example.py` | 异常场景处理（过期、错误密钥、重放） | ⭐⭐⭐ |\n\n```bash\n# 基础私聊示例\nuv run python examples/python/e2e_encryption_hpke_examples/basic_private_chat.py\n\n# 群聊示例\nuv run python examples/python/e2e_encryption_hpke_examples/group_chat_example.py\n\n# KeyManager生命周期管理示例\nuv run python examples/python/e2e_encryption_hpke_examples/key_manager_example.py\n\n# 错误处理示例\nuv run python examples/python/e2e_encryption_hpke_examples/error_handling_example.py\n```\n\n---\n\n## 工具\n\n### ANP网络探索器\n使用自然语言探索智能体网络：[ANP网络探索器](https://service.agent-network-protocol.com/anp-explorer/)\n\n### DID文档生成工具\n```bash\nuv run python tools/did_generater/generate_did_doc.py \u003cdid\u003e [--agent-description-url URL]\n```\n\n---\n\n## 联系我们\n\n- **作者**：常高伟\n- **邮箱**：chgaowei@gmail.com\n- **官网**：[https://agent-network-protocol.com/](https://agent-network-protocol.com/)\n- **Discord**：[https://discord.gg/sFjBKTY7sB](https://discord.gg/sFjBKTY7sB)\n- **GitHub**：[https://github.com/agent-network-protocol/AgentNetworkProtocol](https://github.com/agent-network-protocol/AgentNetworkProtocol)\n- **微信**：flow10240\n\n## 许可证\n\n本项目基于MIT许可证开源。详细信息请参阅[LICENSE](LICENSE)文件。\n\n---\n\n**Copyright (c) 2024 GaoWei Chang**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagent-network-protocol%2FANP","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagent-network-protocol%2FANP","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagent-network-protocol%2FANP/lists"}