opc-agent 1.1.1 → 1.1.2

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 (139) hide show
  1. package/CHANGELOG.md +51 -51
  2. package/CONTRIBUTING.md +75 -75
  3. package/README.md +222 -126
  4. package/README.zh-CN.md +129 -80
  5. package/dist/channels/web.js +256 -256
  6. package/dist/deploy/hermes.js +22 -22
  7. package/dist/deploy/openclaw.js +31 -31
  8. package/dist/templates/code-reviewer.js +5 -5
  9. package/dist/templates/customer-service.js +2 -2
  10. package/dist/templates/data-analyst.js +5 -5
  11. package/dist/templates/knowledge-base.js +2 -2
  12. package/dist/templates/sales-assistant.js +4 -4
  13. package/dist/templates/teacher.js +6 -6
  14. package/docs/.vitepress/config.ts +103 -103
  15. package/docs/api/cli.md +48 -48
  16. package/docs/api/oad-schema.md +64 -64
  17. package/docs/api/sdk.md +80 -80
  18. package/docs/guide/concepts.md +51 -51
  19. package/docs/guide/configuration.md +79 -79
  20. package/docs/guide/deployment.md +42 -42
  21. package/docs/guide/getting-started.md +44 -44
  22. package/docs/guide/templates.md +28 -28
  23. package/docs/guide/testing.md +84 -84
  24. package/docs/index.md +27 -27
  25. package/docs/zh/api/cli.md +54 -54
  26. package/docs/zh/api/oad-schema.md +87 -87
  27. package/docs/zh/api/sdk.md +102 -102
  28. package/docs/zh/guide/concepts.md +104 -104
  29. package/docs/zh/guide/configuration.md +135 -135
  30. package/docs/zh/guide/deployment.md +81 -81
  31. package/docs/zh/guide/getting-started.md +82 -82
  32. package/docs/zh/guide/templates.md +84 -84
  33. package/docs/zh/guide/testing.md +88 -88
  34. package/docs/zh/index.md +27 -27
  35. package/examples/customer-service-demo/README.md +90 -90
  36. package/examples/customer-service-demo/oad.yaml +107 -107
  37. package/package.json +1 -1
  38. package/src/analytics/index.ts +66 -66
  39. package/src/channels/discord.ts +192 -192
  40. package/src/channels/email.ts +177 -177
  41. package/src/channels/feishu.ts +236 -236
  42. package/src/channels/index.ts +15 -15
  43. package/src/channels/slack.ts +160 -160
  44. package/src/channels/telegram.ts +90 -90
  45. package/src/channels/voice.ts +106 -106
  46. package/src/channels/web.ts +596 -596
  47. package/src/channels/webhook.ts +199 -199
  48. package/src/channels/websocket.ts +87 -87
  49. package/src/channels/wechat.ts +149 -149
  50. package/src/core/a2a.ts +143 -143
  51. package/src/core/agent.ts +152 -152
  52. package/src/core/analytics-engine.ts +186 -186
  53. package/src/core/auth.ts +57 -57
  54. package/src/core/cache.ts +141 -141
  55. package/src/core/compose.ts +77 -77
  56. package/src/core/config.ts +14 -14
  57. package/src/core/errors.ts +148 -148
  58. package/src/core/hitl.ts +138 -138
  59. package/src/core/knowledge.ts +210 -210
  60. package/src/core/logger.ts +57 -57
  61. package/src/core/orchestrator.ts +215 -215
  62. package/src/core/performance.ts +187 -187
  63. package/src/core/rate-limiter.ts +128 -128
  64. package/src/core/room.ts +109 -109
  65. package/src/core/runtime.ts +152 -152
  66. package/src/core/sandbox.ts +101 -101
  67. package/src/core/security.ts +171 -171
  68. package/src/core/types.ts +68 -68
  69. package/src/core/versioning.ts +106 -106
  70. package/src/core/watch.ts +178 -178
  71. package/src/core/workflow.ts +235 -235
  72. package/src/deploy/hermes.ts +156 -156
  73. package/src/deploy/openclaw.ts +200 -200
  74. package/src/dtv/data.ts +29 -29
  75. package/src/dtv/trust.ts +43 -43
  76. package/src/dtv/value.ts +47 -47
  77. package/src/i18n/index.ts +216 -216
  78. package/src/index.ts +110 -110
  79. package/src/marketplace/index.ts +223 -223
  80. package/src/memory/deepbrain.ts +108 -108
  81. package/src/memory/index.ts +34 -34
  82. package/src/plugins/index.ts +208 -208
  83. package/src/providers/index.ts +183 -183
  84. package/src/schema/oad.ts +155 -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 +34 -34
  92. package/src/templates/customer-service.ts +80 -80
  93. package/src/templates/data-analyst.ts +70 -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 +31 -31
  97. package/src/templates/legal-assistant.ts +71 -71
  98. package/src/templates/sales-assistant.ts +79 -79
  99. package/src/templates/teacher.ts +79 -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/templates/Dockerfile +15 -15
  107. package/templates/code-reviewer/README.md +27 -27
  108. package/templates/code-reviewer/oad.yaml +41 -41
  109. package/templates/customer-service/README.md +22 -22
  110. package/templates/customer-service/oad.yaml +36 -36
  111. package/templates/docker-compose.yml +21 -21
  112. package/templates/knowledge-base/README.md +28 -28
  113. package/templates/knowledge-base/oad.yaml +38 -38
  114. package/templates/sales-assistant/README.md +26 -26
  115. package/templates/sales-assistant/oad.yaml +43 -43
  116. package/tests/a2a.test.ts +66 -66
  117. package/tests/agent.test.ts +72 -72
  118. package/tests/analytics.test.ts +50 -50
  119. package/tests/channel.test.ts +39 -39
  120. package/tests/e2e.test.ts +134 -134
  121. package/tests/errors.test.ts +83 -83
  122. package/tests/hitl.test.ts +71 -71
  123. package/tests/i18n.test.ts +41 -41
  124. package/tests/mcp.test.ts +54 -54
  125. package/tests/oad.test.ts +68 -68
  126. package/tests/performance.test.ts +115 -115
  127. package/tests/plugin.test.ts +74 -74
  128. package/tests/room.test.ts +106 -106
  129. package/tests/runtime.test.ts +42 -42
  130. package/tests/sandbox.test.ts +46 -46
  131. package/tests/security.test.ts +60 -60
  132. package/tests/templates.test.ts +77 -77
  133. package/tests/v070.test.ts +76 -76
  134. package/tests/versioning.test.ts +75 -75
  135. package/tests/voice.test.ts +61 -61
  136. package/tests/webhook.test.ts +29 -29
  137. package/tests/workflow.test.ts +143 -143
  138. package/tsconfig.json +19 -19
  139. package/vitest.config.ts +9 -9
package/README.md CHANGED
@@ -1,46 +1,37 @@
1
1
  <p align="center">
2
2
  <h1 align="center">🤖 OPC Agent</h1>
3
3
  <p align="center"><strong>开放智能体框架 — 构建、测试、运行企业级 AI 智能体</strong></p>
4
- <p align="center"><strong>Open Agent Framework — Build, test, and run AI Agents for business workstations</strong></p>
5
4
  <p align="center">
6
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>
7
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>
8
- <a href="https://github.com/Deepleaper/opc-agent/actions"><img src="https://img.shields.io/badge/tests-passing-brightgreen" alt="tests"></a>
7
+ <img src="https://img.shields.io/badge/tests-146%20passed-brightgreen" alt="146 tests passing">
9
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>
10
9
  </p>
11
10
  <p align="center">
12
- <a href="#-中文文档">🇨🇳 中文</a> · <a href="#-english-documentation">🇺🇸 English</a> · <a href="./README.zh-CN.md">完整中文文档</a>
11
+ <strong>🇨🇳 中文</strong> · <a href="#english">🇺🇸 English</a>
13
12
  </p>
14
13
  </p>
15
14
 
16
15
  ---
17
16
 
18
- # 🇨🇳 中文文档
19
-
20
- OPC Agent 是一个 **TypeScript 优先的开放智能体框架**,由[跃盟科技 (Deepleaper)](https://www.deepleaper.com) 开发。用一个 YAML 文件定义智能体,接入任意大语言模型,一键部署到多个渠道。开箱即用,生产可用。
17
+ OPC Agent 是一个 **TypeScript 优先的开放智能体框架**,由 [跃盟科技 (Deepleaper)](https://www.deepleaper.com) 开发。用一个 YAML 文件(OAD)定义智能体,接入任意大语言模型,一键部署到多个渠道。
21
18
 
22
19
  ## ⚡ 快速开始(30 秒)
23
20
 
24
21
  ```bash
25
- # 安装
26
22
  npm install -g opc-agent
27
-
28
- # 创建你的第一个智能体
29
23
  opc init my-agent
30
24
  cd my-agent
31
-
32
- # 启动
33
25
  opc run
34
26
  ```
35
27
 
36
- 智能体已在 `http://localhost:3000` 上运行,自带 Web 对话界面。
28
+ 访问 `http://localhost:3000`,内置 Web 对话界面即刻可用。
37
29
 
38
30
  ## ✨ 功能特性
39
31
 
40
32
  ### 🔌 多模型供应商
41
33
 
42
34
  ```yaml
43
- # oad.yaml — 智能体定义文件
44
35
  spec:
45
36
  provider:
46
37
  default: deepseek
@@ -48,23 +39,24 @@ spec:
48
39
  model: deepseek-chat
49
40
  ```
50
41
 
51
- 支持 **DeepSeek**、**通义千问 (Qwen)**、**OpenAI**、**Anthropic**、**Ollama**(本地部署),以及任何兼容 OpenAI 接口的服务。
42
+ 支持 **DeepSeek**、**通义千问 (Qwen)**、**OpenAI**、**Anthropic**、**Ollama**(本地),以及任何兼容 OpenAI 接口的服务。
52
43
 
53
- ### 📡 多渠道部署
44
+ ### 📡 11 个渠道,一套代码
54
45
 
55
46
  ```yaml
56
47
  spec:
57
48
  channels:
58
- - type: web # Web 对话界面
49
+ - type: web # Web 对话界面(内置 UI)
59
50
  port: 3000
60
51
  - type: telegram # Telegram 机器人
61
52
  - type: websocket # 实时 WebSocket
62
- - type: slack # Slack 集成
63
- - type: email # 邮件渠道
53
+ - type: slack # Slack Bot(Socket Mode / Events API)
54
+ - type: email # IMAP 收信 + SMTP 回信
64
55
  - type: wechat # 微信公众号
65
- - type: feishu # 飞书
66
- - type: voice # 语音(STT/TTS
67
- - type: webhook # Webhook 回调
56
+ - type: feishu # 飞书 / Lark 消息卡片
57
+ - type: voice # 语音(STT/TTS,可配置供应商)
58
+ - type: webhook # Webhook 接收 + HTTP 回调
59
+ - type: discord # Discord Bot(斜杠命令 + 线程 + Embed)
68
60
  ```
69
61
 
70
62
  ### 🧠 知识库(RAG)
@@ -74,9 +66,11 @@ import { KnowledgeBase } from 'opc-agent';
74
66
 
75
67
  const kb = new KnowledgeBase('./docs');
76
68
  await kb.addFile('产品手册.pdf');
77
- // 智能体自动使用知识库增强回答
69
+ // 智能体自动检索知识库,无需额外配置
78
70
  ```
79
71
 
72
+ 内置 TF-IDF 向量化 + 余弦相似度检索,数据持久化到 `.opc-knowledge.json`,无需外部向量数据库。
73
+
80
74
  ### 🎭 多智能体编排
81
75
 
82
76
  ```typescript
@@ -84,19 +78,15 @@ import { Orchestrator } from 'opc-agent';
84
78
 
85
79
  const orchestrator = new Orchestrator({
86
80
  agents: [分诊智能体, 销售智能体, 客服智能体],
87
- strategy: 'route-by-intent', // 按意图路由
81
+ strategy: 'route-by-intent',
88
82
  });
89
83
  ```
90
84
 
91
- ### 🧪 内置测试框架
85
+ 支持顺序执行、并行执行、条件路由、智能体移交(handoff)。
92
86
 
93
- ```bash
94
- opc test # 运行测试用例
95
- opc test --watch # 监听模式
96
- ```
87
+ ### 🧪 内置测试框架
97
88
 
98
89
  ```yaml
99
- # 在 oad.yaml 中定义测试
100
90
  spec:
101
91
  testing:
102
92
  cases:
@@ -107,53 +97,62 @@ spec:
107
97
  maxLatencyMs: 5000
108
98
  ```
109
99
 
100
+ ```bash
101
+ opc test # 运行测试用例
102
+ opc test --watch # 监听模式
103
+ opc test --json # JSON 格式输出
104
+ ```
105
+
110
106
  ### 🔧 插件系统
111
107
 
112
108
  ```yaml
113
109
  spec:
114
110
  plugins:
115
- - name: logging # 日志
116
- - name: analytics # 数据分析
117
- - name: rate-limit # 限流
111
+ - name: logging
112
+ - name: analytics
113
+ - name: rate-limit
118
114
  config: { maxPerMinute: 60 }
119
115
  ```
120
116
 
117
+ 完整生命周期钩子:`onInit`、`onMessage`、`onResponse`、`onError`、`onShutdown`。
118
+
121
119
  ### 🔒 安全特性
122
120
 
123
121
  - 输入消毒(防 XSS、注入攻击)
124
122
  - API Key 轮换管理
125
123
  - CORS 配置
126
124
  - 安全响应头
127
- - 会话隔离的认证中间件
125
+ - 会话隔离认证中间件
128
126
 
129
127
  ### 📊 监控与分析
130
128
 
131
- - `/api/health` — 健康检查
132
- - `/api/metrics` — Prometheus 兼容指标
133
- - `/api/dashboard` 实时仪表盘
134
- - 对话导出(JSON / Markdown / CSV)
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` 命令可查看离线分析快照。
135
138
 
136
139
  ## 🏗️ 架构
137
140
 
138
141
  ```
139
142
  ┌─────────────────────────────────────────────────┐
140
- OAD (YAML 定义文件)
141
- 智能体定义与配置
143
+ OAD (YAML 定义文件)
144
+ 智能体的一切配置都在这里
142
145
  ├─────────────────────────────────────────────────┤
143
- │ │
144
146
  │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
145
147
  │ │ 渠道层 │ │ 插件层 │ │ 安全层 │ │
146
- │ │ Web, TG, │ │ 日志, 消毒, │ │
147
- │ │ WS,Slack │ │ 分析 │ │ CORS, 认证 │ │
148
+ │ │10 个渠道 │ │ 日志/分析│ 消毒/CORS/认证│
148
149
  │ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
149
- │ │ │ │ │
150
150
  │ ┌────▼──────────────▼───────────────▼────────┐ │
151
- │ │ 智能体运行时 (Runtime) │ │
151
+ │ │ 智能体运行时 (Agent Runtime) │ │
152
152
  │ │ ┌─────────┐ ┌────────┐ ┌─────────────┐ │ │
153
153
  │ │ │ 记忆 │ │ 技能 │ │ 知识库 │ │ │
154
154
  │ │ └─────────┘ └────────┘ └─────────────┘ │ │
155
155
  │ └────────────────────┬───────────────────────┘ │
156
- │ │ │
157
156
  │ ┌────────────────────▼───────────────────────┐ │
158
157
  │ │ 大语言模型供应商 │ │
159
158
  │ │ DeepSeek · 通义千问 · OpenAI · Ollama │ │
@@ -161,13 +160,17 @@ spec:
161
160
  └─────────────────────────────────────────────────┘
162
161
  ```
163
162
 
164
- ## 📋 模板列表
163
+ ## 📋 12 个开箱即用模板
165
164
 
166
- | 模板 | 说明 | 适用场景 |
165
+ ```bash
166
+ opc init my-agent --template <模板名>
167
+ ```
168
+
169
+ | 模板 | 说明 | 典型场景 |
167
170
  |------|------|---------|
168
- | `customer-service` | 客服智能体 | FAQ 查询 + 人工转接 |
171
+ | `customer-service` | 客服智能体 | FAQ 自动回答 + 转人工 |
169
172
  | `sales-assistant` | 销售助手 | 产品问答 + 线索捕获 |
170
- | `knowledge-base` | 知识库问答 | RAG 语义检索 |
173
+ | `knowledge-base` | 知识库问答 | 文档 RAG 语义检索 |
171
174
  | `code-reviewer` | 代码审查 | Bug 检测 + 风格检查 |
172
175
  | `hr-recruiter` | HR 招聘助手 | 简历筛选 + 面试安排 |
173
176
  | `project-manager` | 项目管理 | 任务跟踪 + 会议纪要 |
@@ -178,12 +181,13 @@ spec:
178
181
  | `data-analyst` | 数据分析师 | 数据查询 + 可视化 |
179
182
  | `teacher` | 教学助手 | 课程设计 + 出题 |
180
183
 
181
- ## 🚀 部署指南
184
+ ## 🚀 部署
182
185
 
183
186
  ### Docker 部署
184
187
 
188
+ `opc init` 创建的每个项目都自带 `Dockerfile` 和 `docker-compose.yml`:
189
+
185
190
  ```bash
186
- # 每个 opc init 项目自带 Dockerfile
187
191
  docker compose up -d
188
192
  ```
189
193
 
@@ -191,30 +195,51 @@ docker compose up -d
191
195
 
192
196
  ```bash
193
197
  opc deploy --target openclaw
198
+ opc deploy --target openclaw --install # 同时写入本地配置
194
199
  ```
195
200
 
196
- ### 部署到 Hermes
201
+ 生成 `IDENTITY.md`、`SOUL.md`、`AGENTS.md` `~/.openclaw/agents/{id}/workspace/`。
202
+
203
+ ### 部署到 Hermes
197
204
 
198
205
  ```bash
199
206
  opc deploy --target hermes
200
207
  ```
201
208
 
209
+ 将 OAD 转换为 Hermes Character 格式(包含 personality、bio、lore、message examples 等字段)。
210
+
202
211
  ## 📖 CLI 命令参考
203
212
 
204
213
  | 命令 | 说明 |
205
214
  |------|------|
206
- | `opc init [name]` | 创建新智能体项目 |
215
+ | `opc init [name]` | 创建新智能体项目(交互式,可选模板) |
216
+ | `opc create <name>` | 从模板快速创建 |
207
217
  | `opc run` | 启动智能体 |
208
- | `opc dev` | 开发模式(热重载) |
209
- | `opc test` | 运行测试用例 |
210
- | `opc chat` | 命令行交互对话 |
211
- | `opc build` | 校验 OAD 配置 |
212
- | `opc deploy` | 部署智能体 |
213
- | `opc analytics` | 查看数据分析 |
214
- | `opc kb add <file>` | 添加知识库文件 |
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>` | 向知识库添加文件 |
215
227
  | `opc kb search <query>` | 搜索知识库 |
216
-
217
- ## 🔗 API 参考
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 参考
218
243
 
219
244
  ```typescript
220
245
  import { AgentRuntime, KnowledgeBase, Orchestrator } from 'opc-agent';
@@ -224,110 +249,181 @@ const runtime = new AgentRuntime();
224
249
  await runtime.loadConfig('oad.yaml');
225
250
  await runtime.initialize();
226
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
+ });
227
263
  ```
228
264
 
229
- 详细 API 文档请查看 [SDK 参考](https://deepleaper.github.io/opc-agent/api/sdk)。
265
+ ## 🔑 OAD 配置文件速览
230
266
 
231
- ## 🤝 贡献指南
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
232
286
 
233
- 欢迎参与贡献!
287
+ memory:
288
+ shortTerm: true
289
+ longTerm: false
234
290
 
235
- 1. Fork 本仓库
236
- 2. 创建功能分支:`git checkout -b feat/my-feature`
237
- 3. 编写代码和测试
238
- 4. 运行测试:`npm test`
239
- 5. 提交 Pull Request
291
+ rateLimits:
292
+ perUser:
293
+ maxRequests: 60
294
+ windowMs: 60000
240
295
 
241
- ### 本地开发
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
+ ```
308
+
309
+ ## 🤝 贡献指南
242
310
 
243
311
  ```bash
244
312
  git clone https://github.com/Deepleaper/opc-agent.git
245
313
  cd opc-agent
246
314
  npm install
247
- npm run build
248
- npm test
315
+ npm run build # TypeScript 编译
316
+ npm test # 运行 146 个测试
249
317
  ```
250
318
 
319
+ 欢迎提交 Issue 和 Pull Request。
320
+
321
+ ## 📄 开源协议
322
+
323
+ [Apache License 2.0](LICENSE) — 商用和开源项目均可自由使用。
324
+
251
325
  ---
252
326
 
253
- # 🇺🇸 English Documentation
327
+ <details>
328
+ <summary id="english">🇺🇸 English</summary>
254
329
 
255
- OPC Agent is a **TypeScript-first framework** for building production AI agents 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.
330
+ ## OPC Agent
256
331
 
257
- ## Quick Start (30 seconds)
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
258
335
 
259
336
  ```bash
260
- # Install
261
337
  npm install -g opc-agent
262
-
263
- # Create your first agent
264
338
  opc init my-agent
265
339
  cd my-agent
266
-
267
- # Run it
268
340
  opc run
269
341
  ```
270
342
 
271
- Your agent is now live at `http://localhost:3000` with a beautiful web chat UI.
272
-
273
- ## ✨ Features
274
-
275
- - 🔌 **Multi-Provider LLM** — DeepSeek, Qwen, OpenAI, Anthropic, Ollama, any OpenAI-compatible API
276
- - 📡 **Multi-Channel** — Web, Telegram, Slack, WebSocket, Email, WeChat, Feishu, Voice, Webhook
277
- - 🧠 **Knowledge Base (RAG)** — Add files, auto-retrieve for context
278
- - 🎭 **Multi-Agent Orchestration** — Route by intent, compose agent teams
279
- - 🧪 **Built-in Testing** — YAML-defined test cases, latency assertions
280
- - 🔧 **Plugin System** — Logging, analytics, rate limiting, custom hooks
281
- - 🔒 **Security** — Input sanitization, CORS, auth, session isolation
282
- - 📊 **Analytics & Monitoring** — Health checks, Prometheus metrics, real-time dashboard
283
- - 📋 **12 Templates** — Customer service, sales, knowledge base, code review, and more
343
+ Agent is live at `http://localhost:3000` with a built-in web chat UI.
284
344
 
285
- ## 🏗️ Architecture
345
+ ## Features
286
346
 
287
- ```
288
- ┌─────────────────────────────────────────────────┐
289
- │ OAD (YAML)
290
- Agent Definition & Config │
291
- ├─────────────────────────────────────────────────┤
292
- │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
293
- │ │ Channels │ │ Plugins │ │ Security │ │
294
- │ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
295
- │ ┌────▼──────────────▼───────────────▼────────┐
296
- │ │ Agent Runtime │
297
- │ │ ┌─────────┐ ┌────────┐ ┌─────────────┐ │ │
298
- │ │ │ Memory │ │ Skills │ │ Knowledge │ │ │
299
- │ │ └─────────┘ └────────┘ └─────────────┘ │ │
300
- │ └────────────────────┬───────────────────────┘ │
301
- │ ┌────────────────────▼───────────────────────┐ │
302
- │ │ LLM Providers │ │
303
- │ │ DeepSeek · Qwen · OpenAI · Anthropic │ │
304
- │ └─────────────────────────────────────────────┘│
305
- └─────────────────────────────────────────────────┘
306
- ```
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
307
357
 
308
- ## 📖 CLI Reference
358
+ ## CLI Reference
309
359
 
310
360
  | Command | Description |
311
361
  |---------|-------------|
312
- | `opc init [name]` | Create a new agent project |
313
- | `opc run` | Start the agent |
362
+ | `opc init [name]` | Create new agent project (interactive, template selection) |
363
+ | `opc run` | Start agent |
314
364
  | `opc dev` | Development mode (hot-reload) |
315
- | `opc test` | Run agent test cases |
365
+ | `opc test` | Run OAD test cases |
316
366
  | `opc chat` | Interactive CLI chat |
317
367
  | `opc build` | Validate OAD configuration |
318
- | `opc deploy` | Deploy agent |
368
+ | `opc deploy` | Deploy (`--target openclaw\|hermes`) |
319
369
  | `opc analytics` | View analytics |
320
- | `opc kb add <file>` | Add knowledge base file |
370
+ | `opc stats` | Runtime statistics snapshot |
371
+ | `opc kb add <file>` | Add file to knowledge base |
321
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 |
322
379
 
323
- ## 🤝 Contributing
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
+ ```
324
389
 
325
- See [CONTRIBUTING.md](CONTRIBUTING.md).
390
+ ### OpenClaw
391
+
392
+ ```bash
393
+ opc deploy --target openclaw
394
+ ```
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
402
+ ```
403
+
404
+ Converts OAD to Hermes Character format (personality, bio, lore, message examples, style guides).
405
+
406
+ ## SDK
407
+
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
+ ```
416
+
417
+ ## License
418
+
419
+ [Apache License 2.0](LICENSE)
420
+
421
+ ---
326
422
 
327
- ## 📄 License
423
+ Built with ❤️ by [Deepleaper](https://www.deepleaper.com)
328
424
 
329
- [Apache License 2.0](LICENSE) — Free for commercial and open source use.
425
+ </details>
330
426
 
331
427
  ---
332
428
 
333
- <p align="center">Built with ❤️ by <a href="https://www.deepleaper.com">Deepleaper 跃盟科技</a></p>
429
+ <p align="center">由 <a href="https://www.deepleaper.com">跃盟科技 (Deepleaper)</a> 用 ❤️ 打造</p>