opc-agent 4.1.0 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +20 -20
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +14 -14
  3. package/.github/PULL_REQUEST_TEMPLATE.md +13 -13
  4. package/CHANGELOG.md +48 -48
  5. package/CONTRIBUTING.md +36 -36
  6. package/README.zh-CN.md +497 -497
  7. package/dist/channels/wechat.js +6 -6
  8. package/dist/deploy/index.js +56 -56
  9. package/dist/studio/server.js +30 -1
  10. package/dist/studio-ui/index.html +230 -10
  11. package/dist/ui/components.js +105 -105
  12. package/examples/README.md +22 -22
  13. package/examples/basic-agent.ts +90 -90
  14. package/examples/brain-integration.ts +71 -71
  15. package/examples/multi-channel.ts +74 -74
  16. package/fix-sidebar.mjs +188 -188
  17. package/install.ps1 +154 -154
  18. package/install.sh +164 -164
  19. package/package.json +1 -1
  20. package/scripts/install.ps1 +31 -31
  21. package/scripts/install.sh +40 -40
  22. package/serve-studio.js +13 -13
  23. package/serve-test.js +25 -25
  24. package/src/channels/dingtalk.ts +46 -46
  25. package/src/channels/email.ts +351 -351
  26. package/src/channels/feishu.ts +349 -349
  27. package/src/channels/googlechat.ts +42 -42
  28. package/src/channels/imessage.ts +31 -31
  29. package/src/channels/irc.ts +82 -82
  30. package/src/channels/line.ts +32 -32
  31. package/src/channels/matrix.ts +33 -33
  32. package/src/channels/mattermost.ts +57 -57
  33. package/src/channels/msteams.ts +32 -32
  34. package/src/channels/nostr.ts +32 -32
  35. package/src/channels/qq.ts +33 -33
  36. package/src/channels/signal.ts +32 -32
  37. package/src/channels/sms.ts +33 -33
  38. package/src/channels/telegram.ts +616 -616
  39. package/src/channels/twitch.ts +65 -65
  40. package/src/channels/voice-call.ts +100 -100
  41. package/src/channels/websocket.ts +399 -399
  42. package/src/channels/wechat.ts +329 -329
  43. package/src/channels/whatsapp.ts +32 -32
  44. package/src/cli/chat.ts +99 -99
  45. package/src/cli/setup.ts +314 -314
  46. package/src/core/agent.ts +476 -476
  47. package/src/core/api-server.ts +277 -277
  48. package/src/core/audio.ts +98 -98
  49. package/src/core/collaboration.ts +275 -275
  50. package/src/core/context-discovery.ts +85 -85
  51. package/src/core/context-refs.ts +140 -140
  52. package/src/core/gateway.ts +106 -106
  53. package/src/core/heartbeat.ts +51 -51
  54. package/src/core/hooks.ts +105 -105
  55. package/src/core/ide-bridge.ts +133 -133
  56. package/src/core/node-network.ts +86 -86
  57. package/src/core/profiles.ts +122 -122
  58. package/src/core/scheduler.ts +187 -187
  59. package/src/core/session-manager.ts +137 -137
  60. package/src/core/subagent.ts +98 -98
  61. package/src/core/vision.ts +180 -180
  62. package/src/core/workflow-graph.ts +365 -365
  63. package/src/daemon.ts +96 -96
  64. package/src/deploy/index.ts +255 -255
  65. package/src/doctor.ts +156 -156
  66. package/src/eval/index.ts +211 -211
  67. package/src/eval/suites/basic.json +16 -16
  68. package/src/eval/suites/memory.json +12 -12
  69. package/src/eval/suites/safety.json +14 -14
  70. package/src/hub/brain-seed.ts +54 -54
  71. package/src/hub/client.ts +60 -60
  72. package/src/mcp/servers/calculator-mcp.ts +65 -65
  73. package/src/mcp/servers/crypto-mcp.ts +73 -73
  74. package/src/mcp/servers/database-mcp.ts +72 -72
  75. package/src/mcp/servers/datetime-mcp.ts +69 -69
  76. package/src/mcp/servers/filesystem.ts +66 -66
  77. package/src/mcp/servers/github-mcp.ts +58 -58
  78. package/src/mcp/servers/index.ts +63 -63
  79. package/src/mcp/servers/json-mcp.ts +102 -102
  80. package/src/mcp/servers/memory-mcp.ts +56 -56
  81. package/src/mcp/servers/regex-mcp.ts +53 -53
  82. package/src/mcp/servers/web-mcp.ts +49 -49
  83. package/src/memory/context-compressor.ts +189 -189
  84. package/src/memory/seed-loader.ts +212 -212
  85. package/src/memory/user-profiler.ts +215 -215
  86. package/src/plugins/content-filter.ts +23 -23
  87. package/src/plugins/logger.ts +18 -18
  88. package/src/plugins/rate-limiter.ts +38 -38
  89. package/src/protocols/a2a/client.ts +132 -132
  90. package/src/protocols/a2a/index.ts +8 -8
  91. package/src/protocols/a2a/server.ts +333 -333
  92. package/src/protocols/a2a/types.ts +88 -88
  93. package/src/protocols/a2a/utils.ts +50 -50
  94. package/src/protocols/agui/client.ts +83 -83
  95. package/src/protocols/agui/index.ts +4 -4
  96. package/src/protocols/agui/server.ts +218 -218
  97. package/src/protocols/agui/types.ts +153 -153
  98. package/src/protocols/index.ts +2 -2
  99. package/src/protocols/mcp/agent-tools.ts +134 -134
  100. package/src/protocols/mcp/index.ts +8 -8
  101. package/src/protocols/mcp/server.ts +262 -262
  102. package/src/protocols/mcp/types.ts +69 -69
  103. package/src/providers/index.ts +632 -632
  104. package/src/publish/index.ts +376 -376
  105. package/src/scheduler/cron-engine.ts +191 -191
  106. package/src/scheduler/index.ts +2 -2
  107. package/src/schema/oad.ts +217 -217
  108. package/src/security/approval.ts +131 -131
  109. package/src/security/approvals.ts +143 -143
  110. package/src/security/elevated.ts +105 -105
  111. package/src/security/guardrails.ts +248 -248
  112. package/src/security/index.ts +9 -9
  113. package/src/security/keys.ts +87 -87
  114. package/src/security/secrets.ts +129 -129
  115. package/src/skills/builtin/index.ts +408 -408
  116. package/src/skills/marketplace.ts +113 -113
  117. package/src/skills/types.ts +42 -42
  118. package/src/studio/server.ts +31 -1
  119. package/src/studio/templates-data.ts +178 -178
  120. package/src/studio-ui/index.html +230 -10
  121. package/src/telemetry/index.ts +324 -324
  122. package/src/tools/builtin/browser.ts +299 -299
  123. package/src/tools/builtin/datetime.ts +41 -41
  124. package/src/tools/builtin/file.ts +107 -107
  125. package/src/tools/builtin/home-assistant.ts +116 -116
  126. package/src/tools/builtin/rl-tools.ts +243 -243
  127. package/src/tools/builtin/shell.ts +43 -43
  128. package/src/tools/builtin/vision.ts +64 -64
  129. package/src/tools/builtin/web-search.ts +126 -126
  130. package/src/tools/builtin/web.ts +35 -35
  131. package/src/tools/document-processor.ts +213 -213
  132. package/src/tools/image-generator.ts +150 -150
  133. package/src/tools/integrations/calendar.ts +73 -73
  134. package/src/tools/integrations/code-exec.ts +39 -39
  135. package/src/tools/integrations/csv-analyzer.ts +92 -92
  136. package/src/tools/integrations/database.ts +44 -44
  137. package/src/tools/integrations/email-send.ts +76 -76
  138. package/src/tools/integrations/git-tool.ts +42 -42
  139. package/src/tools/integrations/github-tool.ts +76 -76
  140. package/src/tools/integrations/image-gen.ts +56 -56
  141. package/src/tools/integrations/index.ts +92 -92
  142. package/src/tools/integrations/jira.ts +83 -83
  143. package/src/tools/integrations/notion.ts +71 -71
  144. package/src/tools/integrations/npm-tool.ts +48 -48
  145. package/src/tools/integrations/pdf-reader.ts +58 -58
  146. package/src/tools/integrations/slack.ts +65 -65
  147. package/src/tools/integrations/summarizer.ts +49 -49
  148. package/src/tools/integrations/translator.ts +48 -48
  149. package/src/tools/integrations/trello.ts +60 -60
  150. package/src/tools/integrations/vector-search.ts +42 -42
  151. package/src/tools/integrations/web-scraper.ts +47 -47
  152. package/src/tools/integrations/web-search.ts +58 -58
  153. package/src/tools/integrations/webhook.ts +38 -38
  154. package/src/tools/mcp-client.ts +131 -131
  155. package/src/tools/web-scraper.ts +179 -179
  156. package/src/tools/web-search.ts +180 -180
  157. package/src/ui/components.ts +127 -127
  158. package/srv-out.txt +1 -1
  159. package/templates/ecommerce-assistant/README.md +45 -45
  160. package/templates/ecommerce-assistant/oad.yaml +47 -47
  161. package/templates/tech-support/README.md +43 -43
  162. package/templates/tech-support/oad.yaml +45 -45
  163. package/test-agent/Dockerfile +9 -9
  164. package/test-agent/README.md +50 -50
  165. package/test-agent/agent.yaml +23 -23
  166. package/test-agent/docker-compose.yml +11 -11
  167. package/test-agent/oad.yaml +31 -31
  168. package/test-agent/package-lock.json +1492 -1492
  169. package/test-agent/package.json +17 -17
  170. package/test-agent/src/index.ts +24 -24
  171. package/test-agent/src/skills/echo.ts +15 -15
  172. package/test-agent/tsconfig.json +24 -24
  173. package/test-full.js +43 -43
  174. package/test-sidebar.js +22 -22
  175. package/test-studio3.js +75 -75
  176. package/test-studio4.js +41 -41
  177. package/tests/a2a-protocol.test.ts +285 -285
  178. package/tests/agui-protocol.test.ts +246 -246
  179. package/tests/api-server.test.ts +148 -148
  180. package/tests/approvals.test.ts +89 -89
  181. package/tests/audio.test.ts +40 -40
  182. package/tests/brain-seed-extended.test.ts +490 -490
  183. package/tests/brain-seed.test.ts +239 -239
  184. package/tests/browser.test.ts +179 -179
  185. package/tests/channels/discord.test.ts +79 -79
  186. package/tests/channels/email.test.ts +148 -148
  187. package/tests/channels/feishu.test.ts +123 -123
  188. package/tests/channels/telegram.test.ts +129 -129
  189. package/tests/channels/websocket.test.ts +53 -53
  190. package/tests/channels/wechat.test.ts +170 -170
  191. package/tests/channels-extra.test.ts +45 -45
  192. package/tests/chat-cli.test.ts +160 -160
  193. package/tests/cli.test.ts +46 -46
  194. package/tests/context-compressor.test.ts +172 -172
  195. package/tests/context-refs.test.ts +121 -121
  196. package/tests/cron-engine.test.ts +101 -101
  197. package/tests/daemon.test.ts +135 -135
  198. package/tests/deepbrain-wire.test.ts +234 -234
  199. package/tests/deploy-and-dag.test.ts +196 -196
  200. package/tests/doctor.test.ts +38 -38
  201. package/tests/document-processor.test.ts +69 -69
  202. package/tests/e2e-nocode.test.ts +442 -442
  203. package/tests/elevated.test.ts +69 -69
  204. package/tests/eval.test.ts +173 -173
  205. package/tests/gateway.test.ts +63 -63
  206. package/tests/guardrails.test.ts +177 -177
  207. package/tests/home-assistant.test.ts +40 -40
  208. package/tests/hooks.test.ts +79 -79
  209. package/tests/ide-bridge.test.ts +38 -38
  210. package/tests/image-generator.test.ts +84 -84
  211. package/tests/init-role.test.ts +124 -124
  212. package/tests/integrations.test.ts +249 -249
  213. package/tests/mcp-client.test.ts +92 -92
  214. package/tests/mcp-server.test.ts +178 -178
  215. package/tests/mcp-servers.test.ts +260 -260
  216. package/tests/node-network.test.ts +74 -74
  217. package/tests/plugin-a2a-enhanced.test.ts +230 -230
  218. package/tests/profiles.test.ts +61 -61
  219. package/tests/publish.test.ts +231 -231
  220. package/tests/rl-tools.test.ts +93 -93
  221. package/tests/sandbox-manager.test.ts +46 -46
  222. package/tests/scheduler.test.ts +200 -200
  223. package/tests/secrets.test.ts +107 -107
  224. package/tests/security-enhanced.test.ts +233 -233
  225. package/tests/settings-api.test.ts +148 -148
  226. package/tests/setup.test.ts +73 -73
  227. package/tests/subagent.test.ts +193 -193
  228. package/tests/telegram-discord.test.ts +60 -60
  229. package/tests/telemetry.test.ts +186 -186
  230. package/tests/user-profiler.test.ts +169 -169
  231. package/tests/v090-features.test.ts +254 -254
  232. package/tests/vision.test.ts +61 -61
  233. package/tests/voice-call.test.ts +47 -47
  234. package/tests/voice-enhanced.test.ts +169 -169
  235. package/tests/voice-interaction.test.ts +38 -38
  236. package/tests/web-search.test.ts +155 -155
  237. package/tests/workflow-graph.test.ts +279 -279
  238. package/tutorial/customer-service-agent/README.md +612 -612
  239. package/tutorial/customer-service-agent/SOUL.md +26 -26
  240. package/tutorial/customer-service-agent/agent.yaml +63 -63
  241. package/tutorial/customer-service-agent/package.json +19 -19
  242. package/tutorial/customer-service-agent/src/index.ts +69 -69
  243. package/tutorial/customer-service-agent/src/skills/faq.ts +27 -27
  244. package/tutorial/customer-service-agent/src/skills/ticket.ts +22 -22
  245. package/tutorial/customer-service-agent/tsconfig.json +14 -14
package/README.zh-CN.md CHANGED
@@ -1,497 +1,497 @@
1
- <p align="center">
2
- <h1 align="center">🤖 OPC Agent</h1>
3
- <p align="center"><strong>开放智能体框架 — 构建、测试、运行企业级 AI 智能体</strong></p>
4
- <p align="center">
5
- <a href="https://www.npmjs.com/package/opc-agent"><img src="https://img.shields.io/npm/v/opc-agent?color=blue" alt="npm 版本"></a>
6
- <a href="https://github.com/Deepleaper/opc-agent/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green" alt="开源协议"></a>
7
- <img src="https://img.shields.io/badge/tests-146%20passed-brightgreen" alt="146 个测试通过">
8
- <a href="https://www.npmjs.com/package/opc-agent"><img src="https://img.shields.io/npm/dm/opc-agent?color=orange" alt="下载量"></a>
9
- </p>
10
- <p align="center">
11
- <a href="./README.md">English</a> · <strong>中文</strong>
12
- </p>
13
- </p>
14
-
15
- ---
16
-
17
- ## 💡 这是什么?
18
-
19
- OPC Agent 是一个 **TypeScript 优先的开放智能体框架**,由 [跃盟科技 (Deepleaper)](https://www.deepleaper.com) 开发维护。
20
-
21
- 一句话概括:**用一个 YAML 文件(OAD)定义智能体,接入任意大语言模型,一键部署到多个渠道。**
22
-
23
- 不需要写胶水代码,不需要自己管理 Prompt,不需要操心渠道对接。定义好 OAD 文件,`opc run` 就完事了。
24
-
25
- ## ⚡ 快速开始(30 秒上手)
26
-
27
- ### 一键安装(推荐)
28
-
29
- **macOS / Linux:**
30
- ```bash
31
- curl -fsSL https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.sh | bash
32
- ```
33
-
34
- **Windows (PowerShell):**
35
- ```powershell
36
- irm https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.ps1 | iex
37
- ```
38
-
39
- > 自动安装 Node.js + OPC Agent + Ollama(可选),全程有引导提示。
40
-
41
- ### 手动安装
42
-
43
- ```bash
44
- # 1. 安装 CLI
45
- npm install -g opc-agent
46
-
47
- # 2. 创建项目(交互式,会让你选模板)
48
- opc init my-agent
49
-
50
- # 3. 进入项目目录
51
- cd my-agent
52
-
53
- # 4. 跑起来
54
- opc run
55
- ```
56
-
57
- 打开浏览器访问 `http://localhost:3000`,内置 Web 对话界面即刻可用。
58
-
59
- ### 使用模板快速创建
60
-
61
- ```bash
62
- opc init my-service --template customer-service
63
- opc init my-sales --template sales-assistant
64
- opc init my-kb --template knowledge-base
65
- opc init my-reviewer --template code-reviewer
66
- ```
67
-
68
- ## ✨ 核心特性
69
-
70
- ### 🔌 多模型供应商 — 不绑定任何一家
71
-
72
- ```yaml
73
- spec:
74
- provider:
75
- default: deepseek
76
- allowed: [openai, deepseek, qwen, anthropic, ollama]
77
- model: deepseek-chat
78
- ```
79
-
80
- 支持的供应商:
81
- - **DeepSeek** — 性价比之王,国产首选
82
- - **通义千问 (Qwen)** — 阿里出品,中文能力强
83
- - **OpenAI** — GPT-4o、GPT-4o-mini
84
- - **Anthropic** — Claude 系列
85
- - **Ollama** — 本地部署,数据不出门
86
- - 任何兼容 OpenAI 接口的服务
87
-
88
- ### 📡 10 个渠道,一套代码,到处运行
89
-
90
- ```yaml
91
- spec:
92
- channels:
93
- - type: web # 🌐 Web 对话界面(内置 UI)
94
- port: 3000
95
- - type: telegram # ✈️ Telegram 机器人
96
- - type: websocket # 🔗 实时 WebSocket
97
- - type: slack # 💬 Slack Bot(Socket Mode / Events API)
98
- - type: email # 📧 IMAP 收信 + SMTP 回信
99
- - type: wechat # 💚 微信公众号
100
- - type: feishu # 🔵 飞书 / Lark 消息卡片
101
- - type: voice # 🎙️ 语音(STT/TTS,可配置供应商)
102
- - type: webhook # 🔔 Webhook 接收 + HTTP 回调
103
- - type: discord # 🎮 Discord Bot(斜杠命令 + 线程 + Embed)
104
- ```
105
-
106
- ### 🧠 知识库(RAG)— 让智能体拥有你的专业知识
107
-
108
- ```typescript
109
- import { KnowledgeBase } from 'opc-agent';
110
-
111
- const kb = new KnowledgeBase('./docs');
112
- await kb.addFile('产品手册.pdf');
113
- await kb.addFile('常见问题.md');
114
- // 智能体回答时自动检索知识库
115
- ```
116
-
117
- 内置 TF-IDF 向量化 + 余弦相似度检索,500 字符分块 + 50 字符重叠,数据持久化到 `.opc-knowledge.json`,无需外部向量数据库。
118
-
119
- CLI 操作:
120
-
121
- ```bash
122
- opc kb add 产品手册.pdf # 添加文件
123
- opc kb search "退款政策" # 搜索
124
- opc kb stats # 查看统计
125
- opc kb clear # 清空
126
- ```
127
-
128
- ### 🎭 多智能体编排 — 分工协作,按需路由
129
-
130
- ```typescript
131
- import { Orchestrator } from 'opc-agent';
132
-
133
- const orchestrator = new Orchestrator({
134
- agents: [分诊智能体, 销售智能体, 客服智能体],
135
- strategy: 'route-by-intent',
136
- });
137
- ```
138
-
139
- 支持:顺序执行、并行执行、条件路由、智能体移交(handoff)。
140
-
141
- ### 🧪 内置测试 — 发布前验证智能体行为
142
-
143
- ```yaml
144
- spec:
145
- testing:
146
- cases:
147
- - name: 问候测试
148
- input: "你好"
149
- expect:
150
- contains: ["你好", "帮"]
151
- maxLatencyMs: 5000
152
-
153
- - name: 产品咨询
154
- input: "你们的产品怎么收费?"
155
- expect:
156
- contains: ["价格", "套餐"]
157
- notContains: ["error"]
158
- ```
159
-
160
- ```bash
161
- opc test # 运行测试
162
- opc test --watch # 监听模式,改了代码自动测
163
- opc test --json # JSON 格式输出
164
- ```
165
-
166
- ### 🔧 插件系统 — 按需扩展
167
-
168
- ```yaml
169
- spec:
170
- plugins:
171
- - name: logging # 日志记录
172
- - name: analytics # 使用分析
173
- - name: rate-limit # 限流保护
174
- config: { maxPerMinute: 60 }
175
- ```
176
-
177
- 完整生命周期钩子:`onInit`、`onMessage`、`onResponse`、`onError`、`onShutdown`。
178
-
179
- ### 🔒 安全特性
180
-
181
- - 输入消毒(防 XSS、注入攻击)
182
- - API Key 轮换管理
183
- - CORS 跨域配置
184
- - 安全响应头
185
- - 会话隔离认证中间件
186
-
187
- ### 📊 监控与分析
188
-
189
- Web 渠道内置以下端点:
190
-
191
- | 端点 | 说明 |
192
- |------|------|
193
- | `GET /api/health` | 健康检查 |
194
- | `GET /api/metrics` | Prometheus 文本格式指标 |
195
- | `GET /api/dashboard` | 实时仪表盘 UI |
196
-
197
- Prometheus 暴露的指标:`opc_uptime_seconds`、`opc_requests_total`、`opc_messages_total`、`opc_errors_total`、`opc_llm_latency_avg_ms`、`opc_sessions_total`、`opc_token_usage_total`、`process_resident_memory_bytes`。
198
-
199
- `opc analytics` 和 `opc stats` 命令可查看离线分析快照(历史事件存储在 `data/analytics.json`)。
200
-
201
- ## 🏗️ 架构设计
202
-
203
- ```
204
- ┌─────────────────────────────────────────────────┐
205
- │ OAD (YAML 定义文件) │
206
- │ 智能体的一切配置都在这里 │
207
- ├─────────────────────────────────────────────────┤
208
- │ │
209
- │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
210
- │ │ 渠道层 │ │ 插件层 │ │ 安全层 │ │
211
- │ │10 个渠道 │ │ 日志/分析│ │ 消毒/CORS/认证│ │
212
- │ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
213
- │ │ │ │ │
214
- │ ┌────▼──────────────▼───────────────▼────────┐ │
215
- │ │ 智能体运行时 (Agent Runtime) │ │
216
- │ │ │ │
217
- │ │ ┌─────────┐ ┌────────┐ ┌─────────────┐ │ │
218
- │ │ │ 记忆 │ │ 技能 │ │ 知识库 │ │ │
219
- │ │ │ 短期+ │ │ HTTP, │ │ TF-IDF RAG │ │ │
220
- │ │ │ 长期 │ │ 调度 │ │ │ │ │
221
- │ │ └─────────┘ └────────┘ └─────────────┘ │ │
222
- │ └────────────────────┬───────────────────────┘ │
223
- │ │ │
224
- │ ┌────────────────────▼───────────────────────┐ │
225
- │ │ 大语言模型供应商 │ │
226
- │ │ DeepSeek · 通义千问 · OpenAI · Ollama │ │
227
- │ └─────────────────────────────────────────────┘│
228
- └─────────────────────────────────────────────────┘
229
- ```
230
-
231
- ## 📋 12 个开箱即用模板
232
-
233
- ```bash
234
- opc init my-agent --template <模板名>
235
- ```
236
-
237
- | 模板 | 说明 | 典型场景 |
238
- |------|------|---------|
239
- | `customer-service` | 客服智能体 | FAQ 自动回答 + 转人工 |
240
- | `sales-assistant` | 销售助手 | 产品问答 + 线索捕获 + 预约 |
241
- | `knowledge-base` | 知识库问答 | 基于文档的 RAG 语义检索 |
242
- | `code-reviewer` | 代码审查 | Bug 检测 + 代码风格检查 |
243
- | `hr-recruiter` | HR 招聘助手 | 简历筛选 + 面试安排 |
244
- | `project-manager` | 项目管理 | 任务跟踪 + 会议纪要 |
245
- | `content-writer` | 内容创作 | 博客写作 + 社媒运营 + SEO |
246
- | `legal-assistant` | 法务助手 | 合同审查 + 合规检查 |
247
- | `financial-advisor` | 财务顾问 | 预算管理 + 支出分析 |
248
- | `executive-assistant` | 行政助理 | 日程管理 + 邮件处理 |
249
- | `data-analyst` | 数据分析师 | SQL 查询 + 数据可视化 |
250
- | `teacher` | 教学助手 | 课程设计 + 出题 + 互动 |
251
-
252
- ## 🚀 部署指南
253
-
254
- ### 本地开发
255
-
256
- ```bash
257
- opc dev # 文件监听热重载
258
- ```
259
-
260
- ### Docker 部署
261
-
262
- `opc init` 创建的每个项目都自带 `Dockerfile` 和 `docker-compose.yml`:
263
-
264
- ```bash
265
- docker compose up -d
266
- ```
267
-
268
- `Dockerfile` 使用 `node:22-alpine`,仅安装生产依赖,暴露端口 3000,以 `npx opc run` 启动。
269
-
270
- ### 部署到 OpenClaw
271
-
272
- ```bash
273
- opc deploy --target openclaw
274
- opc deploy --target openclaw --install # 同时写入本地配置
275
- ```
276
-
277
- 在 `~/.openclaw/agents/{id}/workspace/` 下生成:`IDENTITY.md`(元数据)、`SOUL.md`(系统提示词 + 模型配置)、`AGENTS.md`(技能 + 记忆 + DTV 配置)。
278
-
279
- ### 部署到 Hermes
280
-
281
- ```bash
282
- opc deploy --target hermes
283
- ```
284
-
285
- 将 OAD 转换为 Hermes Character 格式,包含 personality、bio、lore、message examples、style guides(chat / post / all)。
286
-
287
- ### 环境变量
288
-
289
- ```bash
290
- # .env
291
- OPC_LLM_API_KEY=your-api-key
292
- OPC_LLM_BASE_URL=https://api.deepseek.com/v1
293
- OPC_LLM_MODEL=deepseek-chat
294
- ```
295
-
296
- ## 📖 CLI 命令参考
297
-
298
- | 命令 | 说明 |
299
- |------|------|
300
- | `opc init [name]` | 创建新智能体项目(交互式,可选模板) |
301
- | `opc create <name>` | 从模板快速创建 |
302
- | `opc run` | 启动智能体服务 |
303
- | `opc dev` | 开发模式(文件监听热重载) |
304
- | `opc chat` | 命令行交互对话(readline 界面) |
305
- | `opc test` | 运行 OAD 中定义的测试用例 |
306
- | `opc build` | 校验 OAD 配置合法性 |
307
- | `opc info` | 查看智能体信息 |
308
- | `opc analytics` | 查看使用分析 |
309
- | `opc stats` | 查看运行时统计快照 |
310
- | `opc deploy` | 部署智能体(`--target openclaw\|hermes`) |
311
- | `opc kb add <file>` | 向知识库添加文件 |
312
- | `opc kb search <query>` | 搜索知识库 |
313
- | `opc kb stats` | 知识库统计 |
314
- | `opc kb clear` | 清空知识库 |
315
- | `opc search` | 搜索 OPC Registry |
316
- | `opc tool` | MCP 工具管理 |
317
- | `opc workflow run` | 运行工作流 |
318
- | `opc workflow list` | 列出工作流 |
319
- | `opc version-mgmt list` | 列出历史版本 |
320
- | `opc version-mgmt rollback` | 回滚版本 |
321
- | `opc publish` | 打包发布智能体 |
322
- | `opc install <pkg>` | 安装智能体包 |
323
- | `opc plugin list` | 列出已安装插件 |
324
- | `opc plugin add <name>` | 添加插件 |
325
- | `opc migrate` | OAD Schema 迁移 |
326
-
327
- ## 🔗 SDK 参考
328
-
329
- ```typescript
330
- import { AgentRuntime, KnowledgeBase, Orchestrator } from 'opc-agent';
331
-
332
- // 创建并启动智能体
333
- const runtime = new AgentRuntime();
334
- await runtime.loadConfig('oad.yaml');
335
- await runtime.initialize();
336
- await runtime.start();
337
-
338
- // 使用知识库
339
- const kb = new KnowledgeBase('./docs');
340
- await kb.addFile('handbook.pdf');
341
- const results = await kb.search('退款政策');
342
-
343
- // 多智能体编排
344
- const orch = new Orchestrator({
345
- agents: [agentA, agentB],
346
- strategy: 'route-by-intent',
347
- });
348
- ```
349
-
350
- ## 🔑 OAD 配置文件完整说明
351
-
352
- OAD(Open Agent Definition)是智能体的声明式定义格式:
353
-
354
- ```yaml
355
- apiVersion: opc/v1
356
- kind: Agent
357
-
358
- metadata:
359
- name: my-agent
360
- version: 1.0.0
361
- description: 我的智能体
362
-
363
- spec:
364
- provider:
365
- default: deepseek
366
- allowed: [deepseek, openai, qwen, anthropic, ollama]
367
- model: deepseek-chat
368
- systemPrompt: |
369
- 你是一个专业的客服助手...
370
-
371
- skills: []
372
-
373
- channels:
374
- - type: web
375
- port: 3000
376
-
377
- memory:
378
- shortTerm: true # 对话上下文记忆
379
- longTerm: false # 跨会话持久记忆
380
-
381
- rateLimits:
382
- perUser:
383
- maxRequests: 60
384
- windowMs: 60000
385
-
386
- cache:
387
- enabled: true
388
- ttlMs: 3600000
389
-
390
- plugins:
391
- - name: logging
392
- - name: analytics
393
- - name: rate-limit
394
- config: { maxPerMinute: 60 }
395
-
396
- testing:
397
- cases:
398
- - name: 基本问候
399
- input: "你好"
400
- expect:
401
- contains: ["你好"]
402
- maxLatencyMs: 5000
403
- ```
404
-
405
- ## 🔍 与其他 Agent 框架的差异
406
-
407
- OPC Agent 的核心设计哲学是**记忆进化 + 全渠道 + 工位模板 + 生产工具链四件套**。与大多数 Agent 框架关注"如何编排多个 Agent 对话"不同,OPC 更关注的是:一个 Agent 如何在真实生产环境中**持续进化、随处触达、开箱即用**。这决定了我们在架构选择上的一系列差异。
408
-
409
- #### vs Hermes Agent
410
-
411
- **设计思路差异**:Hermes 是 Python 单体框架,围绕 Nous Research 的模型生态构建,强调自学习进化和 RL 训练。OPC 是 TypeScript 模块化四件套(Brain / Agent / Channel / CLI),强调工程化和开箱即用。
412
-
413
- **OPC 的优势**:记忆进化三件套(learn → recall → evolve 自动聚类提炼)、三层 Brain Seed 预置知识体系、25 个内置渠道(vs Hermes 16+)、100+ 工位模板、原生 A2A + AG-UI 协议支持、OpenAI 兼容 API Server。
414
-
415
- **Hermes 的优势**:Python 生态更成熟、GRPO + LoRA 的 RL 训练管线更完善、Nous Research 社区生态更大、Docker 沙箱隔离方案更成熟。
416
-
417
- **适合谁**:如果你需要 Python 生态和 RL 训练能力,选 Hermes;如果你需要 TypeScript 全栈、记忆进化、全渠道触达和生产工具链,选 OPC。
418
-
419
- #### vs OpenClaw
420
-
421
- **设计思路差异**:OpenClaw 是重量级 runtime + 配置驱动,提供完整的 Gateway 运行时环境,适合"安装一次、配置运行"的场景。OPC 是轻量 CLI + 代码优先,四件套可独立使用,适合开发者自由组合。
422
-
423
- **OPC 的优势**:模块化四件套可按需引入、100+ 工位模板、记忆进化系统、25 个内置渠道、`opc init/dev/test/deploy` 全生命周期 CLI、A2A/AG-UI 协议支持。
424
-
425
- **OpenClaw 的优势**:开箱即用的 runtime 体验、Puppeteer 浏览器自动化、成熟的权限和安全沙箱、配置驱动上手门槛低。
426
-
427
- **适合谁**:如果你偏好"配置即运行"的一体化方案,选 OpenClaw;如果你偏好代码优先、模块自由组合、需要记忆进化和工位体系,选 OPC。
428
-
429
- #### vs CrewAI
430
-
431
- **设计思路差异**:CrewAI 采用 Crew 编排模式——定义 Agent 角色、分配 Task、按流程执行。OPC 采用工位(Seat)+ 大脑(Brain)模式——每个 Agent 有独立记忆和工位模板,通过 Brain 实现知识积累和进化。
432
-
433
- **OPC 的优势**:记忆进化(不只是短期/长期记忆,而是自动聚类提炼)、Brain Seed 预置知识、25 个内置渠道(CrewAI 需自行接入)、100+ 工位模板、TypeScript 原生。
434
-
435
- **CrewAI 的优势**:Crew + Flow 编排模式直观易懂、Python 生态、100K+ 用户的成熟社区、Enterprise 版本功能丰富。
436
-
437
- **适合谁**:如果你需要多 Agent 任务编排且偏好 Python,选 CrewAI;如果你需要单 Agent 深度进化、全渠道部署、TypeScript 生态,选 OPC。
438
-
439
- #### vs AutoGen
440
-
441
- **设计思路差异**:AutoGen 是微软主导的对话驱动多 Agent 框架,核心是 Agent 之间的对话协作和 UserProxy 人机交互。OPC 是任务驱动的工位模式,强调单 Agent 的记忆进化和生产部署能力。
442
-
443
- **OPC 的优势**:记忆进化系统、Brain Seed、25 个内置渠道、100+ 工位模板、全生命周期 CLI、YAML 声明式配置。
444
-
445
- **AutoGen 的优势**:微软生态支持、分布式 Agent 能力、AutoGen Studio 可视化、UserProxy 人机交互模式成熟、Python/C# 双语言支持、社区活跃。
446
-
447
- **适合谁**:如果你需要多 Agent 对话协作和微软生态集成,选 AutoGen;如果你需要记忆进化、全渠道触达、工位模板和 TypeScript 工具链,选 OPC。
448
-
449
- #### 功能速查表
450
-
451
- | 功能 | OPC Agent | Hermes Agent | OpenClaw | CrewAI | AutoGen |
452
- |---|:-:|:-:|:-:|:-:|:-:|
453
- | **语言** | TypeScript | Python | TypeScript | Python | Python/C# |
454
- | **记忆进化 (evolve)** | ✅ | 🔶 | ❌ | ❌ | ❌ |
455
- | **Brain Seed 预置知识** | ✅ 三层 | ❌ | ❌ | ❌ | ❌ |
456
- | **内置渠道** | 25 | 16+ | 2 | ❌ | ❌ |
457
- | **工位模板** | 100+ | ❌ | ❌ | ❌ | ❌ |
458
- | **CLI 全生命周期** | ✅ 20+ 命令 | 🔶 | 🔶 | 🔶 | 🔶 |
459
- | **A2A + AG-UI** | ✅ | 🔶 / ❌ | ❌ | ❌ | ❌ |
460
- | **多 Agent 协作** | ✅ | ✅ | 🔶 | ✅ | ✅ |
461
- | **RL 训练** | ✅ 反馈优化 | ✅ GRPO+LoRA | ❌ | ❌ | ❌ |
462
- | **浏览器自动化** | ✅ | ✅ | ✅ | ❌ | ❌ |
463
- | **可视化** | ✅ OPC Studio | ✅ Dashboard | ❌ | 🔶 | ✅ Studio |
464
- | **社区成熟度** | 🚧 早期 | ✅ 活跃 | 🚧 小众 | ✅ 大规模 | ✅ 大规模 |
465
- | **许可证** | Apache-2.0 | MIT | MIT | Apache-2.0 | MIT |
466
-
467
- > 对比基于各项目公开文档(截至 2026 年 4 月)。各框架都在快速迭代,如有偏差欢迎 [Issue 指正](https://github.com/Deepleaper/opc-agent/issues)。
468
-
469
- ---
470
-
471
- ## 🤝 贡献指南
472
-
473
- 欢迎所有形式的贡献!
474
-
475
- ```bash
476
- git clone https://github.com/Deepleaper/opc-agent.git
477
- cd opc-agent
478
- npm install
479
- npm run build # TypeScript 编译
480
- npm test # 运行 146 个测试(22 个测试文件)
481
- ```
482
-
483
- 1. Fork 本仓库
484
- 2. 创建功能分支:`git checkout -b feat/awesome-feature`
485
- 3. 编写代码和测试
486
- 4. 确保测试通过:`npm test`
487
- 5. 提交 Pull Request
488
-
489
- ## 📄 开源协议
490
-
491
- [Apache License 2.0](LICENSE) — 商用和开源项目均可自由使用。
492
-
493
- ---
494
-
495
- <p align="center">
496
- 由 <a href="https://www.deepleaper.com">跃盟科技 (Deepleaper)</a> 用 ❤️ 打造
497
- </p>
1
+ <p align="center">
2
+ <h1 align="center">🤖 OPC Agent</h1>
3
+ <p align="center"><strong>开放智能体框架 — 构建、测试、运行企业级 AI 智能体</strong></p>
4
+ <p align="center">
5
+ <a href="https://www.npmjs.com/package/opc-agent"><img src="https://img.shields.io/npm/v/opc-agent?color=blue" alt="npm 版本"></a>
6
+ <a href="https://github.com/Deepleaper/opc-agent/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green" alt="开源协议"></a>
7
+ <img src="https://img.shields.io/badge/tests-146%20passed-brightgreen" alt="146 个测试通过">
8
+ <a href="https://www.npmjs.com/package/opc-agent"><img src="https://img.shields.io/npm/dm/opc-agent?color=orange" alt="下载量"></a>
9
+ </p>
10
+ <p align="center">
11
+ <a href="./README.md">English</a> · <strong>中文</strong>
12
+ </p>
13
+ </p>
14
+
15
+ ---
16
+
17
+ ## 💡 这是什么?
18
+
19
+ OPC Agent 是一个 **TypeScript 优先的开放智能体框架**,由 [跃盟科技 (Deepleaper)](https://www.deepleaper.com) 开发维护。
20
+
21
+ 一句话概括:**用一个 YAML 文件(OAD)定义智能体,接入任意大语言模型,一键部署到多个渠道。**
22
+
23
+ 不需要写胶水代码,不需要自己管理 Prompt,不需要操心渠道对接。定义好 OAD 文件,`opc run` 就完事了。
24
+
25
+ ## ⚡ 快速开始(30 秒上手)
26
+
27
+ ### 一键安装(推荐)
28
+
29
+ **macOS / Linux:**
30
+ ```bash
31
+ curl -fsSL https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.sh | bash
32
+ ```
33
+
34
+ **Windows (PowerShell):**
35
+ ```powershell
36
+ irm https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.ps1 | iex
37
+ ```
38
+
39
+ > 自动安装 Node.js + OPC Agent + Ollama(可选),全程有引导提示。
40
+
41
+ ### 手动安装
42
+
43
+ ```bash
44
+ # 1. 安装 CLI
45
+ npm install -g opc-agent
46
+
47
+ # 2. 创建项目(交互式,会让你选模板)
48
+ opc init my-agent
49
+
50
+ # 3. 进入项目目录
51
+ cd my-agent
52
+
53
+ # 4. 跑起来
54
+ opc run
55
+ ```
56
+
57
+ 打开浏览器访问 `http://localhost:3000`,内置 Web 对话界面即刻可用。
58
+
59
+ ### 使用模板快速创建
60
+
61
+ ```bash
62
+ opc init my-service --template customer-service
63
+ opc init my-sales --template sales-assistant
64
+ opc init my-kb --template knowledge-base
65
+ opc init my-reviewer --template code-reviewer
66
+ ```
67
+
68
+ ## ✨ 核心特性
69
+
70
+ ### 🔌 多模型供应商 — 不绑定任何一家
71
+
72
+ ```yaml
73
+ spec:
74
+ provider:
75
+ default: deepseek
76
+ allowed: [openai, deepseek, qwen, anthropic, ollama]
77
+ model: deepseek-chat
78
+ ```
79
+
80
+ 支持的供应商:
81
+ - **DeepSeek** — 性价比之王,国产首选
82
+ - **通义千问 (Qwen)** — 阿里出品,中文能力强
83
+ - **OpenAI** — GPT-4o、GPT-4o-mini
84
+ - **Anthropic** — Claude 系列
85
+ - **Ollama** — 本地部署,数据不出门
86
+ - 任何兼容 OpenAI 接口的服务
87
+
88
+ ### 📡 10 个渠道,一套代码,到处运行
89
+
90
+ ```yaml
91
+ spec:
92
+ channels:
93
+ - type: web # 🌐 Web 对话界面(内置 UI)
94
+ port: 3000
95
+ - type: telegram # ✈️ Telegram 机器人
96
+ - type: websocket # 🔗 实时 WebSocket
97
+ - type: slack # 💬 Slack Bot(Socket Mode / Events API)
98
+ - type: email # 📧 IMAP 收信 + SMTP 回信
99
+ - type: wechat # 💚 微信公众号
100
+ - type: feishu # 🔵 飞书 / Lark 消息卡片
101
+ - type: voice # 🎙️ 语音(STT/TTS,可配置供应商)
102
+ - type: webhook # 🔔 Webhook 接收 + HTTP 回调
103
+ - type: discord # 🎮 Discord Bot(斜杠命令 + 线程 + Embed)
104
+ ```
105
+
106
+ ### 🧠 知识库(RAG)— 让智能体拥有你的专业知识
107
+
108
+ ```typescript
109
+ import { KnowledgeBase } from 'opc-agent';
110
+
111
+ const kb = new KnowledgeBase('./docs');
112
+ await kb.addFile('产品手册.pdf');
113
+ await kb.addFile('常见问题.md');
114
+ // 智能体回答时自动检索知识库
115
+ ```
116
+
117
+ 内置 TF-IDF 向量化 + 余弦相似度检索,500 字符分块 + 50 字符重叠,数据持久化到 `.opc-knowledge.json`,无需外部向量数据库。
118
+
119
+ CLI 操作:
120
+
121
+ ```bash
122
+ opc kb add 产品手册.pdf # 添加文件
123
+ opc kb search "退款政策" # 搜索
124
+ opc kb stats # 查看统计
125
+ opc kb clear # 清空
126
+ ```
127
+
128
+ ### 🎭 多智能体编排 — 分工协作,按需路由
129
+
130
+ ```typescript
131
+ import { Orchestrator } from 'opc-agent';
132
+
133
+ const orchestrator = new Orchestrator({
134
+ agents: [分诊智能体, 销售智能体, 客服智能体],
135
+ strategy: 'route-by-intent',
136
+ });
137
+ ```
138
+
139
+ 支持:顺序执行、并行执行、条件路由、智能体移交(handoff)。
140
+
141
+ ### 🧪 内置测试 — 发布前验证智能体行为
142
+
143
+ ```yaml
144
+ spec:
145
+ testing:
146
+ cases:
147
+ - name: 问候测试
148
+ input: "你好"
149
+ expect:
150
+ contains: ["你好", "帮"]
151
+ maxLatencyMs: 5000
152
+
153
+ - name: 产品咨询
154
+ input: "你们的产品怎么收费?"
155
+ expect:
156
+ contains: ["价格", "套餐"]
157
+ notContains: ["error"]
158
+ ```
159
+
160
+ ```bash
161
+ opc test # 运行测试
162
+ opc test --watch # 监听模式,改了代码自动测
163
+ opc test --json # JSON 格式输出
164
+ ```
165
+
166
+ ### 🔧 插件系统 — 按需扩展
167
+
168
+ ```yaml
169
+ spec:
170
+ plugins:
171
+ - name: logging # 日志记录
172
+ - name: analytics # 使用分析
173
+ - name: rate-limit # 限流保护
174
+ config: { maxPerMinute: 60 }
175
+ ```
176
+
177
+ 完整生命周期钩子:`onInit`、`onMessage`、`onResponse`、`onError`、`onShutdown`。
178
+
179
+ ### 🔒 安全特性
180
+
181
+ - 输入消毒(防 XSS、注入攻击)
182
+ - API Key 轮换管理
183
+ - CORS 跨域配置
184
+ - 安全响应头
185
+ - 会话隔离认证中间件
186
+
187
+ ### 📊 监控与分析
188
+
189
+ Web 渠道内置以下端点:
190
+
191
+ | 端点 | 说明 |
192
+ |------|------|
193
+ | `GET /api/health` | 健康检查 |
194
+ | `GET /api/metrics` | Prometheus 文本格式指标 |
195
+ | `GET /api/dashboard` | 实时仪表盘 UI |
196
+
197
+ Prometheus 暴露的指标:`opc_uptime_seconds`、`opc_requests_total`、`opc_messages_total`、`opc_errors_total`、`opc_llm_latency_avg_ms`、`opc_sessions_total`、`opc_token_usage_total`、`process_resident_memory_bytes`。
198
+
199
+ `opc analytics` 和 `opc stats` 命令可查看离线分析快照(历史事件存储在 `data/analytics.json`)。
200
+
201
+ ## 🏗️ 架构设计
202
+
203
+ ```
204
+ ┌─────────────────────────────────────────────────┐
205
+ │ OAD (YAML 定义文件) │
206
+ │ 智能体的一切配置都在这里 │
207
+ ├─────────────────────────────────────────────────┤
208
+ │ │
209
+ │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
210
+ │ │ 渠道层 │ │ 插件层 │ │ 安全层 │ │
211
+ │ │10 个渠道 │ │ 日志/分析│ │ 消毒/CORS/认证│ │
212
+ │ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
213
+ │ │ │ │ │
214
+ │ ┌────▼──────────────▼───────────────▼────────┐ │
215
+ │ │ 智能体运行时 (Agent Runtime) │ │
216
+ │ │ │ │
217
+ │ │ ┌─────────┐ ┌────────┐ ┌─────────────┐ │ │
218
+ │ │ │ 记忆 │ │ 技能 │ │ 知识库 │ │ │
219
+ │ │ │ 短期+ │ │ HTTP, │ │ TF-IDF RAG │ │ │
220
+ │ │ │ 长期 │ │ 调度 │ │ │ │ │
221
+ │ │ └─────────┘ └────────┘ └─────────────┘ │ │
222
+ │ └────────────────────┬───────────────────────┘ │
223
+ │ │ │
224
+ │ ┌────────────────────▼───────────────────────┐ │
225
+ │ │ 大语言模型供应商 │ │
226
+ │ │ DeepSeek · 通义千问 · OpenAI · Ollama │ │
227
+ │ └─────────────────────────────────────────────┘│
228
+ └─────────────────────────────────────────────────┘
229
+ ```
230
+
231
+ ## 📋 12 个开箱即用模板
232
+
233
+ ```bash
234
+ opc init my-agent --template <模板名>
235
+ ```
236
+
237
+ | 模板 | 说明 | 典型场景 |
238
+ |------|------|---------|
239
+ | `customer-service` | 客服智能体 | FAQ 自动回答 + 转人工 |
240
+ | `sales-assistant` | 销售助手 | 产品问答 + 线索捕获 + 预约 |
241
+ | `knowledge-base` | 知识库问答 | 基于文档的 RAG 语义检索 |
242
+ | `code-reviewer` | 代码审查 | Bug 检测 + 代码风格检查 |
243
+ | `hr-recruiter` | HR 招聘助手 | 简历筛选 + 面试安排 |
244
+ | `project-manager` | 项目管理 | 任务跟踪 + 会议纪要 |
245
+ | `content-writer` | 内容创作 | 博客写作 + 社媒运营 + SEO |
246
+ | `legal-assistant` | 法务助手 | 合同审查 + 合规检查 |
247
+ | `financial-advisor` | 财务顾问 | 预算管理 + 支出分析 |
248
+ | `executive-assistant` | 行政助理 | 日程管理 + 邮件处理 |
249
+ | `data-analyst` | 数据分析师 | SQL 查询 + 数据可视化 |
250
+ | `teacher` | 教学助手 | 课程设计 + 出题 + 互动 |
251
+
252
+ ## 🚀 部署指南
253
+
254
+ ### 本地开发
255
+
256
+ ```bash
257
+ opc dev # 文件监听热重载
258
+ ```
259
+
260
+ ### Docker 部署
261
+
262
+ `opc init` 创建的每个项目都自带 `Dockerfile` 和 `docker-compose.yml`:
263
+
264
+ ```bash
265
+ docker compose up -d
266
+ ```
267
+
268
+ `Dockerfile` 使用 `node:22-alpine`,仅安装生产依赖,暴露端口 3000,以 `npx opc run` 启动。
269
+
270
+ ### 部署到 OpenClaw
271
+
272
+ ```bash
273
+ opc deploy --target openclaw
274
+ opc deploy --target openclaw --install # 同时写入本地配置
275
+ ```
276
+
277
+ 在 `~/.openclaw/agents/{id}/workspace/` 下生成:`IDENTITY.md`(元数据)、`SOUL.md`(系统提示词 + 模型配置)、`AGENTS.md`(技能 + 记忆 + DTV 配置)。
278
+
279
+ ### 部署到 Hermes
280
+
281
+ ```bash
282
+ opc deploy --target hermes
283
+ ```
284
+
285
+ 将 OAD 转换为 Hermes Character 格式,包含 personality、bio、lore、message examples、style guides(chat / post / all)。
286
+
287
+ ### 环境变量
288
+
289
+ ```bash
290
+ # .env
291
+ OPC_LLM_API_KEY=your-api-key
292
+ OPC_LLM_BASE_URL=https://api.deepseek.com/v1
293
+ OPC_LLM_MODEL=deepseek-chat
294
+ ```
295
+
296
+ ## 📖 CLI 命令参考
297
+
298
+ | 命令 | 说明 |
299
+ |------|------|
300
+ | `opc init [name]` | 创建新智能体项目(交互式,可选模板) |
301
+ | `opc create <name>` | 从模板快速创建 |
302
+ | `opc run` | 启动智能体服务 |
303
+ | `opc dev` | 开发模式(文件监听热重载) |
304
+ | `opc chat` | 命令行交互对话(readline 界面) |
305
+ | `opc test` | 运行 OAD 中定义的测试用例 |
306
+ | `opc build` | 校验 OAD 配置合法性 |
307
+ | `opc info` | 查看智能体信息 |
308
+ | `opc analytics` | 查看使用分析 |
309
+ | `opc stats` | 查看运行时统计快照 |
310
+ | `opc deploy` | 部署智能体(`--target openclaw\|hermes`) |
311
+ | `opc kb add <file>` | 向知识库添加文件 |
312
+ | `opc kb search <query>` | 搜索知识库 |
313
+ | `opc kb stats` | 知识库统计 |
314
+ | `opc kb clear` | 清空知识库 |
315
+ | `opc search` | 搜索 OPC Registry |
316
+ | `opc tool` | MCP 工具管理 |
317
+ | `opc workflow run` | 运行工作流 |
318
+ | `opc workflow list` | 列出工作流 |
319
+ | `opc version-mgmt list` | 列出历史版本 |
320
+ | `opc version-mgmt rollback` | 回滚版本 |
321
+ | `opc publish` | 打包发布智能体 |
322
+ | `opc install <pkg>` | 安装智能体包 |
323
+ | `opc plugin list` | 列出已安装插件 |
324
+ | `opc plugin add <name>` | 添加插件 |
325
+ | `opc migrate` | OAD Schema 迁移 |
326
+
327
+ ## 🔗 SDK 参考
328
+
329
+ ```typescript
330
+ import { AgentRuntime, KnowledgeBase, Orchestrator } from 'opc-agent';
331
+
332
+ // 创建并启动智能体
333
+ const runtime = new AgentRuntime();
334
+ await runtime.loadConfig('oad.yaml');
335
+ await runtime.initialize();
336
+ await runtime.start();
337
+
338
+ // 使用知识库
339
+ const kb = new KnowledgeBase('./docs');
340
+ await kb.addFile('handbook.pdf');
341
+ const results = await kb.search('退款政策');
342
+
343
+ // 多智能体编排
344
+ const orch = new Orchestrator({
345
+ agents: [agentA, agentB],
346
+ strategy: 'route-by-intent',
347
+ });
348
+ ```
349
+
350
+ ## 🔑 OAD 配置文件完整说明
351
+
352
+ OAD(Open Agent Definition)是智能体的声明式定义格式:
353
+
354
+ ```yaml
355
+ apiVersion: opc/v1
356
+ kind: Agent
357
+
358
+ metadata:
359
+ name: my-agent
360
+ version: 1.0.0
361
+ description: 我的智能体
362
+
363
+ spec:
364
+ provider:
365
+ default: deepseek
366
+ allowed: [deepseek, openai, qwen, anthropic, ollama]
367
+ model: deepseek-chat
368
+ systemPrompt: |
369
+ 你是一个专业的客服助手...
370
+
371
+ skills: []
372
+
373
+ channels:
374
+ - type: web
375
+ port: 3000
376
+
377
+ memory:
378
+ shortTerm: true # 对话上下文记忆
379
+ longTerm: false # 跨会话持久记忆
380
+
381
+ rateLimits:
382
+ perUser:
383
+ maxRequests: 60
384
+ windowMs: 60000
385
+
386
+ cache:
387
+ enabled: true
388
+ ttlMs: 3600000
389
+
390
+ plugins:
391
+ - name: logging
392
+ - name: analytics
393
+ - name: rate-limit
394
+ config: { maxPerMinute: 60 }
395
+
396
+ testing:
397
+ cases:
398
+ - name: 基本问候
399
+ input: "你好"
400
+ expect:
401
+ contains: ["你好"]
402
+ maxLatencyMs: 5000
403
+ ```
404
+
405
+ ## 🔍 与其他 Agent 框架的差异
406
+
407
+ OPC Agent 的核心设计哲学是**记忆进化 + 全渠道 + 工位模板 + 生产工具链四件套**。与大多数 Agent 框架关注"如何编排多个 Agent 对话"不同,OPC 更关注的是:一个 Agent 如何在真实生产环境中**持续进化、随处触达、开箱即用**。这决定了我们在架构选择上的一系列差异。
408
+
409
+ #### vs Hermes Agent
410
+
411
+ **设计思路差异**:Hermes 是 Python 单体框架,围绕 Nous Research 的模型生态构建,强调自学习进化和 RL 训练。OPC 是 TypeScript 模块化四件套(Brain / Agent / Channel / CLI),强调工程化和开箱即用。
412
+
413
+ **OPC 的优势**:记忆进化三件套(learn → recall → evolve 自动聚类提炼)、三层 Brain Seed 预置知识体系、25 个内置渠道(vs Hermes 16+)、100+ 工位模板、原生 A2A + AG-UI 协议支持、OpenAI 兼容 API Server。
414
+
415
+ **Hermes 的优势**:Python 生态更成熟、GRPO + LoRA 的 RL 训练管线更完善、Nous Research 社区生态更大、Docker 沙箱隔离方案更成熟。
416
+
417
+ **适合谁**:如果你需要 Python 生态和 RL 训练能力,选 Hermes;如果你需要 TypeScript 全栈、记忆进化、全渠道触达和生产工具链,选 OPC。
418
+
419
+ #### vs OpenClaw
420
+
421
+ **设计思路差异**:OpenClaw 是重量级 runtime + 配置驱动,提供完整的 Gateway 运行时环境,适合"安装一次、配置运行"的场景。OPC 是轻量 CLI + 代码优先,四件套可独立使用,适合开发者自由组合。
422
+
423
+ **OPC 的优势**:模块化四件套可按需引入、100+ 工位模板、记忆进化系统、25 个内置渠道、`opc init/dev/test/deploy` 全生命周期 CLI、A2A/AG-UI 协议支持。
424
+
425
+ **OpenClaw 的优势**:开箱即用的 runtime 体验、Puppeteer 浏览器自动化、成熟的权限和安全沙箱、配置驱动上手门槛低。
426
+
427
+ **适合谁**:如果你偏好"配置即运行"的一体化方案,选 OpenClaw;如果你偏好代码优先、模块自由组合、需要记忆进化和工位体系,选 OPC。
428
+
429
+ #### vs CrewAI
430
+
431
+ **设计思路差异**:CrewAI 采用 Crew 编排模式——定义 Agent 角色、分配 Task、按流程执行。OPC 采用工位(Seat)+ 大脑(Brain)模式——每个 Agent 有独立记忆和工位模板,通过 Brain 实现知识积累和进化。
432
+
433
+ **OPC 的优势**:记忆进化(不只是短期/长期记忆,而是自动聚类提炼)、Brain Seed 预置知识、25 个内置渠道(CrewAI 需自行接入)、100+ 工位模板、TypeScript 原生。
434
+
435
+ **CrewAI 的优势**:Crew + Flow 编排模式直观易懂、Python 生态、100K+ 用户的成熟社区、Enterprise 版本功能丰富。
436
+
437
+ **适合谁**:如果你需要多 Agent 任务编排且偏好 Python,选 CrewAI;如果你需要单 Agent 深度进化、全渠道部署、TypeScript 生态,选 OPC。
438
+
439
+ #### vs AutoGen
440
+
441
+ **设计思路差异**:AutoGen 是微软主导的对话驱动多 Agent 框架,核心是 Agent 之间的对话协作和 UserProxy 人机交互。OPC 是任务驱动的工位模式,强调单 Agent 的记忆进化和生产部署能力。
442
+
443
+ **OPC 的优势**:记忆进化系统、Brain Seed、25 个内置渠道、100+ 工位模板、全生命周期 CLI、YAML 声明式配置。
444
+
445
+ **AutoGen 的优势**:微软生态支持、分布式 Agent 能力、AutoGen Studio 可视化、UserProxy 人机交互模式成熟、Python/C# 双语言支持、社区活跃。
446
+
447
+ **适合谁**:如果你需要多 Agent 对话协作和微软生态集成,选 AutoGen;如果你需要记忆进化、全渠道触达、工位模板和 TypeScript 工具链,选 OPC。
448
+
449
+ #### 功能速查表
450
+
451
+ | 功能 | OPC Agent | Hermes Agent | OpenClaw | CrewAI | AutoGen |
452
+ |---|:-:|:-:|:-:|:-:|:-:|
453
+ | **语言** | TypeScript | Python | TypeScript | Python | Python/C# |
454
+ | **记忆进化 (evolve)** | ✅ | 🔶 | ❌ | ❌ | ❌ |
455
+ | **Brain Seed 预置知识** | ✅ 三层 | ❌ | ❌ | ❌ | ❌ |
456
+ | **内置渠道** | 25 | 16+ | 2 | ❌ | ❌ |
457
+ | **工位模板** | 100+ | ❌ | ❌ | ❌ | ❌ |
458
+ | **CLI 全生命周期** | ✅ 20+ 命令 | 🔶 | 🔶 | 🔶 | 🔶 |
459
+ | **A2A + AG-UI** | ✅ | 🔶 / ❌ | ❌ | ❌ | ❌ |
460
+ | **多 Agent 协作** | ✅ | ✅ | 🔶 | ✅ | ✅ |
461
+ | **RL 训练** | ✅ 反馈优化 | ✅ GRPO+LoRA | ❌ | ❌ | ❌ |
462
+ | **浏览器自动化** | ✅ | ✅ | ✅ | ❌ | ❌ |
463
+ | **可视化** | ✅ OPC Studio | ✅ Dashboard | ❌ | 🔶 | ✅ Studio |
464
+ | **社区成熟度** | 🚧 早期 | ✅ 活跃 | 🚧 小众 | ✅ 大规模 | ✅ 大规模 |
465
+ | **许可证** | Apache-2.0 | MIT | MIT | Apache-2.0 | MIT |
466
+
467
+ > 对比基于各项目公开文档(截至 2026 年 4 月)。各框架都在快速迭代,如有偏差欢迎 [Issue 指正](https://github.com/Deepleaper/opc-agent/issues)。
468
+
469
+ ---
470
+
471
+ ## 🤝 贡献指南
472
+
473
+ 欢迎所有形式的贡献!
474
+
475
+ ```bash
476
+ git clone https://github.com/Deepleaper/opc-agent.git
477
+ cd opc-agent
478
+ npm install
479
+ npm run build # TypeScript 编译
480
+ npm test # 运行 146 个测试(22 个测试文件)
481
+ ```
482
+
483
+ 1. Fork 本仓库
484
+ 2. 创建功能分支:`git checkout -b feat/awesome-feature`
485
+ 3. 编写代码和测试
486
+ 4. 确保测试通过:`npm test`
487
+ 5. 提交 Pull Request
488
+
489
+ ## 📄 开源协议
490
+
491
+ [Apache License 2.0](LICENSE) — 商用和开源项目均可自由使用。
492
+
493
+ ---
494
+
495
+ <p align="center">
496
+ 由 <a href="https://www.deepleaper.com">跃盟科技 (Deepleaper)</a> 用 ❤️ 打造
497
+ </p>