opc-agent 1.2.1 โ†’ 1.3.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 (152) hide show
  1. package/CONTRIBUTING.md +75 -75
  2. package/README.md +235 -358
  3. package/README.zh-CN.md +415 -415
  4. package/dist/channels/web.js +256 -256
  5. package/dist/core/knowledge.d.ts +5 -0
  6. package/dist/core/knowledge.js +39 -2
  7. package/dist/deploy/hermes.js +22 -22
  8. package/dist/deploy/openclaw.js +31 -31
  9. package/dist/index.d.ts +0 -4
  10. package/dist/index.js +1 -7
  11. package/dist/providers/index.d.ts +1 -1
  12. package/dist/providers/index.js +158 -14
  13. package/dist/schema/oad.d.ts +3 -3
  14. package/dist/templates/code-reviewer.js +5 -5
  15. package/dist/templates/customer-service.js +2 -2
  16. package/dist/templates/data-analyst.js +5 -5
  17. package/dist/templates/knowledge-base.js +2 -2
  18. package/dist/templates/sales-assistant.js +4 -4
  19. package/dist/templates/teacher.js +6 -6
  20. package/docs/.vitepress/config.ts +103 -103
  21. package/docs/api/cli.md +48 -48
  22. package/docs/api/oad-schema.md +64 -64
  23. package/docs/api/sdk.md +80 -80
  24. package/docs/guide/concepts.md +51 -51
  25. package/docs/guide/configuration.md +79 -79
  26. package/docs/guide/deployment.md +42 -42
  27. package/docs/guide/getting-started.md +44 -44
  28. package/docs/guide/templates.md +28 -28
  29. package/docs/guide/testing.md +84 -84
  30. package/docs/index.md +27 -27
  31. package/docs/zh/api/cli.md +54 -54
  32. package/docs/zh/api/oad-schema.md +87 -87
  33. package/docs/zh/api/sdk.md +102 -102
  34. package/docs/zh/guide/concepts.md +104 -104
  35. package/docs/zh/guide/configuration.md +135 -135
  36. package/docs/zh/guide/deployment.md +81 -81
  37. package/docs/zh/guide/getting-started.md +82 -82
  38. package/docs/zh/guide/templates.md +84 -84
  39. package/docs/zh/guide/testing.md +88 -88
  40. package/docs/zh/index.md +27 -27
  41. package/examples/customer-service-demo/README.md +90 -90
  42. package/examples/customer-service-demo/oad.yaml +107 -107
  43. package/package.json +50 -50
  44. package/src/analytics/index.ts +66 -66
  45. package/src/channels/discord.ts +192 -192
  46. package/src/channels/email.ts +177 -177
  47. package/src/channels/feishu.ts +236 -236
  48. package/src/channels/index.ts +15 -15
  49. package/src/channels/slack.ts +160 -160
  50. package/src/channels/telegram.ts +90 -90
  51. package/src/channels/voice.ts +106 -106
  52. package/src/channels/webhook.ts +199 -199
  53. package/src/channels/websocket.ts +87 -87
  54. package/src/channels/wechat.ts +149 -149
  55. package/src/cli.ts +119 -1
  56. package/src/core/a2a.ts +143 -143
  57. package/src/core/agent.ts +152 -152
  58. package/src/core/analytics-engine.ts +186 -186
  59. package/src/core/auth.ts +57 -57
  60. package/src/core/cache.ts +141 -141
  61. package/src/core/compose.ts +77 -77
  62. package/src/core/config.ts +14 -14
  63. package/src/core/errors.ts +148 -148
  64. package/src/core/hitl.ts +138 -138
  65. package/src/core/logger.ts +57 -57
  66. package/src/core/orchestrator.ts +215 -215
  67. package/src/core/performance.ts +187 -187
  68. package/src/core/rate-limiter.ts +128 -128
  69. package/src/core/room.ts +109 -109
  70. package/src/core/runtime.ts +152 -152
  71. package/src/core/sandbox.ts +101 -101
  72. package/src/core/security.ts +171 -171
  73. package/src/core/types.ts +68 -68
  74. package/src/core/versioning.ts +106 -106
  75. package/src/core/watch.ts +178 -178
  76. package/src/core/workflow.ts +235 -235
  77. package/src/deploy/hermes.ts +156 -156
  78. package/src/deploy/openclaw.ts +200 -200
  79. package/src/i18n/index.ts +216 -216
  80. package/src/index.ts +6 -2
  81. package/src/memory/deepbrain.ts +108 -108
  82. package/src/memory/index.ts +34 -34
  83. package/src/plugins/index.ts +208 -208
  84. package/src/schema/oad.ts +154 -155
  85. package/src/skills/base.ts +16 -16
  86. package/src/skills/document.ts +100 -100
  87. package/src/skills/http.ts +35 -35
  88. package/src/skills/index.ts +27 -27
  89. package/src/skills/scheduler.ts +80 -80
  90. package/src/skills/webhook-trigger.ts +59 -59
  91. package/src/templates/code-reviewer.ts +30 -34
  92. package/src/templates/customer-service.ts +76 -80
  93. package/src/templates/data-analyst.ts +66 -70
  94. package/src/templates/executive-assistant.ts +71 -71
  95. package/src/templates/financial-advisor.ts +60 -60
  96. package/src/templates/knowledge-base.ts +27 -31
  97. package/src/templates/legal-assistant.ts +71 -71
  98. package/src/templates/sales-assistant.ts +75 -79
  99. package/src/templates/teacher.ts +75 -79
  100. package/src/testing/index.ts +181 -181
  101. package/src/tools/calculator.ts +73 -73
  102. package/src/tools/datetime.ts +149 -149
  103. package/src/tools/json-transform.ts +187 -187
  104. package/src/tools/mcp.ts +76 -76
  105. package/src/tools/text-analysis.ts +116 -116
  106. package/src/traces/index.ts +132 -0
  107. package/templates/Dockerfile +15 -15
  108. package/templates/code-reviewer/README.md +27 -27
  109. package/templates/code-reviewer/oad.yaml +41 -41
  110. package/templates/customer-service/README.md +22 -22
  111. package/templates/customer-service/oad.yaml +36 -36
  112. package/templates/docker-compose.yml +21 -21
  113. package/templates/ecommerce-assistant/README.md +45 -45
  114. package/templates/ecommerce-assistant/oad.yaml +47 -47
  115. package/templates/knowledge-base/README.md +28 -28
  116. package/templates/knowledge-base/oad.yaml +38 -38
  117. package/templates/sales-assistant/README.md +26 -26
  118. package/templates/sales-assistant/oad.yaml +43 -43
  119. package/templates/tech-support/README.md +43 -43
  120. package/templates/tech-support/oad.yaml +45 -45
  121. package/tests/a2a.test.ts +66 -66
  122. package/tests/agent.test.ts +72 -72
  123. package/tests/analytics.test.ts +50 -50
  124. package/tests/channel.test.ts +39 -39
  125. package/tests/e2e.test.ts +134 -134
  126. package/tests/errors.test.ts +83 -83
  127. package/tests/hitl.test.ts +71 -71
  128. package/tests/i18n.test.ts +41 -41
  129. package/tests/mcp.test.ts +54 -54
  130. package/tests/oad.test.ts +68 -68
  131. package/tests/performance.test.ts +115 -115
  132. package/tests/plugin.test.ts +74 -74
  133. package/tests/room.test.ts +106 -106
  134. package/tests/runtime.test.ts +42 -42
  135. package/tests/sandbox.test.ts +46 -46
  136. package/tests/security.test.ts +60 -60
  137. package/tests/templates.test.ts +77 -77
  138. package/tests/v070.test.ts +76 -76
  139. package/tests/versioning.test.ts +75 -75
  140. package/tests/voice.test.ts +61 -61
  141. package/tests/webhook.test.ts +29 -29
  142. package/tests/workflow.test.ts +143 -143
  143. package/tsconfig.json +19 -19
  144. package/vitest.config.ts +9 -9
  145. package/dist/core/streaming.d.ts +0 -56
  146. package/dist/core/streaming.js +0 -160
  147. package/dist/tools/gateway.d.ts +0 -28
  148. package/dist/tools/gateway.js +0 -177
  149. package/src/dtv/data.ts +0 -29
  150. package/src/dtv/trust.ts +0 -43
  151. package/src/dtv/value.ts +0 -47
  152. package/src/marketplace/index.ts +0 -223
package/README.md CHANGED
@@ -1,429 +1,306 @@
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-163_passing-green)]()
10
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://www.typescriptlang.org/)
31
11
 
32
- ### ๐Ÿ”Œ ๅคšๆจกๅž‹ไพ›ๅบ”ๅ•†
12
+ [ๅฟซ้€Ÿๅผ€ๅง‹](#ๅฟซ้€Ÿๅผ€ๅง‹) ยท [CLI ๅ‘ฝไปค](#cli-ๅ‘ฝไปค) ยท [ๆธ ้“](#11-ไธชๆธ ้“) ยท [English](#english)
33
13
 
34
- ```yaml
35
- spec:
36
- provider:
37
- default: deepseek
38
- allowed: [openai, deepseek, qwen, anthropic, ollama]
39
- model: deepseek-chat
40
- ```
41
-
42
- ๆ”ฏๆŒ **DeepSeek**ใ€**้€šไน‰ๅƒ้—ฎ (Qwen)**ใ€**OpenAI**ใ€**Anthropic**ใ€**Ollama**๏ผˆๆœฌๅœฐ๏ผ‰๏ผŒไปฅๅŠไปปไฝ•ๅ…ผๅฎน OpenAI ๆŽฅๅฃ็š„ๆœๅŠกใ€‚
14
+ </div>
43
15
 
44
- ### ๐Ÿ“ก 11 ไธชๆธ ้“๏ผŒไธ€ๅฅ—ไปฃ็ 
16
+ ---
45
17
 
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
- ```
18
+ ## ๐Ÿ’ก ไธ€ๅฅ่ฏไป‹็ป
61
19
 
62
- ### ๐Ÿง  ็Ÿฅ่ฏ†ๅบ“๏ผˆRAG๏ผ‰
20
+ > **ไธๅชๆ˜ฏ Harness๏ผŒๆ˜ฏๆฏ” Harness ้ซ˜ไธ€็ปด็š„ Agent OSใ€‚**
21
+ > ไปŽๅˆ›ๅปบๅˆฐ่ฟ่กŒๅˆฐ็›‘ๆŽง๏ผŒไธ€ไธชๅทฅๅ…ทๆžๅฎš Agent ๅ…จ็”Ÿๅ‘ฝๅ‘จๆœŸใ€‚
63
22
 
64
- ```typescript
65
- import { KnowledgeBase } from 'opc-agent';
23
+ ## ๐ŸŽฏ ๅ’Œ Harness ๆก†ๆžถ็š„ๅŒบๅˆซ
66
24
 
67
- const kb = new KnowledgeBase('./docs');
68
- await kb.addFile('ไบงๅ“ๆ‰‹ๅ†Œ.pdf');
69
- // ๆ™บ่ƒฝไฝ“่‡ชๅŠจๆฃ€็ดข็Ÿฅ่ฏ†ๅบ“๏ผŒๆ— ้œ€้ขๅค–้…็ฝฎ
70
- ```
25
+ | | LangChain | CrewAI | AutoGen | **OPC Agent** |
26
+ |---|---|---|---|---|
27
+ | ๅˆ›ๅปบ | ๅ†™ไปฃ็  | ๅ†™ไปฃ็  | ๅ†™ไปฃ็  | **`opc init` ไธ€้”ฎ** |
28
+ | ้…็ฝฎ | Python/ไปฃ็  | Python | Python | **YAML ๅฃฐๆ˜Žๅผ** |
29
+ | ๆต‹่ฏ• | ่‡ชๅทฑๆญ | ๆ—  | ๆ—  | **ๅ†…็ฝฎๆต‹่ฏ•ๆก†ๆžถ** |
30
+ | ๆธ ้“ | ่‡ชๅทฑๆŽฅ | ๆ—  | ๆ—  | **11 ๆธ ้“ๅผ€็ฎฑๅณ็”จ** |
31
+ | ็›‘ๆŽง | ่‡ชๅทฑๆญ | ๆ—  | ๆ—  | **Traces + Score** |
32
+ | ่ฎฐๅฟ† | ่‡ชๅทฑ็ฎก | ็ฎ€ๅ• | ็ฎ€ๅ• | **DeepBrain ้›†ๆˆ** |
71
33
 
72
- ๅ†…็ฝฎ TF-IDF ๅ‘้‡ๅŒ– + ไฝ™ๅผฆ็›ธไผผๅบฆๆฃ€็ดข๏ผŒๆ•ฐๆฎๆŒไน…ๅŒ–ๅˆฐ `.opc-knowledge.json`๏ผŒๆ— ้œ€ๅค–้ƒจๅ‘้‡ๆ•ฐๆฎๅบ“ใ€‚
34
+ **ๆก†ๆžถ็ฎก"ๆ€Žไนˆ่ท‘"๏ผŒAgent OS ็ฎก"ๅ…จ่ฟ‡็จ‹"ใ€‚**
73
35
 
74
- ### ๐ŸŽญ ๅคšๆ™บ่ƒฝไฝ“็ผ–ๆŽ’
36
+ ## ๅฟซ้€Ÿๅผ€ๅง‹
75
37
 
76
- ```typescript
77
- import { Orchestrator } from 'opc-agent';
38
+ ```bash
39
+ npm install -g opc-agent
78
40
 
79
- const orchestrator = new Orchestrator({
80
- agents: [ๅˆ†่ฏŠๆ™บ่ƒฝไฝ“, ้”€ๅ”ฎๆ™บ่ƒฝไฝ“, ๅฎขๆœๆ™บ่ƒฝไฝ“],
81
- strategy: 'route-by-intent',
82
- });
83
- ```
41
+ # ๅˆ›ๅปบ
42
+ opc init my-agent
43
+ cd my-agent
84
44
 
85
- ๆ”ฏๆŒ้กบๅบๆ‰ง่กŒใ€ๅนถ่กŒๆ‰ง่กŒใ€ๆกไปถ่ทฏ็”ฑใ€ๆ™บ่ƒฝไฝ“็งปไบค๏ผˆhandoff๏ผ‰ใ€‚
45
+ # ๅผ€ๅ‘
46
+ opc dev
86
47
 
87
- ### ๐Ÿงช ๅ†…็ฝฎๆต‹่ฏ•ๆก†ๆžถ
48
+ # ๆต‹่ฏ•
49
+ opc test
88
50
 
89
- ```yaml
90
- spec:
91
- testing:
92
- cases:
93
- - name: ้—ฎๅ€™ๆต‹่ฏ•
94
- input: "ไฝ ๅฅฝ"
95
- expect:
96
- contains: ["ไฝ ๅฅฝ", "ๅธฎ"]
97
- maxLatencyMs: 5000
51
+ # ่ฟ่กŒ
52
+ opc run
98
53
  ```
99
54
 
100
- ```bash
101
- opc test # ่ฟ่กŒๆต‹่ฏ•็”จไพ‹
102
- opc test --watch # ็›‘ๅฌๆจกๅผ
103
- opc test --json # JSON ๆ ผๅผ่พ“ๅ‡บ
104
- ```
55
+ ## OAD ๅฃฐๆ˜Žๅผ้…็ฝฎ
105
56
 
106
- ### ๐Ÿ”ง ๆ’ไปถ็ณป็ปŸ
57
+ ไธ็”จๅ†™ไปฃ็ ๏ผŒ็”จ YAML ๅฎšไน‰ Agent๏ผš
107
58
 
108
59
  ```yaml
109
- spec:
110
- plugins:
111
- - name: logging
112
- - name: analytics
113
- - name: rate-limit
114
- config: { maxPerMinute: 60 }
60
+ id: customer-service
61
+ name: ๅฎขๆœไธ“ๅ‘˜
62
+ version: "1.0.0"
63
+
64
+ model: deepseek-chat
65
+ systemPrompt: |
66
+ ไฝ ๆ˜ฏไธ€ไธชไธ“ไธš็š„ๅฎขๆœ...
67
+
68
+ skills:
69
+ - ticket-management
70
+ - knowledge-base-search
71
+
72
+ channels:
73
+ - type: web
74
+ priority: primary
75
+ - type: telegram
76
+ priority: secondary
77
+ - type: wechat
78
+ priority: secondary
79
+
80
+ memory:
81
+ shortTerm: true
82
+ longTerm:
83
+ provider: deepbrain
115
84
  ```
116
85
 
117
- ๅฎŒๆ•ด็”Ÿๅ‘ฝๅ‘จๆœŸ้’ฉๅญ๏ผš`onInit`ใ€`onMessage`ใ€`onResponse`ใ€`onError`ใ€`onShutdown`ใ€‚
118
-
119
- ### ๐Ÿ”’ ๅฎ‰ๅ…จ็‰นๆ€ง
120
-
121
- - ่พ“ๅ…ฅๆถˆๆฏ’๏ผˆ้˜ฒ XSSใ€ๆณจๅ…ฅๆ”ปๅ‡ป๏ผ‰
122
- - API Key ่ฝฎๆข็ฎก็†
123
- - CORS ้…็ฝฎ
124
- - ๅฎ‰ๅ…จๅ“ๅบ”ๅคด
125
- - ไผš่ฏ้š”็ฆป่ฎค่ฏไธญ้—ดไปถ
126
-
127
- ### ๐Ÿ“Š ็›‘ๆŽงไธŽๅˆ†ๆž
128
-
129
- Web ๆธ ้“ๅ†…็ฝฎไปฅไธ‹็ซฏ็‚น๏ผš
130
-
131
- | ็ซฏ็‚น | ่ฏดๆ˜Ž |
132
- |------|------|
133
- | `GET /api/health` | ๅฅๅบทๆฃ€ๆŸฅ |
134
- | `GET /api/metrics` | Prometheus ๆ–‡ๆœฌๆ ผๅผๆŒ‡ๆ ‡๏ผˆuptimeใ€่ฏทๆฑ‚ๆ•ฐใ€้”™่ฏฏๆ•ฐใ€LLM ๅปถ่ฟŸใ€Token ็”จ้‡็ญ‰๏ผ‰ |
135
- | `GET /api/dashboard` | ๅฎžๆ—ถไปช่กจ็›˜ |
136
-
137
- `opc analytics` ๅ’Œ `opc stats` ๅ‘ฝไปคๅฏๆŸฅ็œ‹็ฆป็บฟๅˆ†ๆžๅฟซ็…งใ€‚
138
-
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
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
161
- ```
162
-
163
- ## ๐Ÿ“‹ 12 ไธชๅผ€็ฎฑๅณ็”จๆจกๆฟ
86
+ ## CLI ๅ‘ฝไปค
164
87
 
165
88
  ```bash
166
- opc init my-agent --template <ๆจกๆฟๅ>
89
+ opc init <name> # ๅˆ›ๅปบๆ–ฐ Agent
90
+ opc dev # ๅผ€ๅ‘ๆจกๅผ๏ผˆ็ƒญ้‡่ฝฝ๏ผ‰
91
+ opc test # ่ฟ่กŒๆต‹่ฏ•
92
+ opc run # ็”Ÿไบง่ฟ่กŒ
93
+ opc logs [-f] # ๆŸฅ็œ‹ Traces ๆ—ฅๅฟ—
94
+ opc brain [--url ...] # ๆŸฅ็œ‹่ฎฐๅฟ†็Šถๆ€
95
+ opc score # ๆŸฅ็œ‹ๆ€ง่ƒฝ่ฏ„ๅˆ†
167
96
  ```
168
97
 
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
- ## ๐Ÿš€ ้ƒจ็ฝฒ
98
+ ## 11 ไธชๆธ ้“
185
99
 
186
- ### Docker ้ƒจ็ฝฒ
100
+ ไธ€ๅฅ—ไปฃ็ ๏ผŒ้ƒจ็ฝฒๅˆฐไปปๆ„ๆธ ้“๏ผš
187
101
 
188
- `opc init` ๅˆ›ๅปบ็š„ๆฏไธช้กน็›ฎ้ƒฝ่‡ชๅธฆ `Dockerfile` ๅ’Œ `docker-compose.yml`๏ผš
102
+ | ๆธ ้“ | ็Šถๆ€ | ่ฏดๆ˜Ž |
103
+ |------|------|------|
104
+ | ๐ŸŒ Web | โœ… | ็ฝ‘้กต่Šๅคฉ |
105
+ | ๐Ÿ“ฑ Telegram | โœ… | Bot API |
106
+ | ๐Ÿ’ฌ Slack | โœ… | Slack App |
107
+ | ๐ŸŽฎ Discord | โœ… | Discord Bot |
108
+ | ๐Ÿ“ง Email | โœ… | IMAP/SMTP |
109
+ | ๐Ÿ’š ๅพฎไฟก | โœ… | ไผไธšๅพฎไฟก/ไธชไบบๅพฎไฟก |
110
+ | ๐Ÿ”ต ้ฃžไนฆ | โœ… | ้ฃžไนฆๆœบๅ™จไบบ |
111
+ | ๐ŸŽค Voice | โœ… | ่ฏญ้Ÿณ้€š่ฏ |
112
+ | ๐Ÿ”Œ WebSocket | โœ… | ๅฎžๆ—ถๅŒๅ‘ |
113
+ | ๐Ÿช Webhook | โœ… | HTTP ๅ›ž่ฐƒ |
114
+ | ๐Ÿ“ก API | โœ… | REST API |
189
115
 
190
- ```bash
191
- docker compose up -d
192
- ```
116
+ ## ๆ ธๅฟƒ็‰นๆ€ง
193
117
 
194
- ### ้ƒจ็ฝฒๅˆฐ OpenClaw
118
+ | ็ฑปๅˆซ | ็‰นๆ€ง |
119
+ |------|------|
120
+ | ๐Ÿ“‹ **้…็ฝฎ** | OAD ๅฃฐๆ˜Žๅผๅฎšไน‰ใ€YAML ้…็ฝฎ |
121
+ | ๐Ÿ“ก **ๆธ ้“** | 11 ไธชๆธ ้“็ปŸไธ€ๆŽฅๅ…ฅ |
122
+ | ๐Ÿงช **ๆต‹่ฏ•** | ๅ†…็ฝฎๆต‹่ฏ•ๆก†ๆžถใ€163 tests |
123
+ | ๐Ÿ”Œ **ๆ’ไปถ** | ๅฏๆ‰ฉๅฑ•ๆŠ€่ƒฝๅ’Œๅทฅๅ…ท็ณป็ปŸ |
124
+ | ๐Ÿ“Š **็›‘ๆŽง** | Traces ่กŒไธบ้‡‡้›†ใ€Score ่ฏ„ๅˆ† |
125
+ | ๐Ÿง  **่ฎฐๅฟ†** | DeepBrain ้›†ๆˆใ€่‡ชๅŠจๅญฆไน  |
126
+ | ๐ŸŒ **ๅ›ฝ้™…ๅŒ–** | ๅ†…็ฝฎ i18n ๆ”ฏๆŒ |
127
+ | ๐Ÿš€ **้ƒจ็ฝฒ** | OpenClaw ็ญ‰ๅนณๅฐไธ€้”ฎ้ƒจ็ฝฒ |
128
+ | ๐Ÿ“ˆ **ๅˆ†ๆž** | Analytics ๆ•ฐๆฎๅˆ†ๆž |
129
+ | ๐Ÿ”„ **ๆตๅผ** | Streaming ๅฎžๆ—ถๅ“ๅบ” |
130
+
131
+ ## ๆžถๆž„
195
132
 
196
- ```bash
197
- opc deploy --target openclaw
198
- opc deploy --target openclaw --install # ๅŒๆ—ถๅ†™ๅ…ฅๆœฌๅœฐ้…็ฝฎ
199
133
  ```
200
-
201
- ็”Ÿๆˆ `IDENTITY.md`ใ€`SOUL.md`ใ€`AGENTS.md` ๅˆฐ `~/.openclaw/agents/{id}/workspace/`ใ€‚
202
-
203
- ### ้ƒจ็ฝฒๅˆฐ Hermes
204
-
205
- ```bash
206
- opc deploy --target hermes
134
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
135
+ โ”‚ OPC Agent OS โ”‚
136
+ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
137
+ โ”‚ ๅˆ›ๅปบ โ”‚ ่ฟ่กŒ โ”‚ ็›‘ๆŽง โ”‚
138
+ โ”‚ opc init โ”‚ 11 ๆธ ้“ โ”‚ Traces โ”‚
139
+ โ”‚ OAD ้…็ฝฎ โ”‚ ๆ’ไปถ็ณป็ปŸ โ”‚ Score โ”‚
140
+ โ”‚ ๆต‹่ฏ•ๆก†ๆžถ โ”‚ ๆตๅผๅ“ๅบ” โ”‚ Analytics โ”‚
141
+ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
142
+ โ”‚ DeepBrain ่ฎฐๅฟ† โ”‚
143
+ โ”‚ learn โ† Traces โ†’ recall โ”‚
144
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
207
145
  ```
208
146
 
209
- ๅฐ† OAD ่ฝฌๆขไธบ Hermes Character ๆ ผๅผ๏ผˆๅŒ…ๅซ personalityใ€bioใ€loreใ€message examples ็ญ‰ๅญ—ๆฎต๏ผ‰ใ€‚
210
-
211
- ## ๐Ÿ“– CLI ๅ‘ฝไปคๅ‚่€ƒ
212
-
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
- ```
147
+ ## ๐Ÿ”— ็”Ÿๆ€
264
148
 
265
- ## ๐Ÿ”‘ OAD ้…็ฝฎๆ–‡ไปถ้€Ÿ่งˆ
149
+ | ้กน็›ฎ | ๅฎšไฝ | ๅ…ณ็ณป |
150
+ |------|------|------|
151
+ | [deepbrain](https://github.com/Deepleaper/deepbrain) | Agent ่ฎฐๅฟ†ๅผ•ๆ“Ž | Traces โ†’ learn() |
152
+ | **opc-agent** | Agent OS | โ† ไฝ ๅœจ่ฟ™้‡Œ |
153
+ | [agentkits](https://github.com/Deepleaper/agentkits) | ๅธฆ่ฎฐๅฟ†็š„ OpenRouter | ๆจกๅž‹่ฐƒ็”จๅฑ‚ |
154
+ | [agent-workstation](https://github.com/Deepleaper/agent-workstation) | ่™šๆ‹Ÿๅทฅไฝๆจกๆฟ | `opc init --template` |
266
155
 
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
- ```
156
+ ## License
308
157
 
309
- ## ๐Ÿค ่ดก็ŒฎๆŒ‡ๅ—
158
+ Apache-2.0
310
159
 
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
- ```
160
+ ---
318
161
 
319
- ๆฌข่ฟŽๆไบค Issue ๅ’Œ Pull Requestใ€‚
162
+ <a name="english"></a>
320
163
 
321
- ## ๐Ÿ“„ ๅผ€ๆบๅ่ฎฎ
164
+ ## English
322
165
 
323
- [Apache License 2.0](LICENSE) โ€” ๅ•†็”จๅ’Œๅผ€ๆบ้กน็›ฎๅ‡ๅฏ่‡ช็”ฑไฝฟ็”จใ€‚
166
+ ## ๐Ÿ’ก What Is OPC Agent?
324
167
 
325
- ---
168
+ > **Not just a Harness โ€” it's an Agent OS, one dimension above Harness frameworks.**
169
+ > From creation to runtime to monitoring, one tool for the entire Agent lifecycle.
326
170
 
327
- <details>
328
- <summary id="english">๐Ÿ‡บ๐Ÿ‡ธ English</summary>
171
+ ## ๐ŸŽฏ How It Differs from Harness Frameworks
329
172
 
330
- ## OPC Agent
173
+ | | LangChain | CrewAI | AutoGen | **OPC Agent** |
174
+ |---|---|---|---|---|
175
+ | Creation | Write code | Write code | Write code | **`opc init` one command** |
176
+ | Configuration | Python/code | Python | Python | **YAML declarative** |
177
+ | Testing | DIY | None | None | **Built-in test framework** |
178
+ | Channels | DIY | None | None | **11 channels out-of-the-box** |
179
+ | Monitoring | DIY | None | None | **Traces + Score** |
180
+ | Memory | DIY | Basic | Basic | **DeepBrain integration** |
331
181
 
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.
182
+ **Frameworks manage "how to run." Agent OS manages "the entire process."**
333
183
 
334
184
  ## Quick Start
335
185
 
336
186
  ```bash
337
187
  npm install -g opc-agent
188
+
189
+ # Create
338
190
  opc init my-agent
339
191
  cd my-agent
340
- opc run
341
- ```
342
-
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
192
 
386
- ```bash
387
- docker compose up -d
388
- ```
193
+ # Develop
194
+ opc dev
389
195
 
390
- ### OpenClaw
196
+ # Test
197
+ opc test
391
198
 
392
- ```bash
393
- opc deploy --target openclaw
199
+ # Run
200
+ opc run
394
201
  ```
395
202
 
396
- Generates `IDENTITY.md`, `SOUL.md`, `AGENTS.md` into `~/.openclaw/agents/{id}/workspace/`.
203
+ ## OAD Declarative Configuration
397
204
 
398
- ### Hermes
205
+ Define your Agent with YAML โ€” no code required:
399
206
 
400
- ```bash
401
- opc deploy --target hermes
207
+ ```yaml
208
+ id: customer-service
209
+ name: Customer Service Rep
210
+ version: "1.0.0"
211
+
212
+ model: deepseek-chat
213
+ systemPrompt: |
214
+ You are a professional customer service agent...
215
+
216
+ skills:
217
+ - ticket-management
218
+ - knowledge-base-search
219
+
220
+ channels:
221
+ - type: web
222
+ priority: primary
223
+ - type: telegram
224
+ priority: secondary
225
+ - type: wechat
226
+ priority: secondary
227
+
228
+ memory:
229
+ shortTerm: true
230
+ longTerm:
231
+ provider: deepbrain
402
232
  ```
403
233
 
404
- Converts OAD to Hermes Character format (personality, bio, lore, message examples, style guides).
405
-
406
- ## SDK
234
+ ## CLI Commands
407
235
 
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();
236
+ ```bash
237
+ opc init <name> # Create a new Agent
238
+ opc dev # Development mode (hot reload)
239
+ opc test # Run tests
240
+ opc run # Production run
241
+ opc logs [-f] # View Traces logs
242
+ opc brain [--url ...] # View memory status
243
+ opc score # View performance score
415
244
  ```
416
245
 
417
- ## License
246
+ ## 11 Channels
247
+
248
+ One codebase, deploy to any channel:
249
+
250
+ | Channel | Status | Description |
251
+ |---------|--------|-------------|
252
+ | ๐ŸŒ Web | โœ… | Web chat |
253
+ | ๐Ÿ“ฑ Telegram | โœ… | Bot API |
254
+ | ๐Ÿ’ฌ Slack | โœ… | Slack App |
255
+ | ๐ŸŽฎ Discord | โœ… | Discord Bot |
256
+ | ๐Ÿ“ง Email | โœ… | IMAP/SMTP |
257
+ | ๐Ÿ’š WeChat | โœ… | Enterprise/Personal WeChat |
258
+ | ๐Ÿ”ต Feishu | โœ… | Feishu (Lark) Bot |
259
+ | ๐ŸŽค Voice | โœ… | Voice call |
260
+ | ๐Ÿ”Œ WebSocket | โœ… | Real-time bidirectional |
261
+ | ๐Ÿช Webhook | โœ… | HTTP callback |
262
+ | ๐Ÿ“ก API | โœ… | REST API |
263
+
264
+ ## Full Feature Set
265
+
266
+ | Category | Features |
267
+ |----------|----------|
268
+ | ๐Ÿ“‹ **Configuration** | OAD declarative definition, YAML config |
269
+ | ๐Ÿ“ก **Channels** | 11 channels, unified access |
270
+ | ๐Ÿงช **Testing** | Built-in test framework, 163 tests |
271
+ | ๐Ÿ”Œ **Plugins** | Extensible skills and tools system |
272
+ | ๐Ÿ“Š **Monitoring** | Traces behavior collection, Score rating |
273
+ | ๐Ÿง  **Memory** | DeepBrain integration, auto-learning |
274
+ | ๐ŸŒ **i18n** | Built-in internationalization support |
275
+ | ๐Ÿš€ **Deployment** | One-click deploy on OpenClaw and other platforms |
276
+ | ๐Ÿ“ˆ **Analytics** | Data analytics |
277
+ | ๐Ÿ”„ **Streaming** | Real-time streaming responses |
278
+
279
+ ## Architecture
418
280
 
419
- [Apache License 2.0](LICENSE)
420
-
421
- ---
281
+ ```
282
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
283
+ โ”‚ OPC Agent OS โ”‚
284
+ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
285
+ โ”‚ Create โ”‚ Run โ”‚ Monitor โ”‚
286
+ โ”‚ opc init โ”‚ 11 Chan. โ”‚ Traces โ”‚
287
+ โ”‚ OAD Configโ”‚ Plugins โ”‚ Score โ”‚
288
+ โ”‚ Test Fwk โ”‚ Streaming โ”‚ Analytics โ”‚
289
+ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
290
+ โ”‚ DeepBrain Memory โ”‚
291
+ โ”‚ learn โ† Traces โ†’ recall โ”‚
292
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
293
+ ```
422
294
 
423
- Built with โค๏ธ by [Deepleaper](https://www.deepleaper.com)
295
+ ## ๐Ÿ”— Ecosystem
424
296
 
425
- </details>
297
+ | Project | Role | Relationship |
298
+ |---------|------|-------------|
299
+ | [deepbrain](https://github.com/Deepleaper/deepbrain) | Agent Memory Engine | Traces โ†’ learn() |
300
+ | **opc-agent** | Agent OS | โ† You are here |
301
+ | [agentkits](https://github.com/Deepleaper/agentkits) | OpenRouter with Memory | Model call layer |
302
+ | [agent-workstation](https://github.com/Deepleaper/agent-workstation) | Virtual Role Templates | `opc init --template` |
426
303
 
427
- ---
304
+ ## License
428
305
 
429
- <p align="center">็”ฑ <a href="https://www.deepleaper.com">่ทƒ็›Ÿ็ง‘ๆŠ€ (Deepleaper)</a> ็”จ โค๏ธ ๆ‰“้€ </p>
306
+ Apache-2.0