opc-agent 1.4.0 → 1.4.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 (192) hide show
  1. package/CHANGELOG.md +69 -23
  2. package/CONTRIBUTING.md +60 -21
  3. package/README.md +358 -235
  4. package/README.zh-CN.md +415 -415
  5. package/dist/channels/slack.js +10 -93
  6. package/dist/channels/web.d.ts +0 -10
  7. package/dist/channels/web.js +2 -33
  8. package/dist/cli.js +60 -255
  9. package/dist/core/dashboard.d.ts +35 -0
  10. package/dist/core/dashboard.js +157 -0
  11. package/dist/core/fast-mode.d.ts +27 -0
  12. package/dist/core/fast-mode.js +59 -0
  13. package/dist/core/priority.d.ts +52 -0
  14. package/dist/core/priority.js +102 -0
  15. package/dist/core/runtime.d.ts +0 -4
  16. package/dist/core/runtime.js +0 -27
  17. package/dist/deploy/hermes.js +22 -22
  18. package/dist/deploy/openclaw.js +40 -31
  19. package/dist/index.d.ts +14 -3
  20. package/dist/index.js +20 -6
  21. package/dist/memory/cloud-storage.d.ts +40 -0
  22. package/dist/memory/cloud-storage.js +211 -0
  23. package/dist/providers/index.d.ts +1 -1
  24. package/dist/providers/index.js +1 -7
  25. package/dist/schema/oad.d.ts +2 -1
  26. package/dist/templates/code-reviewer.d.ts +8 -0
  27. package/dist/templates/code-reviewer.js +9 -5
  28. package/dist/templates/customer-service.d.ts +8 -0
  29. package/dist/templates/customer-service.js +6 -2
  30. package/dist/templates/data-analyst.d.ts +8 -0
  31. package/dist/templates/data-analyst.js +9 -5
  32. package/dist/templates/knowledge-base.d.ts +8 -0
  33. package/dist/templates/knowledge-base.js +6 -2
  34. package/dist/templates/sales-assistant.d.ts +8 -0
  35. package/dist/templates/sales-assistant.js +8 -4
  36. package/dist/templates/teacher.d.ts +8 -0
  37. package/dist/templates/teacher.js +10 -6
  38. package/docs/.vitepress/config.ts +103 -103
  39. package/docs/api/cli.md +48 -48
  40. package/docs/api/oad-schema.md +64 -64
  41. package/docs/api/sdk.md +80 -80
  42. package/docs/guide/concepts.md +51 -51
  43. package/docs/guide/configuration.md +79 -79
  44. package/docs/guide/deployment.md +42 -42
  45. package/docs/guide/getting-started.md +44 -44
  46. package/docs/guide/templates.md +28 -28
  47. package/docs/guide/testing.md +84 -84
  48. package/docs/index.md +27 -27
  49. package/docs/zh/api/cli.md +54 -54
  50. package/docs/zh/api/oad-schema.md +87 -87
  51. package/docs/zh/api/sdk.md +102 -102
  52. package/docs/zh/guide/concepts.md +104 -104
  53. package/docs/zh/guide/configuration.md +135 -135
  54. package/docs/zh/guide/deployment.md +81 -81
  55. package/docs/zh/guide/getting-started.md +82 -82
  56. package/docs/zh/guide/templates.md +84 -84
  57. package/docs/zh/guide/testing.md +88 -88
  58. package/docs/zh/index.md +27 -27
  59. package/examples/customer-service-demo/README.md +90 -90
  60. package/examples/customer-service-demo/oad.yaml +107 -107
  61. package/package.json +1 -1
  62. package/src/analytics/index.ts +66 -66
  63. package/src/channels/discord.ts +192 -192
  64. package/src/channels/email.ts +177 -177
  65. package/src/channels/feishu.ts +236 -236
  66. package/src/channels/index.ts +15 -15
  67. package/src/channels/slack.ts +160 -217
  68. package/src/channels/telegram.ts +90 -90
  69. package/src/channels/voice.ts +106 -106
  70. package/src/channels/web.ts +2 -38
  71. package/src/channels/webhook.ts +199 -199
  72. package/src/channels/websocket.ts +87 -87
  73. package/src/channels/wechat.ts +149 -149
  74. package/src/cli.ts +58 -282
  75. package/src/core/a2a.ts +143 -143
  76. package/src/core/agent.ts +152 -152
  77. package/src/core/analytics-engine.ts +186 -186
  78. package/src/core/auth.ts +57 -57
  79. package/src/core/cache.ts +141 -141
  80. package/src/core/compose.ts +77 -77
  81. package/src/core/config.ts +14 -14
  82. package/src/core/dashboard.ts +219 -0
  83. package/src/core/errors.ts +148 -148
  84. package/src/core/fast-mode.ts +75 -0
  85. package/src/core/hitl.ts +138 -138
  86. package/src/core/logger.ts +57 -57
  87. package/src/core/orchestrator.ts +215 -215
  88. package/src/core/performance.ts +187 -187
  89. package/src/core/priority.ts +140 -0
  90. package/src/core/rate-limiter.ts +128 -128
  91. package/src/core/room.ts +109 -109
  92. package/src/core/runtime.ts +152 -183
  93. package/src/core/sandbox.ts +101 -101
  94. package/src/core/security.ts +171 -171
  95. package/src/core/types.ts +68 -68
  96. package/src/core/versioning.ts +106 -106
  97. package/src/core/watch.ts +178 -178
  98. package/src/core/workflow.ts +235 -235
  99. package/src/deploy/hermes.ts +156 -156
  100. package/src/deploy/openclaw.ts +200 -190
  101. package/src/dtv/data.ts +29 -0
  102. package/src/dtv/trust.ts +43 -0
  103. package/src/dtv/value.ts +47 -0
  104. package/src/i18n/index.ts +216 -216
  105. package/src/index.ts +16 -3
  106. package/src/marketplace/index.ts +223 -0
  107. package/src/memory/cloud-storage.ts +217 -0
  108. package/src/memory/deepbrain.ts +108 -108
  109. package/src/memory/index.ts +34 -34
  110. package/src/plugins/index.ts +208 -208
  111. package/src/providers/index.ts +1 -9
  112. package/src/schema/oad.ts +155 -154
  113. package/src/skills/base.ts +16 -16
  114. package/src/skills/document.ts +100 -100
  115. package/src/skills/http.ts +35 -35
  116. package/src/skills/index.ts +27 -27
  117. package/src/skills/scheduler.ts +80 -80
  118. package/src/skills/webhook-trigger.ts +59 -59
  119. package/src/templates/code-reviewer.ts +34 -30
  120. package/src/templates/customer-service.ts +80 -76
  121. package/src/templates/data-analyst.ts +70 -66
  122. package/src/templates/executive-assistant.ts +71 -71
  123. package/src/templates/financial-advisor.ts +60 -60
  124. package/src/templates/knowledge-base.ts +31 -27
  125. package/src/templates/legal-assistant.ts +71 -71
  126. package/src/templates/sales-assistant.ts +79 -75
  127. package/src/templates/teacher.ts +79 -75
  128. package/src/testing/index.ts +181 -181
  129. package/src/tools/calculator.ts +73 -73
  130. package/src/tools/datetime.ts +149 -149
  131. package/src/tools/json-transform.ts +187 -187
  132. package/src/tools/mcp.ts +76 -76
  133. package/src/tools/text-analysis.ts +116 -116
  134. package/templates/Dockerfile +15 -15
  135. package/templates/code-reviewer/README.md +27 -27
  136. package/templates/code-reviewer/oad.yaml +41 -41
  137. package/templates/customer-service/README.md +22 -22
  138. package/templates/customer-service/oad.yaml +36 -36
  139. package/templates/docker-compose.yml +21 -21
  140. package/templates/ecommerce-assistant/README.md +45 -45
  141. package/templates/ecommerce-assistant/oad.yaml +47 -47
  142. package/templates/knowledge-base/README.md +28 -28
  143. package/templates/knowledge-base/oad.yaml +38 -38
  144. package/templates/sales-assistant/README.md +26 -26
  145. package/templates/sales-assistant/oad.yaml +43 -43
  146. package/templates/tech-support/README.md +43 -43
  147. package/templates/tech-support/oad.yaml +45 -45
  148. package/tests/a2a.test.ts +66 -66
  149. package/tests/agent.test.ts +72 -72
  150. package/tests/analytics.test.ts +50 -50
  151. package/tests/channel.test.ts +39 -39
  152. package/tests/e2e.test.ts +134 -134
  153. package/tests/errors.test.ts +83 -83
  154. package/tests/hitl.test.ts +71 -71
  155. package/tests/i18n.test.ts +41 -41
  156. package/tests/mcp.test.ts +54 -54
  157. package/tests/oad.test.ts +68 -68
  158. package/tests/performance.test.ts +115 -115
  159. package/tests/plugin.test.ts +74 -74
  160. package/tests/room.test.ts +106 -106
  161. package/tests/runtime.test.ts +42 -42
  162. package/tests/sandbox.test.ts +46 -46
  163. package/tests/security.test.ts +60 -60
  164. package/tests/templates.test.ts +77 -77
  165. package/tests/v070.test.ts +76 -76
  166. package/tests/versioning.test.ts +75 -75
  167. package/tests/voice.test.ts +61 -61
  168. package/tests/webhook.test.ts +29 -29
  169. package/tests/workflow.test.ts +143 -143
  170. package/tsconfig.json +19 -19
  171. package/vitest.config.ts +9 -9
  172. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
  173. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  174. package/.github/PULL_REQUEST_TEMPLATE.md +0 -13
  175. package/.github/workflows/ci.yml +0 -24
  176. package/dist/traces/index.d.ts +0 -49
  177. package/dist/traces/index.js +0 -102
  178. package/examples/README.md +0 -22
  179. package/examples/basic-agent.ts +0 -90
  180. package/examples/brain-integration.ts +0 -71
  181. package/examples/multi-channel.ts +0 -74
  182. package/src/traces/index.ts +0 -132
  183. package/test-agent/Dockerfile +0 -9
  184. package/test-agent/README.md +0 -50
  185. package/test-agent/agent.yaml +0 -23
  186. package/test-agent/docker-compose.yml +0 -11
  187. package/test-agent/oad.yaml +0 -31
  188. package/test-agent/package-lock.json +0 -1492
  189. package/test-agent/package.json +0 -18
  190. package/test-agent/src/index.ts +0 -24
  191. package/test-agent/src/skills/echo.ts +0 -15
  192. package/test-agent/tsconfig.json +0 -25
package/README.md CHANGED
@@ -1,306 +1,429 @@
1
- <div align="center">
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>
2
14
 
3
- # 🤖 OPC Agent
15
+ ---
16
+
17
+ OPC Agent 是一个 **TypeScript 优先的开放智能体框架**,由 [跃盟科技 (Deepleaper)](https://www.deepleaper.com) 开发。用一个 YAML 文件(OAD)定义智能体,接入任意大语言模型,一键部署到多个渠道。
4
18
 
5
- **Agent OS AI Agent 全生命周期操作系统**
19
+ ## 快速开始(30 秒)
6
20
 
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/)
21
+ ```bash
22
+ npm install -g opc-agent
23
+ opc init my-agent
24
+ cd my-agent
25
+ opc run
26
+ ```
11
27
 
12
- [快速开始](#快速开始) · [CLI 命令](#cli-命令) · [渠道](#11-个渠道) · [English](#english)
28
+ 访问 `http://localhost:3000`,内置 Web 对话界面即刻可用。
13
29
 
14
- </div>
30
+ ## ✨ 功能特性
15
31
 
16
- ---
32
+ ### 🔌 多模型供应商
17
33
 
18
- ## 💡 一句话介绍
34
+ ```yaml
35
+ spec:
36
+ provider:
37
+ default: deepseek
38
+ allowed: [openai, deepseek, qwen, anthropic, ollama]
39
+ model: deepseek-chat
40
+ ```
19
41
 
20
- > **不只是 Harness,是比 Harness 高一维的 Agent OS。**
21
- > 从创建到运行到监控,一个工具搞定 Agent 全生命周期。
42
+ 支持 **DeepSeek**、**通义千问 (Qwen)**、**OpenAI**、**Anthropic**、**Ollama**(本地),以及任何兼容 OpenAI 接口的服务。
22
43
 
23
- ## 🎯 Harness 框架的区别
44
+ ### 📡 11 个渠道,一套代码
24
45
 
25
- | | LangChain | CrewAI | AutoGen | **OPC Agent** |
26
- |---|---|---|---|---|
27
- | 创建 | 写代码 | 写代码 | 写代码 | **`opc init` 一键** |
28
- | 配置 | Python/代码 | Python | Python | **YAML 声明式** |
29
- | 测试 | 自己搭 | 无 | 无 | **内置测试框架** |
30
- | 渠道 | 自己接 | 无 | 无 | **11 渠道开箱即用** |
31
- | 监控 | 自己搭 | 无 | 无 | **Traces + Score** |
32
- | 记忆 | 自己管 | 简单 | 简单 | **DeepBrain 集成** |
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
+ ```
33
61
 
34
- **框架管"怎么跑",Agent OS 管"全过程"。**
62
+ ### 🧠 知识库(RAG)
35
63
 
36
- ## 快速开始
64
+ ```typescript
65
+ import { KnowledgeBase } from 'opc-agent';
37
66
 
38
- ```bash
39
- npm install -g opc-agent
67
+ const kb = new KnowledgeBase('./docs');
68
+ await kb.addFile('产品手册.pdf');
69
+ // 智能体自动检索知识库,无需额外配置
70
+ ```
40
71
 
41
- # 创建
42
- opc init my-agent
43
- cd my-agent
72
+ 内置 TF-IDF 向量化 + 余弦相似度检索,数据持久化到 `.opc-knowledge.json`,无需外部向量数据库。
44
73
 
45
- # 开发
46
- opc dev
74
+ ### 🎭 多智能体编排
47
75
 
48
- # 测试
49
- opc test
76
+ ```typescript
77
+ import { Orchestrator } from 'opc-agent';
50
78
 
51
- # 运行
52
- opc run
79
+ const orchestrator = new Orchestrator({
80
+ agents: [分诊智能体, 销售智能体, 客服智能体],
81
+ strategy: 'route-by-intent',
82
+ });
53
83
  ```
54
84
 
55
- ## OAD 声明式配置
85
+ 支持顺序执行、并行执行、条件路由、智能体移交(handoff)。
56
86
 
57
- 不用写代码,用 YAML 定义 Agent:
87
+ ### 🧪 内置测试框架
58
88
 
59
89
  ```yaml
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
90
+ spec:
91
+ testing:
92
+ cases:
93
+ - name: 问候测试
94
+ input: "你好"
95
+ expect:
96
+ contains: ["你好", "帮"]
97
+ maxLatencyMs: 5000
84
98
  ```
85
99
 
86
- ## CLI 命令
87
-
88
100
  ```bash
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 # 查看性能评分
101
+ opc test # 运行测试用例
102
+ opc test --watch # 监听模式
103
+ opc test --json # JSON 格式输出
96
104
  ```
97
105
 
98
- ## 11 个渠道
106
+ ### 🔧 插件系统
99
107
 
100
- 一套代码,部署到任意渠道:
108
+ ```yaml
109
+ spec:
110
+ plugins:
111
+ - name: logging
112
+ - name: analytics
113
+ - name: rate-limit
114
+ config: { maxPerMinute: 60 }
115
+ ```
116
+
117
+ 完整生命周期钩子:`onInit`、`onMessage`、`onResponse`、`onError`、`onShutdown`。
118
+
119
+ ### 🔒 安全特性
120
+
121
+ - 输入消毒(防 XSS、注入攻击)
122
+ - API Key 轮换管理
123
+ - CORS 配置
124
+ - 安全响应头
125
+ - 会话隔离认证中间件
101
126
 
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 |
127
+ ### 📊 监控与分析
115
128
 
116
- ## 核心特性
129
+ Web 渠道内置以下端点:
117
130
 
118
- | 类别 | 特性 |
131
+ | 端点 | 说明 |
119
132
  |------|------|
120
- | 📋 **配置** | OAD 声明式定义、YAML 配置 |
121
- | 📡 **渠道** | 11 个渠道统一接入 |
122
- | 🧪 **测试** | 内置测试框架、163 tests |
123
- | 🔌 **插件** | 可扩展技能和工具系统 |
124
- | 📊 **监控** | Traces 行为采集、Score 评分 |
125
- | 🧠 **记忆** | DeepBrain 集成、自动学习 |
126
- | 🌍 **国际化** | 内置 i18n 支持 |
127
- | 🚀 **部署** | OpenClaw 等平台一键部署 |
128
- | 📈 **分析** | Analytics 数据分析 |
129
- | 🔄 **流式** | Streaming 实时响应 |
130
-
131
- ## 架构
133
+ | `GET /api/health` | 健康检查 |
134
+ | `GET /api/metrics` | Prometheus 文本格式指标(uptime、请求数、错误数、LLM 延迟、Token 用量等) |
135
+ | `GET /api/dashboard` | 实时仪表盘 |
136
+
137
+ `opc analytics` `opc stats` 命令可查看离线分析快照。
138
+
139
+ ## 🏗️ 架构
132
140
 
133
141
  ```
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
- └─────────────────────────────────────────┘
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
+ └─────────────────────────────────────────────────┘
145
161
  ```
146
162
 
147
- ## 🔗 生态
163
+ ## 📋 12 个开箱即用模板
148
164
 
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` |
165
+ ```bash
166
+ opc init my-agent --template <模板名>
167
+ ```
155
168
 
156
- ## License
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` | 教学助手 | 课程设计 + 出题 |
157
183
 
158
- Apache-2.0
184
+ ## 🚀 部署
159
185
 
160
- ---
186
+ ### Docker 部署
161
187
 
162
- <a name="english"></a>
188
+ `opc init` 创建的每个项目都自带 `Dockerfile` 和 `docker-compose.yml`:
163
189
 
164
- ## English
190
+ ```bash
191
+ docker compose up -d
192
+ ```
165
193
 
166
- ## 💡 What Is OPC Agent?
194
+ ### 部署到 OpenClaw
167
195
 
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.
196
+ ```bash
197
+ opc deploy --target openclaw
198
+ opc deploy --target openclaw --install # 同时写入本地配置
199
+ ```
170
200
 
171
- ## 🎯 How It Differs from Harness Frameworks
201
+ 生成 `IDENTITY.md`、`SOUL.md`、`AGENTS.md` `~/.openclaw/agents/{id}/workspace/`。
172
202
 
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** |
203
+ ### 部署到 Hermes
181
204
 
182
- **Frameworks manage "how to run." Agent OS manages "the entire process."**
205
+ ```bash
206
+ opc deploy --target hermes
207
+ ```
183
208
 
184
- ## Quick Start
209
+ OAD 转换为 Hermes Character 格式(包含 personality、bio、lore、message examples 等字段)。
185
210
 
186
- ```bash
187
- npm install -g opc-agent
211
+ ## 📖 CLI 命令参考
188
212
 
189
- # Create
190
- opc init my-agent
191
- cd my-agent
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
+ ```
192
264
 
193
- # Develop
194
- opc dev
265
+ ## 🔑 OAD 配置文件速览
195
266
 
196
- # Test
197
- opc test
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
+ ```
198
308
 
199
- # Run
200
- opc run
309
+ ## 🤝 贡献指南
310
+
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 个测试
201
317
  ```
202
318
 
203
- ## OAD Declarative Configuration
319
+ 欢迎提交 Issue Pull Request。
204
320
 
205
- Define your Agent with YAML — no code required:
321
+ ## 📄 开源协议
206
322
 
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
323
+ [Apache License 2.0](LICENSE) — 商用和开源项目均可自由使用。
324
+
325
+ ---
326
+
327
+ <details>
328
+ <summary id="english">🇺🇸 English</summary>
329
+
330
+ ## OPC Agent
331
+
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.
333
+
334
+ ## Quick Start
335
+
336
+ ```bash
337
+ npm install -g opc-agent
338
+ opc init my-agent
339
+ cd my-agent
340
+ opc run
232
341
  ```
233
342
 
234
- ## CLI Commands
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`:
235
385
 
236
386
  ```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
387
+ docker compose up -d
244
388
  ```
245
389
 
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
390
+ ### OpenClaw
280
391
 
392
+ ```bash
393
+ opc deploy --target openclaw
281
394
  ```
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
- └─────────────────────────────────────────┘
395
+
396
+ Generates `IDENTITY.md`, `SOUL.md`, `AGENTS.md` into `~/.openclaw/agents/{id}/workspace/`.
397
+
398
+ ### Hermes
399
+
400
+ ```bash
401
+ opc deploy --target hermes
293
402
  ```
294
403
 
295
- ## 🔗 Ecosystem
404
+ Converts OAD to Hermes Character format (personality, bio, lore, message examples, style guides).
405
+
406
+ ## SDK
296
407
 
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` |
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();
415
+ ```
303
416
 
304
417
  ## License
305
418
 
306
- Apache-2.0
419
+ [Apache License 2.0](LICENSE)
420
+
421
+ ---
422
+
423
+ Built with ❤️ by [Deepleaper](https://www.deepleaper.com)
424
+
425
+ </details>
426
+
427
+ ---
428
+
429
+ <p align="center">由 <a href="https://www.deepleaper.com">跃盟科技 (Deepleaper)</a> 用 ❤️ 打造</p>