{"id":34612849,"url":"https://github.com/agent-network-protocol/anp-agent-openchat","last_synced_at":"2025-12-24T14:17:48.813Z","repository":{"id":280537828,"uuid":"935350124","full_name":"agent-network-protocol/anp-agent-openchat","owner":"agent-network-protocol","description":"An agent that supports the ANP protocol as both input and output.","archived":false,"fork":false,"pushed_at":"2025-05-09T01:50:14.000Z","size":332,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-09T02:42:24.244Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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.md","changelog":null,"contributing":null,"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}},"created_at":"2025-02-19T09:56:14.000Z","updated_at":"2025-05-09T01:50:19.000Z","dependencies_parsed_at":"2025-07-17T18:14:29.891Z","dependency_job_id":"1268640b-1534-41f0-a1b3-01a6dfce7359","html_url":"https://github.com/agent-network-protocol/anp-agent-openchat","commit_stats":null,"previous_names":["agent-network-protocol/anp-agent","agent-network-protocol/anp-agent-chat","agent-network-protocol/anp-agent-openchat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/agent-network-protocol/anp-agent-openchat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp-agent-openchat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp-agent-openchat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp-agent-openchat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp-agent-openchat/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-agent-openchat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agent-network-protocol%2Fanp-agent-openchat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28003727,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"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":[],"created_at":"2025-12-24T14:17:46.793Z","updated_at":"2025-12-24T14:17:48.804Z","avatar_url":"https://github.com/agent-network-protocol.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# anp agent openchat 开放互联智能体网络演示框架\n\n[English Version](README_EN.md)\n\n本项目展示了 anp 开放互联智能体网络的一个实现框架，围绕 anp agent openchat 客户端和 anp agent openchat publisher 发布端，演示了智能体的开放集成、身份机制与互联通信能力。\n\n## 演示目标\n\n1. **任何人**都可以启动 anp agent openchat 客户端，自由探索 anp 网络智能体世界。\n2. **任何开发者**都可以快速集成 anp 协议，并通过 anp agent openchat publisher 自主可控地发布智能体。\n3. 智能体之间通过 **DID** 确认身份唯一性，可信性可通过开放方式提供：\n   当前主要是 DID 发布域名、ad.json 丰富信息\n   未来会考虑域名方/组织/社群的 DID 签名背书等。\n\n## 演示启动\n\n- **anp agent openchat**：为使用者提供 AI 聊天、发现智能体、与智能体聊天。运行 `web_api.py`，默认启动在 8000 端口。\n- **anp agent openchat publisher**：帮助服务者启动和监控本地多个 agent，并公布运行中的 agent 地址。运行 `web_anp_llmagent_launcher.py`，默认启动在 8080 端口。\n\n## 演示功能\n\n### anp agent openchat\n1. 从 anp agent openchat publisher 加载智能体书签。\n2. 通过本地 AI 智能体基于 anp 协议探索智能体，了解其细节，探索中需验证自身身份。\n3. 本地 AI 智能体根据用户需求推荐智能体。\n4. 支持 @网络智能体 聊天。\n5. 与本地 AI 智能体多轮对话交流。\n\n### anp agent openchat publisher\n1. 下拉菜单选择并运行本地智能体。\n2. 查看智能体运行状况。\n3. 运行中的智能体地址通过 `/api/public/instances` 发布，供 anp agent openchat 获取。\n\n## 安装方法\n\n### 环境准备\n\n1. 克隆项目\n2. 创建环境配置文件\n   ```\n   cp .env.example .env\n   ```\n3. 编辑 .env 文件，设置必要的配置项\n\n### 使用 Poetry 安装依赖\n\n```bash\n# 激活虚拟环境(如果已存在)\nsource .venv/bin/activate\n\n# 安装依赖\npoetry install\n```\n\n## 运行方法\n\n本项目支持多种运行方式：\n\n### 1. 启动 anp agent openchat 客户端\n\n```bash\npython web_api.py\n```\n默认监听 8000 端口，提供 Web 聊天与智能体发现。\n\n### 2. 启动 anp agent openchat publisher 发布端\n\n```bash\npython web_anp_llmagent_launcher.py\n```\n默认监听 8080 端口，管理本地 agent 并对外发布。\n\n### 3. 命令行方式调用 ANP 接口，体验交互过程\n\n```bash\npython anp_llmapp.py\n```\n\n### 4. 通过 stdio/SSE 调用 MCP 接口，体验在MCP客户端的可行性\n\n```bash\n# 启动服务端\npython -m anp_mcpwrapper.mcp_stdio_server\n# 启动客户端\npython -m anp_mcpwrapper.mcp_stdio_client\n# 或以 SSE 方式启动\npython -m anp_mcpwrapper.mcp_stdio_server -t sse\n```\n\n**注意**：MCP 相关方法已在 TRAE 环境中测试通过。\n\n## 项目结构\n\n```\n.\n├── anp_core/            # 封装便于开发者调用的ANP接口\n├── anp_mcpwrapper/      # 实现MCP接口的对接\n├── api/                 # API路由模块\n├── core/                # 应用框架\n├── doc/                 # 文档说明和测试用key\n├── examples/            # 未来增加面向开发者的更多示例\n├── utils/               # 工具函数\n├── logs/                # 日志文件\n├── setup/               # 后续增加安装方案（当前暂时无用）\n├── anp_llmapp.py        # 直接调用ANP接口的应用\n├── anp_llmagent.py      # 计划开发为开箱即用的agent\n├── web_api.py           # anp agent openchat\n└── web_anp_llmagent_launcher.py # anp agent openchat publisher\n```\n\n## API端点\n\nAgent API端点\n- `GET /agents/example/ad.json`: 获取代理描述信息\n- `GET /ad.json`: 获取广告JSON数据，需要鉴权\n- `POST /auth/did-wba`: DID WBA首次鉴权\n- `GET /auth/verify`: 验证Bearer Token\n- `GET /wba/test`: 测试DID WBA认证\n- `POST /wba/anp-nlp`: ANP自然语言通信接口\n- `GET /wba/user/{user_id}/did.json`: 获取用户DID文档\n- `PUT /wba/user/{user_id}/did.json`: 保存用户DID文档\nPublisher API端点\n- `GET /api/public/instances`: 获取已发布的本地智能体实例（由 publisher 提供）\n\n## 工作流程\n\n### 智能体身份与互信\n- 每个智能体拥有唯一 DID，身份可信性可通过开放方式（如域名、ad.json、权威签名、社群背书等）验证。\n\n### 客户端流程\n1. 启动 anp agent openchat，加载书签，发现和探索智能体。\n2. 通过本地 AI 智能体推荐、探索、与网络智能体聊天。\n3. 需要时进行 DID 身份验证。\n\n### 发布端流程\n1. 启动 anp agent openchat publisher，选择并运行本地 agent。\n2. 实时监控 agent 状态。\n3. 通过 `/api/public/instances` 对外发布可用 agent 信息。\n\n## 鉴权说明\n\n本项目实现了两种鉴权方式：\n\n1. **首次DID WBA鉴权**：根据DID WBA规范进行签名验证。\n2. **Bearer Token鉴权**：通过JWT令牌进行后续请求鉴权。\n\n详细鉴权流程请参考代码实现和 [DID WBA规范](https://github.com/agent-network-protocol/AgentNetworkProtocol/blob/main/chinese/03-did%3Awba%E6%96%B9%E6%B3%95%E8%A7%84%E8%8C%83.md)\n\n如需进一步了解 anp agent openchat 及其开放互联能力，欢迎参考代码和文档，或直接运行体验。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagent-network-protocol%2Fanp-agent-openchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagent-network-protocol%2Fanp-agent-openchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagent-network-protocol%2Fanp-agent-openchat/lists"}