opc-agent 1.3.2 โ†’ 2.0.0

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 (226) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +20 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  4. package/.github/workflows/ci.yml +24 -0
  5. package/CHANGELOG.md +48 -63
  6. package/CONTRIBUTING.md +21 -60
  7. package/README.md +284 -348
  8. package/README.zh-CN.md +415 -415
  9. package/dist/channels/slack.js +93 -10
  10. package/dist/channels/telegram.d.ts +30 -9
  11. package/dist/channels/telegram.js +125 -33
  12. package/dist/channels/web.d.ts +10 -0
  13. package/dist/channels/web.js +33 -2
  14. package/dist/cli.js +667 -65
  15. package/dist/core/agent.d.ts +23 -0
  16. package/dist/core/agent.js +120 -3
  17. package/dist/core/runtime.d.ts +5 -0
  18. package/dist/core/runtime.js +71 -0
  19. package/dist/core/scheduler.d.ts +52 -0
  20. package/dist/core/scheduler.js +168 -0
  21. package/dist/core/subagent.d.ts +28 -0
  22. package/dist/core/subagent.js +65 -0
  23. package/dist/daemon.d.ts +3 -0
  24. package/dist/daemon.js +134 -0
  25. package/dist/deploy/hermes.js +22 -22
  26. package/dist/deploy/openclaw.js +31 -40
  27. package/dist/index.d.ts +10 -10
  28. package/dist/index.js +22 -15
  29. package/dist/providers/index.d.ts +6 -2
  30. package/dist/providers/index.js +22 -9
  31. package/dist/schema/oad.d.ts +180 -6
  32. package/dist/schema/oad.js +12 -1
  33. package/dist/skills/auto-learn.d.ts +28 -0
  34. package/dist/skills/auto-learn.js +257 -0
  35. package/dist/templates/code-reviewer.d.ts +0 -8
  36. package/dist/templates/code-reviewer.js +5 -9
  37. package/dist/templates/customer-service.d.ts +0 -8
  38. package/dist/templates/customer-service.js +2 -6
  39. package/dist/templates/data-analyst.d.ts +0 -8
  40. package/dist/templates/data-analyst.js +5 -9
  41. package/dist/templates/knowledge-base.d.ts +0 -8
  42. package/dist/templates/knowledge-base.js +2 -6
  43. package/dist/templates/sales-assistant.d.ts +0 -8
  44. package/dist/templates/sales-assistant.js +4 -8
  45. package/dist/templates/teacher.d.ts +0 -8
  46. package/dist/templates/teacher.js +6 -10
  47. package/dist/tools/builtin/datetime.d.ts +3 -0
  48. package/dist/tools/builtin/datetime.js +44 -0
  49. package/dist/tools/builtin/file.d.ts +3 -0
  50. package/dist/tools/builtin/file.js +151 -0
  51. package/dist/tools/builtin/index.d.ts +15 -0
  52. package/dist/tools/builtin/index.js +30 -0
  53. package/dist/tools/builtin/shell.d.ts +3 -0
  54. package/dist/tools/builtin/shell.js +43 -0
  55. package/dist/tools/builtin/web.d.ts +3 -0
  56. package/dist/tools/builtin/web.js +37 -0
  57. package/dist/tools/mcp-client.d.ts +24 -0
  58. package/dist/tools/mcp-client.js +119 -0
  59. package/dist/traces/index.d.ts +49 -0
  60. package/dist/traces/index.js +102 -0
  61. package/docs/.vitepress/config.ts +103 -103
  62. package/docs/api/cli.md +48 -48
  63. package/docs/api/oad-schema.md +64 -64
  64. package/docs/api/sdk.md +80 -80
  65. package/docs/guide/concepts.md +51 -51
  66. package/docs/guide/configuration.md +79 -79
  67. package/docs/guide/deployment.md +42 -42
  68. package/docs/guide/getting-started.md +44 -44
  69. package/docs/guide/templates.md +28 -28
  70. package/docs/guide/testing.md +84 -84
  71. package/docs/index.md +27 -27
  72. package/docs/zh/api/cli.md +54 -54
  73. package/docs/zh/api/oad-schema.md +87 -87
  74. package/docs/zh/api/sdk.md +102 -102
  75. package/docs/zh/guide/concepts.md +104 -104
  76. package/docs/zh/guide/configuration.md +135 -135
  77. package/docs/zh/guide/deployment.md +81 -81
  78. package/docs/zh/guide/getting-started.md +82 -82
  79. package/docs/zh/guide/templates.md +84 -84
  80. package/docs/zh/guide/testing.md +88 -88
  81. package/docs/zh/index.md +27 -27
  82. package/examples/README.md +22 -0
  83. package/examples/basic-agent.ts +90 -0
  84. package/examples/brain-integration.ts +71 -0
  85. package/examples/customer-service-demo/README.md +90 -90
  86. package/examples/customer-service-demo/oad.yaml +107 -107
  87. package/examples/multi-channel.ts +74 -0
  88. package/package.json +1 -1
  89. package/src/analytics/index.ts +66 -66
  90. package/src/channels/discord.ts +192 -192
  91. package/src/channels/email.ts +177 -177
  92. package/src/channels/feishu.ts +236 -236
  93. package/src/channels/index.ts +15 -15
  94. package/src/channels/slack.ts +217 -160
  95. package/src/channels/telegram.ts +155 -33
  96. package/src/channels/voice.ts +106 -106
  97. package/src/channels/web.ts +38 -2
  98. package/src/channels/webhook.ts +199 -199
  99. package/src/channels/websocket.ts +87 -87
  100. package/src/channels/wechat.ts +149 -149
  101. package/src/cli.ts +697 -63
  102. package/src/core/a2a.ts +143 -143
  103. package/src/core/agent.ts +146 -3
  104. package/src/core/analytics-engine.ts +186 -186
  105. package/src/core/auth.ts +57 -57
  106. package/src/core/cache.ts +141 -141
  107. package/src/core/compose.ts +77 -77
  108. package/src/core/config.ts +14 -14
  109. package/src/core/errors.ts +148 -148
  110. package/src/core/hitl.ts +138 -138
  111. package/src/core/logger.ts +57 -57
  112. package/src/core/orchestrator.ts +215 -215
  113. package/src/core/performance.ts +187 -187
  114. package/src/core/rate-limiter.ts +128 -128
  115. package/src/core/room.ts +109 -109
  116. package/src/core/runtime.ts +230 -152
  117. package/src/core/sandbox.ts +101 -101
  118. package/src/core/scheduler.ts +187 -0
  119. package/src/core/security.ts +171 -171
  120. package/src/core/subagent.ts +98 -0
  121. package/src/core/types.ts +68 -68
  122. package/src/core/versioning.ts +106 -106
  123. package/src/core/watch.ts +178 -178
  124. package/src/core/workflow.ts +235 -235
  125. package/src/daemon.ts +96 -0
  126. package/src/deploy/hermes.ts +156 -156
  127. package/src/deploy/openclaw.ts +190 -200
  128. package/src/i18n/index.ts +216 -216
  129. package/src/index.ts +14 -10
  130. package/src/memory/deepbrain.ts +108 -108
  131. package/src/memory/index.ts +34 -34
  132. package/src/plugins/index.ts +208 -208
  133. package/src/providers/index.ts +354 -331
  134. package/src/schema/oad.ts +14 -2
  135. package/src/skills/auto-learn.ts +262 -0
  136. package/src/skills/base.ts +16 -16
  137. package/src/skills/document.ts +100 -100
  138. package/src/skills/http.ts +35 -35
  139. package/src/skills/index.ts +27 -27
  140. package/src/skills/scheduler.ts +80 -80
  141. package/src/skills/webhook-trigger.ts +59 -59
  142. package/src/templates/code-reviewer.ts +30 -34
  143. package/src/templates/customer-service.ts +76 -80
  144. package/src/templates/data-analyst.ts +66 -70
  145. package/src/templates/executive-assistant.ts +71 -71
  146. package/src/templates/financial-advisor.ts +60 -60
  147. package/src/templates/knowledge-base.ts +27 -31
  148. package/src/templates/legal-assistant.ts +71 -71
  149. package/src/templates/sales-assistant.ts +75 -79
  150. package/src/templates/teacher.ts +75 -79
  151. package/src/testing/index.ts +181 -181
  152. package/src/tools/builtin/datetime.ts +41 -0
  153. package/src/tools/builtin/file.ts +107 -0
  154. package/src/tools/builtin/index.ts +28 -0
  155. package/src/tools/builtin/shell.ts +43 -0
  156. package/src/tools/builtin/web.ts +35 -0
  157. package/src/tools/calculator.ts +73 -73
  158. package/src/tools/datetime.ts +149 -149
  159. package/src/tools/json-transform.ts +187 -187
  160. package/src/tools/mcp-client.ts +131 -0
  161. package/src/tools/mcp.ts +76 -76
  162. package/src/tools/text-analysis.ts +116 -116
  163. package/src/traces/index.ts +132 -0
  164. package/templates/Dockerfile +15 -15
  165. package/templates/code-reviewer/README.md +27 -27
  166. package/templates/code-reviewer/oad.yaml +41 -41
  167. package/templates/customer-service/README.md +22 -22
  168. package/templates/customer-service/oad.yaml +36 -36
  169. package/templates/docker-compose.yml +21 -21
  170. package/templates/ecommerce-assistant/README.md +45 -45
  171. package/templates/ecommerce-assistant/oad.yaml +47 -47
  172. package/templates/knowledge-base/README.md +28 -28
  173. package/templates/knowledge-base/oad.yaml +38 -38
  174. package/templates/sales-assistant/README.md +26 -26
  175. package/templates/sales-assistant/oad.yaml +43 -43
  176. package/templates/tech-support/README.md +43 -43
  177. package/templates/tech-support/oad.yaml +45 -45
  178. package/test-agent/Dockerfile +9 -0
  179. package/test-agent/README.md +50 -0
  180. package/test-agent/agent.yaml +23 -0
  181. package/test-agent/docker-compose.yml +11 -0
  182. package/test-agent/oad.yaml +31 -0
  183. package/test-agent/package-lock.json +1492 -0
  184. package/test-agent/package.json +18 -0
  185. package/test-agent/src/index.ts +24 -0
  186. package/test-agent/src/skills/echo.ts +15 -0
  187. package/test-agent/tsconfig.json +25 -0
  188. package/tests/a2a.test.ts +66 -66
  189. package/tests/agent.test.ts +72 -72
  190. package/tests/analytics.test.ts +50 -50
  191. package/tests/auto-learn.test.ts +105 -0
  192. package/tests/builtin-tools.test.ts +83 -0
  193. package/tests/channel.test.ts +39 -39
  194. package/tests/cli.test.ts +46 -0
  195. package/tests/e2e.test.ts +134 -134
  196. package/tests/errors.test.ts +83 -83
  197. package/tests/hitl.test.ts +71 -71
  198. package/tests/i18n.test.ts +41 -41
  199. package/tests/mcp.test.ts +54 -54
  200. package/tests/oad.test.ts +68 -68
  201. package/tests/performance.test.ts +115 -115
  202. package/tests/plugin.test.ts +74 -74
  203. package/tests/room.test.ts +106 -106
  204. package/tests/runtime.test.ts +42 -42
  205. package/tests/sandbox.test.ts +46 -46
  206. package/tests/security.test.ts +60 -60
  207. package/tests/subagent.test.ts +130 -0
  208. package/tests/telegram-discord.test.ts +60 -0
  209. package/tests/templates.test.ts +77 -77
  210. package/tests/v070.test.ts +76 -76
  211. package/tests/versioning.test.ts +75 -75
  212. package/tests/voice.test.ts +61 -61
  213. package/tests/webhook.test.ts +29 -29
  214. package/tests/workflow.test.ts +143 -143
  215. package/tsconfig.json +19 -19
  216. package/vitest.config.ts +9 -9
  217. package/dist/core/dashboard.d.ts +0 -35
  218. package/dist/core/dashboard.js +0 -157
  219. package/dist/core/priority.d.ts +0 -52
  220. package/dist/core/priority.js +0 -102
  221. package/src/core/dashboard.ts +0 -219
  222. package/src/core/priority.ts +0 -140
  223. package/src/dtv/data.ts +0 -29
  224. package/src/dtv/trust.ts +0 -43
  225. package/src/dtv/value.ts +0 -47
  226. package/src/marketplace/index.ts +0 -223
package/README.md CHANGED
@@ -1,429 +1,365 @@
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="license"></a>
7
- <img src="https://img.shields.io/badge/tests-146%20passed-brightgreen" alt="146 tests passing">
8
- <a href="https://www.npmjs.com/package/opc-agent"><img src="https://img.shields.io/npm/dm/opc-agent?color=orange" alt="downloads"></a>
9
- </p>
10
- <p align="center">
11
- <strong>๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡</strong> ยท <a href="#english">๐Ÿ‡บ๐Ÿ‡ธ English</a>
12
- </p>
13
- </p>
1
+ <div align="center">
14
2
 
15
- ---
16
-
17
- OPC Agent ๆ˜ฏไธ€ไธช **TypeScript ไผ˜ๅ…ˆ็š„ๅผ€ๆ”พๆ™บ่ƒฝไฝ“ๆก†ๆžถ**๏ผŒ็”ฑ [่ทƒ็›Ÿ็ง‘ๆŠ€ (Deepleaper)](https://www.deepleaper.com) ๅผ€ๅ‘ใ€‚็”จไธ€ไธช YAML ๆ–‡ไปถ๏ผˆOAD๏ผ‰ๅฎšไน‰ๆ™บ่ƒฝไฝ“๏ผŒๆŽฅๅ…ฅไปปๆ„ๅคง่ฏญ่จ€ๆจกๅž‹๏ผŒไธ€้”ฎ้ƒจ็ฝฒๅˆฐๅคšไธชๆธ ้“ใ€‚
18
-
19
- ## โšก ๅฟซ้€Ÿๅผ€ๅง‹๏ผˆ30 ็ง’๏ผ‰
20
-
21
- ```bash
22
- npm install -g opc-agent
23
- opc init my-agent
24
- cd my-agent
25
- opc run
26
- ```
3
+ # ๐Ÿค– OPC Agent
27
4
 
28
- ่ฎฟ้—ฎ `http://localhost:3000`๏ผŒๅ†…็ฝฎ Web ๅฏน่ฏ็•Œ้ขๅณๅˆปๅฏ็”จใ€‚
5
+ **Agent OS โ€” AI Agent ๅ…จ็”Ÿๅ‘ฝๅ‘จๆœŸๆ“ไฝœ็ณป็ปŸ**
29
6
 
30
- ## โœจ ๅŠŸ่ƒฝ็‰นๆ€ง
7
+ [![npm](https://img.shields.io/npm/v/opc-agent)](https://www.npmjs.com/package/opc-agent)
8
+ [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
9
+ [![Tests](https://img.shields.io/badge/Tests-204_passing-green)]()
10
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://www.typescriptlang.org/)
11
+ [![Version](https://img.shields.io/badge/version-2.0.0-brightgreen)]()
31
12
 
32
- ### ๐Ÿ”Œ ๅคšๆจกๅž‹ไพ›ๅบ”ๅ•†
13
+ [ๅฟซ้€Ÿๅผ€ๅง‹](#ๅฟซ้€Ÿๅผ€ๅง‹) ยท [CLI ๅ‘ฝไปค](#cli-ๅ‘ฝไปค) ยท [ๆธ ้“](#11-ไธชๆธ ้“) ยท [English](#english)
33
14
 
34
- ```yaml
35
- spec:
36
- provider:
37
- default: deepseek
38
- allowed: [openai, deepseek, qwen, anthropic, ollama]
39
- model: deepseek-chat
40
- ```
15
+ </div>
41
16
 
42
- ๆ”ฏๆŒ **DeepSeek**ใ€**้€šไน‰ๅƒ้—ฎ (Qwen)**ใ€**OpenAI**ใ€**Anthropic**ใ€**Ollama**๏ผˆๆœฌๅœฐ๏ผ‰๏ผŒไปฅๅŠไปปไฝ•ๅ…ผๅฎน OpenAI ๆŽฅๅฃ็š„ๆœๅŠกใ€‚
17
+ ---
43
18
 
44
- ### ๐Ÿ“ก 11 ไธชๆธ ้“๏ผŒไธ€ๅฅ—ไปฃ็ 
19
+ ## ๐Ÿ’ก ไธ€ๅฅ่ฏไป‹็ป
45
20
 
46
- ```yaml
47
- spec:
48
- channels:
49
- - type: web # Web ๅฏน่ฏ็•Œ้ข๏ผˆๅ†…็ฝฎ UI๏ผ‰
50
- port: 3000
51
- - type: telegram # Telegram ๆœบๅ™จไบบ
52
- - type: websocket # ๅฎžๆ—ถ WebSocket
53
- - type: slack # Slack Bot๏ผˆSocket Mode / Events API๏ผ‰
54
- - type: email # IMAP ๆ”ถไฟก + SMTP ๅ›žไฟก
55
- - type: wechat # ๅพฎไฟกๅ…ฌไผ—ๅท
56
- - type: feishu # ้ฃžไนฆ / Lark ๆถˆๆฏๅก็‰‡
57
- - type: voice # ่ฏญ้Ÿณ๏ผˆSTT/TTS๏ผŒๅฏ้…็ฝฎไพ›ๅบ”ๅ•†๏ผ‰
58
- - type: webhook # Webhook ๆŽฅๆ”ถ + HTTP ๅ›ž่ฐƒ
59
- - type: discord # Discord Bot๏ผˆๆ–œๆ ๅ‘ฝไปค + ็บฟ็จ‹ + Embed๏ผ‰
60
- ```
21
+ > **ไธๅชๆ˜ฏ Harness๏ผŒๆ˜ฏๆฏ” Harness ้ซ˜ไธ€็ปด็š„ Agent OSใ€‚**
22
+ > ไปŽๅˆ›ๅปบๅˆฐ่ฟ่กŒๅˆฐ็›‘ๆŽง๏ผŒไธ€ไธชๅทฅๅ…ทๆžๅฎš Agent ๅ…จ็”Ÿๅ‘ฝๅ‘จๆœŸใ€‚
61
23
 
62
- ### ๐Ÿง  ็Ÿฅ่ฏ†ๅบ“๏ผˆRAG๏ผ‰
24
+ ## ๐ŸŽฏ ๅ’Œ็ซžๅ“็š„ๅŒบๅˆซ
63
25
 
64
- ```typescript
65
- import { KnowledgeBase } from 'opc-agent';
26
+ | | LangChain | CrewAI | AutoGen | Hermes Agent | **OPC Agent** |
27
+ |---|---|---|---|---|---|
28
+ | ๅˆ›ๅปบ | ๅ†™ไปฃ็  | ๅ†™ไปฃ็  | ๅ†™ไปฃ็  | CLI | **`opc init` ไธ€้”ฎ** |
29
+ | ้…็ฝฎ | Python/ไปฃ็  | Python | Python | YAML | **YAML ๅฃฐๆ˜Žๅผ** |
30
+ | ๆต‹่ฏ• | ่‡ชๅทฑๆญ | ๆ—  | ๆ—  | ๅŸบ็ก€ | **ๅ†…็ฝฎๆต‹่ฏ•ๆก†ๆžถ** |
31
+ | ๆธ ้“ | ่‡ชๅทฑๆŽฅ | ๆ—  | ๆ—  | ๆœ‰้™ | **11 ๆธ ้“ๅผ€็ฎฑๅณ็”จ** |
32
+ | ็›‘ๆŽง | ่‡ชๅทฑๆญ | ๆ—  | ๆ—  | ๅŸบ็ก€ | **Traces + Score** |
33
+ | ่ฎฐๅฟ† | ่‡ชๅทฑ็ฎก | ็ฎ€ๅ• | ็ฎ€ๅ• | ๆ—  | **DeepBrain ้›†ๆˆ** |
34
+ | ๅฎˆๆŠค่ฟ›็จ‹ | ๆ—  | ๆ—  | ๆ—  | ๆ—  | **`opc start/stop/status`** |
35
+ | ๅฎšๆ—ถไปปๅŠก | ๆ—  | ๆ—  | ๆ—  | ๆ—  | **ๅ†…็ฝฎ Cron ่ฐƒๅบฆ** |
36
+ | ๆŠ€่ƒฝๅญฆไน  | ๆ—  | ๆ—  | ๆ—  | ๆ—  | **่‡ชไธปๆŠ€่ƒฝไน ๅพ—** |
37
+ | ๅญ Agent | ๆ—  | ๆœ‰ | ๆœ‰ | ๆ—  | **ๅนถ่กŒๅญ Agent ็ณป็ปŸ** |
38
+ | MCP | ๆ—  | ๆ—  | ๆ—  | ๆ—  | **MCP Client ้›†ๆˆ** |
66
39
 
67
- const kb = new KnowledgeBase('./docs');
68
- await kb.addFile('ไบงๅ“ๆ‰‹ๅ†Œ.pdf');
69
- // ๆ™บ่ƒฝไฝ“่‡ชๅŠจๆฃ€็ดข็Ÿฅ่ฏ†ๅบ“๏ผŒๆ— ้œ€้ขๅค–้…็ฝฎ
70
- ```
71
-
72
- ๅ†…็ฝฎ TF-IDF ๅ‘้‡ๅŒ– + ไฝ™ๅผฆ็›ธไผผๅบฆๆฃ€็ดข๏ผŒๆ•ฐๆฎๆŒไน…ๅŒ–ๅˆฐ `.opc-knowledge.json`๏ผŒๆ— ้œ€ๅค–้ƒจๅ‘้‡ๆ•ฐๆฎๅบ“ใ€‚
40
+ **ๆก†ๆžถ็ฎก"ๆ€Žไนˆ่ท‘"๏ผŒAgent OS ็ฎก"ๅ…จ่ฟ‡็จ‹"ใ€‚**
73
41
 
74
- ### ๐ŸŽญ ๅคšๆ™บ่ƒฝไฝ“็ผ–ๆŽ’
42
+ ## ๅฟซ้€Ÿๅผ€ๅง‹
75
43
 
76
- ```typescript
77
- import { Orchestrator } from 'opc-agent';
44
+ ```bash
45
+ # ๆœ€ๅฟซๆ–นๅผ๏ผˆๆ— ้œ€ๅ…จๅฑ€ๅฎ‰่ฃ…๏ผ‰
46
+ npx opc-agent init my-agent
47
+ cd my-agent
48
+ npm install
49
+ opc chat
78
50
 
79
- const orchestrator = new Orchestrator({
80
- agents: [ๅˆ†่ฏŠๆ™บ่ƒฝไฝ“, ้”€ๅ”ฎๆ™บ่ƒฝไฝ“, ๅฎขๆœๆ™บ่ƒฝไฝ“],
81
- strategy: 'route-by-intent',
82
- });
51
+ # ๆˆ–ๅ…จๅฑ€ๅฎ‰่ฃ…
52
+ npm install -g opc-agent
53
+ opc init my-agent
54
+ cd my-agent
55
+ opc dev
83
56
  ```
84
57
 
85
- ๆ”ฏๆŒ้กบๅบๆ‰ง่กŒใ€ๅนถ่กŒๆ‰ง่กŒใ€ๆกไปถ่ทฏ็”ฑใ€ๆ™บ่ƒฝไฝ“็งปไบค๏ผˆhandoff๏ผ‰ใ€‚
58
+ ## ๐Ÿ†• v2.0.0 ๆ–ฐ็‰นๆ€ง
86
59
 
87
- ### ๐Ÿงช ๅ†…็ฝฎๆต‹่ฏ•ๆก†ๆžถ
88
-
89
- ```yaml
90
- spec:
91
- testing:
92
- cases:
93
- - name: ้—ฎๅ€™ๆต‹่ฏ•
94
- input: "ไฝ ๅฅฝ"
95
- expect:
96
- contains: ["ไฝ ๅฅฝ", "ๅธฎ"]
97
- maxLatencyMs: 5000
98
- ```
60
+ ### ๐Ÿ–ฅ๏ธ ไบคไบ’ๅผ CLI (`opc chat`)
61
+ ๅ…จๅŠŸ่ƒฝ TUI๏ผšๆตๅผ่พ“ๅ‡บใ€ๆ–œๆ ๅ‘ฝไปคใ€ๅކๅฒ่ฎฐๅฝ•๏ผŒ็›ดๆŽฅๅœจ็ปˆ็ซฏๅ’Œ Agent ๅฏน่ฏใ€‚
99
62
 
63
+ ### ๐Ÿ”„ ๅฎˆๆŠค่ฟ›็จ‹ๆจกๅผ
100
64
  ```bash
101
- opc test # ่ฟ่กŒๆต‹่ฏ•็”จไพ‹
102
- opc test --watch # ็›‘ๅฌๆจกๅผ
103
- opc test --json # JSON ๆ ผๅผ่พ“ๅ‡บ
65
+ opc start # ๅŽๅฐๅฏๅŠจ Agent
66
+ opc status # ๆŸฅ็œ‹่ฟ่กŒ็Šถๆ€
67
+ opc stop # ๅœๆญข Agent
104
68
  ```
105
69
 
106
- ### ๐Ÿ”ง ๆ’ไปถ็ณป็ปŸ
107
-
70
+ ### โฐ Cron ่ฐƒๅบฆๅ™จ
71
+ OAD ้…็ฝฎไธญๅฃฐๆ˜Žๅฎšๆ—ถไปปๅŠก๏ผŒAgent ่‡ชๅŠจๆŒ‰่ฎกๅˆ’ๆ‰ง่กŒ๏ผš
108
72
  ```yaml
109
- spec:
110
- plugins:
111
- - name: logging
112
- - name: analytics
113
- - name: rate-limit
114
- config: { maxPerMinute: 60 }
73
+ scheduler:
74
+ jobs:
75
+ - cron: "0 9 * * *"
76
+ task: daily-report
115
77
  ```
116
78
 
117
- ๅฎŒๆ•ด็”Ÿๅ‘ฝๅ‘จๆœŸ้’ฉๅญ๏ผš`onInit`ใ€`onMessage`ใ€`onResponse`ใ€`onError`ใ€`onShutdown`ใ€‚
79
+ ### ๐Ÿง  ่‡ชไธปๆŠ€่ƒฝๅญฆไน 
80
+ Agent ไปŽ็ป้ชŒไธญ่‡ชๅŠจๅˆ›ๅปบๅ’Œๆ”น่ฟ›ๆŠ€่ƒฝ๏ผŒ่ถŠ็”จ่ถŠๅผบใ€‚
118
81
 
119
- ### ๐Ÿ”’ ๅฎ‰ๅ…จ็‰นๆ€ง
82
+ ### ๐Ÿค– ๅญ Agent ็ณป็ปŸ
83
+ ๅนถ่กŒๆดพ็”Ÿๅญ Agent ๅค„็†ๅคๆ‚ไปปๅŠก๏ผŒๆ”ฏๆŒไปปๅŠกๅง”ๆดพๅ’Œ็ป“ๆžœๆฑ‡ๆ€ปใ€‚
120
84
 
121
- - ่พ“ๅ…ฅๆถˆๆฏ’๏ผˆ้˜ฒ XSSใ€ๆณจๅ…ฅๆ”ปๅ‡ป๏ผ‰
122
- - API Key ่ฝฎๆข็ฎก็†
123
- - CORS ้…็ฝฎ
124
- - ๅฎ‰ๅ…จๅ“ๅบ”ๅคด
125
- - ไผš่ฏ้š”็ฆป่ฎค่ฏไธญ้—ดไปถ
85
+ ### ๐Ÿ”ง ๅ†…็ฝฎๅทฅๅ…ท
86
+ ๆ–‡ไปถๆ“ไฝœใ€Web ๆŠ“ๅ–ใ€Shell ๆ‰ง่กŒใ€ๆ—ฅๆœŸๆ—ถ้—ด โ€” ๅผ€็ฎฑๅณ็”จ๏ผŒๆ— ้œ€้ขๅค–้…็ฝฎใ€‚
126
87
 
127
- ### ๐Ÿ“Š ็›‘ๆŽงไธŽๅˆ†ๆž
88
+ ### ๐Ÿ”Œ MCP Client
89
+ ้€š่ฟ‡ JSON-RPC ่ฟžๆŽฅๅค–้ƒจ MCP ๆœๅŠกๅ™จ๏ผŒๆ‰ฉๅฑ• Agent ่ƒฝๅŠ›่พน็•Œใ€‚
128
90
 
129
- Web ๆธ ้“ๅ†…็ฝฎไปฅไธ‹็ซฏ็‚น๏ผš
91
+ ### ๐Ÿ“„ SOUL.md + CONTEXT.md
92
+ ็”จ Markdown ๅฎšไน‰ Agent ไบบๆ ผๅ’Œ้กน็›ฎไธŠไธ‹ๆ–‡๏ผŒไบบๆ€งๅŒ–้…็ฝฎใ€‚
130
93
 
131
- | ็ซฏ็‚น | ่ฏดๆ˜Ž |
132
- |------|------|
133
- | `GET /api/health` | ๅฅๅบทๆฃ€ๆŸฅ |
134
- | `GET /api/metrics` | Prometheus ๆ–‡ๆœฌๆ ผๅผๆŒ‡ๆ ‡๏ผˆuptimeใ€่ฏทๆฑ‚ๆ•ฐใ€้”™่ฏฏๆ•ฐใ€LLM ๅปถ่ฟŸใ€Token ็”จ้‡็ญ‰๏ผ‰ |
135
- | `GET /api/dashboard` | ๅฎžๆ—ถไปช่กจ็›˜ |
94
+ ## OAD ๅฃฐๆ˜Žๅผ้…็ฝฎ
136
95
 
137
- `opc analytics` ๅ’Œ `opc stats` ๅ‘ฝไปคๅฏๆŸฅ็œ‹็ฆป็บฟๅˆ†ๆžๅฟซ็…งใ€‚
96
+ ไธ็”จๅ†™ไปฃ็ ๏ผŒ็”จ YAML ๅฎšไน‰ Agent๏ผš
138
97
 
139
- ## ๐Ÿ—๏ธ ๆžถๆž„
140
-
141
- ```
142
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
143
- โ”‚ OAD (YAML ๅฎšไน‰ๆ–‡ไปถ) โ”‚
144
- โ”‚ ๆ™บ่ƒฝไฝ“็š„ไธ€ๅˆ‡้…็ฝฎ้ƒฝๅœจ่ฟ™้‡Œ โ”‚
145
- โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
146
- โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
147
- โ”‚ โ”‚ ๆธ ้“ๅฑ‚ โ”‚ โ”‚ ๆ’ไปถๅฑ‚ โ”‚ โ”‚ ๅฎ‰ๅ…จๅฑ‚ โ”‚ โ”‚
148
- โ”‚ โ”‚10 ไธชๆธ ้“ โ”‚ โ”‚ ๆ—ฅๅฟ—/ๅˆ†ๆžโ”‚ โ”‚ ๆถˆๆฏ’/CORS/่ฎค่ฏโ”‚ โ”‚
149
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
150
- โ”‚ โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
151
- โ”‚ โ”‚ ๆ™บ่ƒฝไฝ“่ฟ่กŒๆ—ถ (Agent Runtime) โ”‚ โ”‚
152
- โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚
153
- โ”‚ โ”‚ โ”‚ ่ฎฐๅฟ† โ”‚ โ”‚ ๆŠ€่ƒฝ โ”‚ โ”‚ ็Ÿฅ่ฏ†ๅบ“ โ”‚ โ”‚ โ”‚
154
- โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚
155
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
156
- โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
157
- โ”‚ โ”‚ ๅคง่ฏญ่จ€ๆจกๅž‹ไพ›ๅบ”ๅ•† โ”‚ โ”‚
158
- โ”‚ โ”‚ DeepSeek ยท ้€šไน‰ๅƒ้—ฎ ยท OpenAI ยท Ollama โ”‚ โ”‚
159
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚
160
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
98
+ ```yaml
99
+ id: customer-service
100
+ name: ๅฎขๆœไธ“ๅ‘˜
101
+ version: "1.0.0"
102
+
103
+ model: deepseek-chat
104
+ systemPrompt: |
105
+ ไฝ ๆ˜ฏไธ€ไธชไธ“ไธš็š„ๅฎขๆœ...
106
+
107
+ skills:
108
+ - ticket-management
109
+ - knowledge-base-search
110
+
111
+ channels:
112
+ - type: web
113
+ priority: primary
114
+ - type: telegram
115
+ priority: secondary
116
+ - type: wechat
117
+ priority: secondary
118
+
119
+ memory:
120
+ shortTerm: true
121
+ longTerm:
122
+ provider: deepbrain
161
123
  ```
162
124
 
163
- ## ๐Ÿ“‹ 12 ไธชๅผ€็ฎฑๅณ็”จๆจกๆฟ
125
+ ## CLI ๅ‘ฝไปค
164
126
 
165
127
  ```bash
166
- opc init my-agent --template <ๆจกๆฟๅ>
128
+ opc init <name> # ๅˆ›ๅปบๆ–ฐ Agent
129
+ opc chat # ไบคไบ’ๅผๅฏน่ฏ๏ผˆTUI๏ผ‰
130
+ opc dev # ๅผ€ๅ‘ๆจกๅผ๏ผˆ็ƒญ้‡่ฝฝ๏ผ‰
131
+ opc run # ็”Ÿไบง่ฟ่กŒ
132
+ opc start # ๅฎˆๆŠค่ฟ›็จ‹ๅฏๅŠจ
133
+ opc stop # ๅœๆญขๅฎˆๆŠค่ฟ›็จ‹
134
+ opc status # ๆŸฅ็œ‹่ฟ่กŒ็Šถๆ€
135
+ opc jobs # ๆŸฅ็œ‹ๅฎšๆ—ถไปปๅŠก
136
+ opc skills # ๆŸฅ็œ‹ๅทฒๅญฆๆŠ€่ƒฝ
137
+ opc info # Agent ไฟกๆฏ
138
+ opc build # ๆž„ๅปบ
139
+ opc test # ่ฟ่กŒๆต‹่ฏ•
140
+ opc analytics # ๆ•ฐๆฎๅˆ†ๆž
141
+ opc brain [--url ...] # ๆŸฅ็œ‹่ฎฐๅฟ†็Šถๆ€
142
+ opc logs [-f] # ๆŸฅ็œ‹ Traces ๆ—ฅๅฟ—
143
+ opc score # ๆŸฅ็œ‹ๆ€ง่ƒฝ่ฏ„ๅˆ†
144
+ opc search <query> # ๆœ็ดข
145
+ opc deploy # ้ƒจ็ฝฒ
146
+ opc publish # ๅ‘ๅธƒ
147
+ opc install <skill> # ๅฎ‰่ฃ…ๆŠ€่ƒฝ
148
+ opc plugin <name> # ็ฎก็†ๆ’ไปถ
149
+ opc tool <name> # ็ฎก็†ๅทฅๅ…ท
150
+ opc workflow <name> # ๅทฅไฝœๆต
151
+ opc migrate # ่ฟ็งป
167
152
  ```
168
153
 
169
- | ๆจกๆฟ | ่ฏดๆ˜Ž | ๅ…ธๅž‹ๅœบๆ™ฏ |
170
- |------|------|---------|
171
- | `customer-service` | ๅฎขๆœๆ™บ่ƒฝไฝ“ | FAQ ่‡ชๅŠจๅ›ž็ญ” + ่ฝฌไบบๅทฅ |
172
- | `sales-assistant` | ้”€ๅ”ฎๅŠฉๆ‰‹ | ไบงๅ“้—ฎ็ญ” + ็บฟ็ดขๆ•่Žท |
173
- | `knowledge-base` | ็Ÿฅ่ฏ†ๅบ“้—ฎ็ญ” | ๆ–‡ๆกฃ RAG ่ฏญไน‰ๆฃ€็ดข |
174
- | `code-reviewer` | ไปฃ็ ๅฎกๆŸฅ | Bug ๆฃ€ๆต‹ + ้ฃŽๆ ผๆฃ€ๆŸฅ |
175
- | `hr-recruiter` | HR ๆ‹›่˜ๅŠฉๆ‰‹ | ็ฎ€ๅކ็ญ›้€‰ + ้ข่ฏ•ๅฎ‰ๆŽ’ |
176
- | `project-manager` | ้กน็›ฎ็ฎก็† | ไปปๅŠก่ทŸ่ธช + ไผš่ฎฎ็บช่ฆ |
177
- | `content-writer` | ๅ†…ๅฎนๅˆ›ไฝœ | ๅšๅฎข + ็คพๅช’ + SEO |
178
- | `legal-assistant` | ๆณ•ๅŠกๅŠฉๆ‰‹ | ๅˆๅŒๅฎกๆŸฅ + ๅˆ่ง„ๆฃ€ๆŸฅ |
179
- | `financial-advisor` | ่ดขๅŠก้กพ้—ฎ | ้ข„็ฎ—็ฎก็† + ๆ”ฏๅ‡บ่ฟฝ่ธช |
180
- | `executive-assistant` | ่กŒๆ”ฟๅŠฉ็† | ๆ—ฅ็จ‹ + ้‚ฎไปถ + ไผš่ฎฎ |
181
- | `data-analyst` | ๆ•ฐๆฎๅˆ†ๆžๅธˆ | ๆ•ฐๆฎๆŸฅ่ฏข + ๅฏ่ง†ๅŒ– |
182
- | `teacher` | ๆ•™ๅญฆๅŠฉๆ‰‹ | ่ฏพ็จ‹่ฎพ่ฎก + ๅ‡บ้ข˜ |
183
-
184
- ## ๐Ÿš€ ้ƒจ็ฝฒ
154
+ ## 11 ไธชๆธ ้“
185
155
 
186
- ### Docker ้ƒจ็ฝฒ
156
+ ไธ€ๅฅ—ไปฃ็ ๏ผŒ้ƒจ็ฝฒๅˆฐไปปๆ„ๆธ ้“๏ผš
187
157
 
188
- `opc init` ๅˆ›ๅปบ็š„ๆฏไธช้กน็›ฎ้ƒฝ่‡ชๅธฆ `Dockerfile` ๅ’Œ `docker-compose.yml`๏ผš
158
+ | ๆธ ้“ | ็Šถๆ€ | ่ฏดๆ˜Ž |
159
+ |------|------|------|
160
+ | ๐ŸŒ Web | โœ… | ็ฝ‘้กต่Šๅคฉ |
161
+ | ๐Ÿ“ฑ Telegram | โœ… | Bot API |
162
+ | ๐Ÿ’ฌ Slack | โœ… | Slack App |
163
+ | ๐ŸŽฎ Discord | โœ… | Discord Bot |
164
+ | ๐Ÿ“ง Email | โœ… | IMAP/SMTP |
165
+ | ๐Ÿ’š ๅพฎไฟก | โœ… | ไผไธšๅพฎไฟก/ไธชไบบๅพฎไฟก |
166
+ | ๐Ÿ”ต ้ฃžไนฆ | โœ… | ้ฃžไนฆๆœบๅ™จไบบ |
167
+ | ๐ŸŽค Voice | โœ… | ่ฏญ้Ÿณ้€š่ฏ |
168
+ | ๐Ÿ”Œ WebSocket | โœ… | ๅฎžๆ—ถๅŒๅ‘ |
169
+ | ๐Ÿช Webhook | โœ… | HTTP ๅ›ž่ฐƒ |
170
+ | ๐Ÿ“ก API | โœ… | REST API |
189
171
 
190
- ```bash
191
- docker compose up -d
192
- ```
172
+ ## ๆ ธๅฟƒ็‰นๆ€ง
193
173
 
194
- ### ้ƒจ็ฝฒๅˆฐ OpenClaw
174
+ | ็ฑปๅˆซ | ็‰นๆ€ง |
175
+ |------|------|
176
+ | ๐Ÿ“‹ **้…็ฝฎ** | OAD ๅฃฐๆ˜Žๅผๅฎšไน‰ใ€YAML ้…็ฝฎ |
177
+ | ๐Ÿ“ก **ๆธ ้“** | 11 ไธชๆธ ้“็ปŸไธ€ๆŽฅๅ…ฅ |
178
+ | ๐Ÿงช **ๆต‹่ฏ•** | ๅ†…็ฝฎๆต‹่ฏ•ๆก†ๆžถใ€163 tests |
179
+ | ๐Ÿ”Œ **ๆ’ไปถ** | ๅฏๆ‰ฉๅฑ•ๆŠ€่ƒฝๅ’Œๅทฅๅ…ท็ณป็ปŸ |
180
+ | ๐Ÿ“Š **็›‘ๆŽง** | Traces ่กŒไธบ้‡‡้›†ใ€Score ่ฏ„ๅˆ† |
181
+ | ๐Ÿง  **่ฎฐๅฟ†** | DeepBrain ้›†ๆˆใ€่‡ชๅŠจๅญฆไน  |
182
+ | ๐ŸŒ **ๅ›ฝ้™…ๅŒ–** | ๅ†…็ฝฎ i18n ๆ”ฏๆŒ |
183
+ | ๐Ÿš€ **้ƒจ็ฝฒ** | OpenClaw ็ญ‰ๅนณๅฐไธ€้”ฎ้ƒจ็ฝฒ |
184
+ | ๐Ÿ“ˆ **ๅˆ†ๆž** | Analytics ๆ•ฐๆฎๅˆ†ๆž |
185
+ | ๐Ÿ”„ **ๆตๅผ** | Streaming ๅฎžๆ—ถๅ“ๅบ” |
186
+
187
+ ## ๆžถๆž„
195
188
 
196
- ```bash
197
- opc deploy --target openclaw
198
- opc deploy --target openclaw --install # ๅŒๆ—ถๅ†™ๅ…ฅๆœฌๅœฐ้…็ฝฎ
199
189
  ```
200
-
201
- ็”Ÿๆˆ `IDENTITY.md`ใ€`SOUL.md`ใ€`AGENTS.md` ๅˆฐ `~/.openclaw/agents/{id}/workspace/`ใ€‚
202
-
203
- ### ้ƒจ็ฝฒๅˆฐ Hermes
204
-
205
- ```bash
206
- opc deploy --target hermes
190
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
191
+ โ”‚ OPC Agent OS โ”‚
192
+ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
193
+ โ”‚ ๅˆ›ๅปบ โ”‚ ่ฟ่กŒ โ”‚ ็›‘ๆŽง โ”‚
194
+ โ”‚ opc init โ”‚ 11 ๆธ ้“ โ”‚ Traces โ”‚
195
+ โ”‚ OAD ้…็ฝฎ โ”‚ ๆ’ไปถ็ณป็ปŸ โ”‚ Score โ”‚
196
+ โ”‚ ๆต‹่ฏ•ๆก†ๆžถ โ”‚ ๆตๅผๅ“ๅบ” โ”‚ Analytics โ”‚
197
+ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
198
+ โ”‚ DeepBrain ่ฎฐๅฟ† โ”‚
199
+ โ”‚ learn โ† Traces โ†’ recall โ”‚
200
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
207
201
  ```
208
202
 
209
- ๅฐ† OAD ่ฝฌๆขไธบ Hermes Character ๆ ผๅผ๏ผˆๅŒ…ๅซ personalityใ€bioใ€loreใ€message examples ็ญ‰ๅญ—ๆฎต๏ผ‰ใ€‚
203
+ ## ๐Ÿ”— ็”Ÿๆ€
210
204
 
211
- ## ๐Ÿ“– CLI ๅ‘ฝไปคๅ‚่€ƒ
205
+ | ้กน็›ฎ | ๅฎšไฝ | ๅ…ณ็ณป |
206
+ |------|------|------|
207
+ | [deepbrain](https://github.com/Deepleaper/deepbrain) | Agent ่ฎฐๅฟ†ๅผ•ๆ“Ž | Traces โ†’ learn() |
208
+ | **opc-agent** | Agent OS | โ† ไฝ ๅœจ่ฟ™้‡Œ |
209
+ | [agentkits](https://github.com/Deepleaper/agentkits) | ๅธฆ่ฎฐๅฟ†็š„ OpenRouter | ๆจกๅž‹่ฐƒ็”จๅฑ‚ |
210
+ | [agent-workstation](https://github.com/Deepleaper/agent-workstation) | ่™šๆ‹Ÿๅทฅไฝๆจกๆฟ | `opc init --template` |
212
211
 
213
- | ๅ‘ฝไปค | ่ฏดๆ˜Ž |
214
- |------|------|
215
- | `opc init [name]` | ๅˆ›ๅปบๆ–ฐๆ™บ่ƒฝไฝ“้กน็›ฎ๏ผˆไบคไบ’ๅผ๏ผŒๅฏ้€‰ๆจกๆฟ๏ผ‰ |
216
- | `opc create <name>` | ไปŽๆจกๆฟๅฟซ้€Ÿๅˆ›ๅปบ |
217
- | `opc run` | ๅฏๅŠจๆ™บ่ƒฝไฝ“ |
218
- | `opc dev` | ๅผ€ๅ‘ๆจกๅผ๏ผˆๆ–‡ไปถ็›‘ๅฌ็ƒญ้‡่ฝฝ๏ผ‰ |
219
- | `opc chat` | ๅ‘ฝไปค่กŒไบคไบ’ๅฏน่ฏ๏ผˆreadline ็•Œ้ข๏ผ‰ |
220
- | `opc test` | ่ฟ่กŒ OAD ไธญๅฎšไน‰็š„ๆต‹่ฏ•็”จไพ‹ |
221
- | `opc build` | ๆ ก้ชŒ OAD ้…็ฝฎๅˆๆณ•ๆ€ง |
222
- | `opc info` | ๆŸฅ็œ‹ๆ™บ่ƒฝไฝ“ไฟกๆฏ |
223
- | `opc analytics` | ๆŸฅ็œ‹ไฝฟ็”จๅˆ†ๆž |
224
- | `opc stats` | ๆŸฅ็œ‹่ฟ่กŒๆ—ถ็ปŸ่ฎกๅฟซ็…ง |
225
- | `opc deploy` | ้ƒจ็ฝฒๆ™บ่ƒฝไฝ“๏ผˆ--target openclaw\|hermes๏ผ‰ |
226
- | `opc kb add <file>` | ๅ‘็Ÿฅ่ฏ†ๅบ“ๆทปๅŠ ๆ–‡ไปถ |
227
- | `opc kb search <query>` | ๆœ็ดข็Ÿฅ่ฏ†ๅบ“ |
228
- | `opc kb stats` | ็Ÿฅ่ฏ†ๅบ“็ปŸ่ฎก |
229
- | `opc kb clear` | ๆธ…็ฉบ็Ÿฅ่ฏ†ๅบ“ |
230
- | `opc search` | ๆœ็ดข OPC Registry |
231
- | `opc tool` | MCP ๅทฅๅ…ท็ฎก็† |
232
- | `opc workflow run` | ่ฟ่กŒๅทฅไฝœๆต |
233
- | `opc workflow list` | ๅˆ—ๅ‡บๅทฅไฝœๆต |
234
- | `opc version-mgmt list` | ๅˆ—ๅ‡บๅކๅฒ็‰ˆๆœฌ |
235
- | `opc version-mgmt rollback` | ๅ›žๆปš็‰ˆๆœฌ |
236
- | `opc publish` | ๆ‰“ๅŒ…ๅ‘ๅธƒๆ™บ่ƒฝไฝ“ |
237
- | `opc install <pkg>` | ๅฎ‰่ฃ…ๆ™บ่ƒฝไฝ“ๅŒ… |
238
- | `opc plugin list` | ๅˆ—ๅ‡บๅทฒๅฎ‰่ฃ…ๆ’ไปถ |
239
- | `opc plugin add <name>` | ๆทปๅŠ ๆ’ไปถ |
240
- | `opc migrate` | OAD Schema ่ฟ็งป |
241
-
242
- ## ๐Ÿ”— SDK ๅ‚่€ƒ
243
-
244
- ```typescript
245
- import { AgentRuntime, KnowledgeBase, Orchestrator } from 'opc-agent';
246
-
247
- // ๅฏๅŠจๆ™บ่ƒฝไฝ“
248
- const runtime = new AgentRuntime();
249
- await runtime.loadConfig('oad.yaml');
250
- await runtime.initialize();
251
- await runtime.start();
252
-
253
- // ็Ÿฅ่ฏ†ๅบ“
254
- const kb = new KnowledgeBase('./docs');
255
- await kb.addFile('handbook.pdf');
256
- const results = await kb.search('้€€ๆฌพๆ”ฟ็ญ–');
257
-
258
- // ๅคšๆ™บ่ƒฝไฝ“็ผ–ๆŽ’
259
- const orch = new Orchestrator({
260
- agents: [agentA, agentB],
261
- strategy: 'route-by-intent',
262
- });
263
- ```
264
-
265
- ## ๐Ÿ”‘ OAD ้…็ฝฎๆ–‡ไปถ้€Ÿ่งˆ
266
-
267
- ```yaml
268
- apiVersion: opc/v1
269
- kind: Agent
270
-
271
- metadata:
272
- name: my-agent
273
- version: 1.0.0
274
-
275
- spec:
276
- provider:
277
- default: deepseek
278
- allowed: [deepseek, openai, qwen, anthropic, ollama]
279
- model: deepseek-chat
280
- systemPrompt: |
281
- ไฝ ๆ˜ฏไธ€ไธชไธ“ไธš็š„ๅฎขๆœๅŠฉๆ‰‹...
282
-
283
- channels:
284
- - type: web
285
- port: 3000
286
-
287
- memory:
288
- shortTerm: true
289
- longTerm: false
290
-
291
- rateLimits:
292
- perUser:
293
- maxRequests: 60
294
- windowMs: 60000
295
-
296
- plugins:
297
- - name: logging
298
- - name: analytics
299
-
300
- testing:
301
- cases:
302
- - name: ๅŸบๆœฌ้—ฎๅ€™
303
- input: "ไฝ ๅฅฝ"
304
- expect:
305
- contains: ["ไฝ ๅฅฝ"]
306
- maxLatencyMs: 5000
307
- ```
212
+ ## License
308
213
 
309
- ## ๐Ÿค ่ดก็ŒฎๆŒ‡ๅ—
214
+ Apache-2.0
310
215
 
311
- ```bash
312
- git clone https://github.com/Deepleaper/opc-agent.git
313
- cd opc-agent
314
- npm install
315
- npm run build # TypeScript ็ผ–่ฏ‘
316
- npm test # ่ฟ่กŒ 146 ไธชๆต‹่ฏ•
317
- ```
216
+ ---
318
217
 
319
- ๆฌข่ฟŽๆไบค Issue ๅ’Œ Pull Requestใ€‚
218
+ <a name="english"></a>
320
219
 
321
- ## ๐Ÿ“„ ๅผ€ๆบๅ่ฎฎ
220
+ ## English
322
221
 
323
- [Apache License 2.0](LICENSE) โ€” ๅ•†็”จๅ’Œๅผ€ๆบ้กน็›ฎๅ‡ๅฏ่‡ช็”ฑไฝฟ็”จใ€‚
222
+ ## ๐Ÿ’ก What Is OPC Agent?
324
223
 
325
- ---
224
+ > **Not just a Harness โ€” it's an Agent OS, one dimension above Harness frameworks.**
225
+ > From creation to runtime to monitoring, one tool for the entire Agent lifecycle.
326
226
 
327
- <details>
328
- <summary id="english">๐Ÿ‡บ๐Ÿ‡ธ English</summary>
227
+ ## ๐ŸŽฏ How It Differs from Harness Frameworks
329
228
 
330
- ## OPC Agent
229
+ | | LangChain | CrewAI | AutoGen | **OPC Agent** |
230
+ |---|---|---|---|---|
231
+ | Creation | Write code | Write code | Write code | **`opc init` one command** |
232
+ | Configuration | Python/code | Python | Python | **YAML declarative** |
233
+ | Testing | DIY | None | None | **Built-in test framework** |
234
+ | Channels | DIY | None | None | **11 channels out-of-the-box** |
235
+ | Monitoring | DIY | None | None | **Traces + Score** |
236
+ | Memory | DIY | Basic | Basic | **DeepBrain integration** |
331
237
 
332
- A **TypeScript-first open agent framework** by [Deepleaper](https://www.deepleaper.com). Define your agent in a single YAML file (OAD โ€” Open Agent Definition), connect any LLM provider, deploy to any channel.
238
+ **Frameworks manage "how to run." Agent OS manages "the entire process."**
333
239
 
334
240
  ## Quick Start
335
241
 
336
242
  ```bash
243
+ # Fastest way (no global install)
244
+ npx opc-agent init my-agent
245
+ cd my-agent
246
+ npm install
247
+ opc chat
248
+
249
+ # Or install globally
337
250
  npm install -g opc-agent
338
251
  opc init my-agent
339
252
  cd my-agent
340
- opc run
253
+ opc dev
341
254
  ```
342
255
 
343
- Agent is live at `http://localhost:3000` with a built-in web chat UI.
344
-
345
- ## Features
346
-
347
- - **Multi-Provider LLM** โ€” DeepSeek, Qwen, OpenAI, Anthropic, Ollama, any OpenAI-compatible API
348
- - **10 Channels** โ€” Web, Telegram, Slack, WebSocket, Email, WeChat, Feishu, Voice (STT/TTS), Webhook, Discord
349
- - **Knowledge Base (RAG)** โ€” TF-IDF + cosine similarity, no external vector DB required
350
- - **Multi-Agent Orchestration** โ€” Intent routing, sequential/parallel execution, agent handoff
351
- - **Built-in Testing** โ€” YAML-defined test cases with content and latency assertions
352
- - **Plugin System** โ€” Logging, analytics, rate limiting; full lifecycle hooks
353
- - **Security** โ€” Input sanitization, CORS, auth middleware, session isolation
354
- - **Monitoring** โ€” `/api/health`, `/api/metrics` (Prometheus format), `/api/dashboard`
355
- - **12 Templates** โ€” Customer service, sales, knowledge base, code review, HR, and more
356
- - **146 Tests** โ€” 22 test files covering all major features
357
-
358
- ## CLI Reference
359
-
360
- | Command | Description |
361
- |---------|-------------|
362
- | `opc init [name]` | Create new agent project (interactive, template selection) |
363
- | `opc run` | Start agent |
364
- | `opc dev` | Development mode (hot-reload) |
365
- | `opc test` | Run OAD test cases |
366
- | `opc chat` | Interactive CLI chat |
367
- | `opc build` | Validate OAD configuration |
368
- | `opc deploy` | Deploy (`--target openclaw\|hermes`) |
369
- | `opc analytics` | View analytics |
370
- | `opc stats` | Runtime statistics snapshot |
371
- | `opc kb add <file>` | Add file to knowledge base |
372
- | `opc kb search <query>` | Search knowledge base |
373
- | `opc workflow run` | Run a workflow |
374
- | `opc version-mgmt rollback` | Rollback to a previous version |
375
- | `opc publish` | Package agent for distribution |
376
- | `opc install <pkg>` | Install agent package |
377
- | `opc plugin add <name>` | Add plugin |
378
- | `opc migrate` | Migrate OAD schema |
379
-
380
- ## Deploy
381
-
382
- ### Docker
383
-
384
- Every project created with `opc init` includes a `Dockerfile` and `docker-compose.yml`:
385
-
386
- ```bash
387
- docker compose up -d
388
- ```
256
+ ## OAD Declarative Configuration
389
257
 
390
- ### OpenClaw
258
+ Define your Agent with YAML โ€” no code required:
391
259
 
392
- ```bash
393
- opc deploy --target openclaw
260
+ ```yaml
261
+ id: customer-service
262
+ name: Customer Service Rep
263
+ version: "1.0.0"
264
+
265
+ model: deepseek-chat
266
+ systemPrompt: |
267
+ You are a professional customer service agent...
268
+
269
+ skills:
270
+ - ticket-management
271
+ - knowledge-base-search
272
+
273
+ channels:
274
+ - type: web
275
+ priority: primary
276
+ - type: telegram
277
+ priority: secondary
278
+ - type: wechat
279
+ priority: secondary
280
+
281
+ memory:
282
+ shortTerm: true
283
+ longTerm:
284
+ provider: deepbrain
394
285
  ```
395
286
 
396
- Generates `IDENTITY.md`, `SOUL.md`, `AGENTS.md` into `~/.openclaw/agents/{id}/workspace/`.
397
-
398
- ### Hermes
287
+ ## CLI Commands
399
288
 
400
289
  ```bash
401
- opc deploy --target hermes
290
+ opc init <name> # Create a new Agent
291
+ opc dev # Development mode (hot reload)
292
+ opc test # Run tests
293
+ opc run # Production run
294
+ opc logs [-f] # View Traces logs
295
+ opc brain [--url ...] # View memory status
296
+ opc score # View performance score
402
297
  ```
403
298
 
404
- Converts OAD to Hermes Character format (personality, bio, lore, message examples, style guides).
405
-
406
- ## SDK
299
+ ## 11 Channels
300
+
301
+ One codebase, deploy to any channel:
302
+
303
+ | Channel | Status | Description |
304
+ |---------|--------|-------------|
305
+ | ๐ŸŒ Web | โœ… | Web chat |
306
+ | ๐Ÿ“ฑ Telegram | โœ… | Bot API |
307
+ | ๐Ÿ’ฌ Slack | โœ… | Slack App |
308
+ | ๐ŸŽฎ Discord | โœ… | Discord Bot |
309
+ | ๐Ÿ“ง Email | โœ… | IMAP/SMTP |
310
+ | ๐Ÿ’š WeChat | โœ… | Enterprise/Personal WeChat |
311
+ | ๐Ÿ”ต Feishu | โœ… | Feishu (Lark) Bot |
312
+ | ๐ŸŽค Voice | โœ… | Voice call |
313
+ | ๐Ÿ”Œ WebSocket | โœ… | Real-time bidirectional |
314
+ | ๐Ÿช Webhook | โœ… | HTTP callback |
315
+ | ๐Ÿ“ก API | โœ… | REST API |
316
+
317
+ ## Full Feature Set
318
+
319
+ | Category | Features |
320
+ |----------|----------|
321
+ | ๐Ÿ“‹ **Configuration** | OAD declarative definition, YAML config |
322
+ | ๐Ÿ“ก **Channels** | 11 channels, unified access |
323
+ | ๐Ÿงช **Testing** | Built-in test framework, 204 tests |
324
+ | ๐Ÿ”Œ **Plugins** | Extensible skills and tools system |
325
+ | ๐Ÿ“Š **Monitoring** | Traces behavior collection, Score rating |
326
+ | ๐Ÿง  **Memory** | DeepBrain integration, auto-learning |
327
+ | ๐ŸŒ **i18n** | Built-in internationalization support |
328
+ | ๐Ÿš€ **Deployment** | One-click deploy on OpenClaw and other platforms |
329
+ | ๐Ÿ“ˆ **Analytics** | Data analytics |
330
+ | ๐Ÿ”„ **Streaming** | Real-time streaming responses |
331
+
332
+ ## Architecture
407
333
 
408
- ```typescript
409
- import { AgentRuntime, KnowledgeBase, Orchestrator } from 'opc-agent';
410
-
411
- const runtime = new AgentRuntime();
412
- await runtime.loadConfig('oad.yaml');
413
- await runtime.initialize();
414
- await runtime.start();
334
+ ```
335
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
336
+ โ”‚ OPC Agent OS โ”‚
337
+ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
338
+ โ”‚ Create โ”‚ Run โ”‚ Monitor โ”‚
339
+ โ”‚ opc init โ”‚ 11 Chan. โ”‚ Traces โ”‚
340
+ โ”‚ OAD Configโ”‚ Plugins โ”‚ Score โ”‚
341
+ โ”‚ Test Fwk โ”‚ Streaming โ”‚ Analytics โ”‚
342
+ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
343
+ โ”‚ DeepBrain Memory โ”‚
344
+ โ”‚ learn โ† Traces โ†’ recall โ”‚
345
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
415
346
  ```
416
347
 
417
- ## License
418
-
419
- [Apache License 2.0](LICENSE)
348
+ ## ๐Ÿ”— Ecosystem
420
349
 
421
- ---
350
+ | Project | Role | Relationship |
351
+ |---------|------|-------------|
352
+ | [deepbrain](https://github.com/Deepleaper/deepbrain) | Agent Memory Engine | Traces โ†’ learn() |
353
+ | **opc-agent** | Agent OS | โ† You are here |
354
+ | [agentkits](https://github.com/Deepleaper/agentkits) | OpenRouter with Memory | Model call layer |
355
+ | [agent-workstation](https://github.com/Deepleaper/agent-workstation) | Virtual Role Templates | `opc init --template` |
422
356
 
423
- Built with โค๏ธ by [Deepleaper](https://www.deepleaper.com)
357
+ ## License
424
358
 
425
- </details>
359
+ Apache-2.0
360
+ thub.com/Deepleaper/agentkits) | OpenRouter with Memory | Model call layer |
361
+ | [agent-workstation](https://github.com/Deepleaper/agent-workstation) | Virtual Role Templates | `opc init --template` |
426
362
 
427
- ---
363
+ ## License
428
364
 
429
- <p align="center">็”ฑ <a href="https://www.deepleaper.com">่ทƒ็›Ÿ็ง‘ๆŠ€ (Deepleaper)</a> ็”จ โค๏ธ ๆ‰“้€ </p>
365
+ Apache-2.0