opc-agent 1.1.0 → 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 (142) hide show
  1. package/CHANGELOG.md +51 -51
  2. package/CONTRIBUTING.md +75 -75
  3. package/README.md +341 -101
  4. package/README.zh-CN.md +382 -55
  5. package/dist/channels/web.js +256 -256
  6. package/dist/cli.js +1 -32
  7. package/dist/deploy/hermes.js +22 -22
  8. package/dist/deploy/openclaw.js +31 -31
  9. package/dist/i18n/index.js +60 -9
  10. package/dist/templates/code-reviewer.js +5 -5
  11. package/dist/templates/customer-service.js +2 -2
  12. package/dist/templates/data-analyst.js +5 -5
  13. package/dist/templates/knowledge-base.js +2 -2
  14. package/dist/templates/sales-assistant.js +4 -4
  15. package/dist/templates/teacher.js +6 -6
  16. package/docs/.vitepress/config.ts +103 -92
  17. package/docs/api/cli.md +48 -48
  18. package/docs/api/oad-schema.md +64 -64
  19. package/docs/api/sdk.md +80 -80
  20. package/docs/guide/concepts.md +51 -51
  21. package/docs/guide/configuration.md +79 -79
  22. package/docs/guide/deployment.md +42 -42
  23. package/docs/guide/getting-started.md +44 -44
  24. package/docs/guide/templates.md +28 -28
  25. package/docs/guide/testing.md +84 -84
  26. package/docs/index.md +27 -27
  27. package/docs/zh/api/cli.md +54 -0
  28. package/docs/zh/api/oad-schema.md +87 -3
  29. package/docs/zh/api/sdk.md +102 -0
  30. package/docs/zh/guide/concepts.md +104 -28
  31. package/docs/zh/guide/configuration.md +135 -39
  32. package/docs/zh/guide/deployment.md +81 -3
  33. package/docs/zh/guide/getting-started.md +82 -58
  34. package/docs/zh/guide/templates.md +84 -22
  35. package/docs/zh/guide/testing.md +88 -18
  36. package/docs/zh/index.md +27 -27
  37. package/examples/customer-service-demo/README.md +90 -90
  38. package/examples/customer-service-demo/oad.yaml +107 -107
  39. package/package.json +1 -1
  40. package/src/analytics/index.ts +66 -66
  41. package/src/channels/discord.ts +192 -192
  42. package/src/channels/email.ts +177 -177
  43. package/src/channels/feishu.ts +236 -236
  44. package/src/channels/index.ts +15 -15
  45. package/src/channels/slack.ts +160 -160
  46. package/src/channels/telegram.ts +90 -90
  47. package/src/channels/voice.ts +106 -106
  48. package/src/channels/web.ts +596 -596
  49. package/src/channels/webhook.ts +199 -199
  50. package/src/channels/websocket.ts +87 -87
  51. package/src/channels/wechat.ts +149 -149
  52. package/src/cli.ts +1 -35
  53. package/src/core/a2a.ts +143 -143
  54. package/src/core/agent.ts +152 -152
  55. package/src/core/analytics-engine.ts +186 -186
  56. package/src/core/auth.ts +57 -57
  57. package/src/core/cache.ts +141 -141
  58. package/src/core/compose.ts +77 -77
  59. package/src/core/config.ts +14 -14
  60. package/src/core/errors.ts +148 -148
  61. package/src/core/hitl.ts +138 -138
  62. package/src/core/knowledge.ts +210 -210
  63. package/src/core/logger.ts +57 -57
  64. package/src/core/orchestrator.ts +215 -215
  65. package/src/core/performance.ts +187 -187
  66. package/src/core/rate-limiter.ts +128 -128
  67. package/src/core/room.ts +109 -109
  68. package/src/core/runtime.ts +152 -152
  69. package/src/core/sandbox.ts +101 -101
  70. package/src/core/security.ts +171 -171
  71. package/src/core/types.ts +68 -68
  72. package/src/core/versioning.ts +106 -106
  73. package/src/core/watch.ts +178 -178
  74. package/src/core/workflow.ts +235 -235
  75. package/src/deploy/hermes.ts +156 -156
  76. package/src/deploy/openclaw.ts +200 -200
  77. package/src/dtv/data.ts +29 -29
  78. package/src/dtv/trust.ts +43 -43
  79. package/src/dtv/value.ts +47 -47
  80. package/src/i18n/index.ts +216 -165
  81. package/src/index.ts +110 -110
  82. package/src/marketplace/index.ts +223 -223
  83. package/src/memory/deepbrain.ts +108 -108
  84. package/src/memory/index.ts +34 -34
  85. package/src/plugins/index.ts +208 -208
  86. package/src/providers/index.ts +183 -183
  87. package/src/schema/oad.ts +155 -155
  88. package/src/skills/base.ts +16 -16
  89. package/src/skills/document.ts +100 -100
  90. package/src/skills/http.ts +35 -35
  91. package/src/skills/index.ts +27 -27
  92. package/src/skills/scheduler.ts +80 -80
  93. package/src/skills/webhook-trigger.ts +59 -59
  94. package/src/templates/code-reviewer.ts +34 -34
  95. package/src/templates/customer-service.ts +80 -80
  96. package/src/templates/data-analyst.ts +70 -70
  97. package/src/templates/executive-assistant.ts +71 -71
  98. package/src/templates/financial-advisor.ts +60 -60
  99. package/src/templates/knowledge-base.ts +31 -31
  100. package/src/templates/legal-assistant.ts +71 -71
  101. package/src/templates/sales-assistant.ts +79 -79
  102. package/src/templates/teacher.ts +79 -79
  103. package/src/testing/index.ts +181 -181
  104. package/src/tools/calculator.ts +73 -73
  105. package/src/tools/datetime.ts +149 -149
  106. package/src/tools/json-transform.ts +187 -187
  107. package/src/tools/mcp.ts +76 -76
  108. package/src/tools/text-analysis.ts +116 -116
  109. package/templates/Dockerfile +15 -15
  110. package/templates/code-reviewer/README.md +27 -27
  111. package/templates/code-reviewer/oad.yaml +41 -41
  112. package/templates/customer-service/README.md +22 -22
  113. package/templates/customer-service/oad.yaml +36 -36
  114. package/templates/docker-compose.yml +21 -21
  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/tests/a2a.test.ts +66 -66
  120. package/tests/agent.test.ts +72 -72
  121. package/tests/analytics.test.ts +50 -50
  122. package/tests/channel.test.ts +39 -39
  123. package/tests/e2e.test.ts +134 -134
  124. package/tests/errors.test.ts +83 -83
  125. package/tests/hitl.test.ts +71 -71
  126. package/tests/i18n.test.ts +41 -41
  127. package/tests/mcp.test.ts +54 -54
  128. package/tests/oad.test.ts +68 -68
  129. package/tests/performance.test.ts +115 -115
  130. package/tests/plugin.test.ts +74 -74
  131. package/tests/room.test.ts +106 -106
  132. package/tests/runtime.test.ts +42 -42
  133. package/tests/sandbox.test.ts +46 -46
  134. package/tests/security.test.ts +60 -60
  135. package/tests/templates.test.ts +77 -77
  136. package/tests/v070.test.ts +76 -76
  137. package/tests/versioning.test.ts +75 -75
  138. package/tests/voice.test.ts +61 -61
  139. package/tests/webhook.test.ts +29 -29
  140. package/tests/workflow.test.ts +143 -143
  141. package/tsconfig.json +19 -19
  142. package/vitest.config.ts +9 -9
package/README.md CHANGED
@@ -1,39 +1,37 @@
1
1
  <p align="center">
2
2
  <h1 align="center">🤖 OPC Agent</h1>
3
- <p align="center"><strong>Open Agent Framework Build, test, and run AI Agents for business workstations</strong></p>
3
+ <p align="center"><strong>开放智能体框架构建、测试、运行企业级 AI 智能体</strong></p>
4
4
  <p align="center">
5
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/anthropic-lab/opc-agent/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green" alt="license"></a>
7
- <a href="https://github.com/anthropic-lab/opc-agent/actions"><img src="https://img.shields.io/badge/tests-passing-brightgreen" alt="tests"></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
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
9
  </p>
10
+ <p align="center">
11
+ <strong>🇨🇳 中文</strong> · <a href="#english">🇺🇸 English</a>
12
+ </p>
10
13
  </p>
11
14
 
12
15
  ---
13
16
 
14
- OPC Agent is a **TypeScript-first framework** for building production AI agents. Define your agent in a single YAML file (OAD — Open Agent Definition), connect any LLM provider, deploy to any channel.
17
+ OPC Agent 是一个 **TypeScript 优先的开放智能体框架**,由 [跃盟科技 (Deepleaper)](https://www.deepleaper.com) 开发。用一个 YAML 文件(OAD)定义智能体,接入任意大语言模型,一键部署到多个渠道。
15
18
 
16
- ## ⚡ Quick Start (30 seconds)
19
+ ## ⚡ 快速开始(30 秒)
17
20
 
18
21
  ```bash
19
- # Install
20
22
  npm install -g opc-agent
21
-
22
- # Create your first agent
23
23
  opc init my-agent
24
24
  cd my-agent
25
-
26
- # Run it
27
25
  opc run
28
26
  ```
29
27
 
30
- Your agent is now live at `http://localhost:3000` with a beautiful web chat UI.
28
+ 访问 `http://localhost:3000`,内置 Web 对话界面即刻可用。
29
+
30
+ ## ✨ 功能特性
31
31
 
32
- ## Features
32
+ ### 🔌 多模型供应商
33
33
 
34
- ### 🔌 Multi-Provider LLM Support
35
34
  ```yaml
36
- # oad.yaml
37
35
  spec:
38
36
  provider:
39
37
  default: deepseek
@@ -41,33 +39,72 @@ spec:
41
39
  model: deepseek-chat
42
40
  ```
43
41
 
44
- Supports **OpenAI**, **DeepSeek**, **Anthropic**, **Qwen**, **Ollama** (local), and any OpenAI-compatible API.
42
+ 支持 **DeepSeek**、**通义千问 (Qwen)**、**OpenAI**、**Anthropic**、**Ollama**(本地),以及任何兼容 OpenAI 接口的服务。
43
+
44
+ ### 📡 11 个渠道,一套代码
45
45
 
46
- ### 📡 Multi-Channel Deployment
47
46
  ```yaml
48
47
  spec:
49
48
  channels:
50
- - type: web # Beautiful chat UI
49
+ - type: web # Web 对话界面(内置 UI
51
50
  port: 3000
52
- - type: telegram # Telegram bot
53
- - type: websocket # Real-time WebSocket
54
- - type: slack # Slack integration
55
- - type: email # Email channel
56
- - type: wechat # WeChat Official Account
57
- - type: voice # Voice (STT/TTS)
58
- - type: webhook # Incoming webhooks
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)
59
60
  ```
60
61
 
61
- ### 🧠 Knowledge Base (RAG)
62
+ ### 🧠 知识库(RAG
63
+
62
64
  ```typescript
63
65
  import { KnowledgeBase } from 'opc-agent';
64
66
 
65
67
  const kb = new KnowledgeBase('./docs');
66
- await kb.addFile('product-manual.pdf');
67
- // Agent automatically uses KB for context
68
+ await kb.addFile('产品手册.pdf');
69
+ // 智能体自动检索知识库,无需额外配置
70
+ ```
71
+
72
+ 内置 TF-IDF 向量化 + 余弦相似度检索,数据持久化到 `.opc-knowledge.json`,无需外部向量数据库。
73
+
74
+ ### 🎭 多智能体编排
75
+
76
+ ```typescript
77
+ import { Orchestrator } from 'opc-agent';
78
+
79
+ const orchestrator = new Orchestrator({
80
+ agents: [分诊智能体, 销售智能体, 客服智能体],
81
+ strategy: 'route-by-intent',
82
+ });
68
83
  ```
69
84
 
70
- ### 🔧 Plugin System
85
+ 支持顺序执行、并行执行、条件路由、智能体移交(handoff)。
86
+
87
+ ### 🧪 内置测试框架
88
+
89
+ ```yaml
90
+ spec:
91
+ testing:
92
+ cases:
93
+ - name: 问候测试
94
+ input: "你好"
95
+ expect:
96
+ contains: ["你好", "帮"]
97
+ maxLatencyMs: 5000
98
+ ```
99
+
100
+ ```bash
101
+ opc test # 运行测试用例
102
+ opc test --watch # 监听模式
103
+ opc test --json # JSON 格式输出
104
+ ```
105
+
106
+ ### 🔧 插件系统
107
+
71
108
  ```yaml
72
109
  spec:
73
110
  plugins:
@@ -77,113 +114,316 @@ spec:
77
114
  config: { maxPerMinute: 60 }
78
115
  ```
79
116
 
80
- Built-in plugins: `logging`, `analytics`, `rate-limit`. Custom plugins support lifecycle hooks: `onInit`, `onMessage`, `onResponse`, `onError`, `onShutdown`.
117
+ 完整生命周期钩子:`onInit`、`onMessage`、`onResponse`、`onError`、`onShutdown`。
81
118
 
82
- ### 🔒 Security
83
- - Input sanitization (XSS, injection prevention)
84
- - API key rotation & management
85
- - CORS configuration
86
- - Helmet-style security headers
87
- - Content Security Policy
88
- - Auth middleware with session isolation
119
+ ### 🔒 安全特性
89
120
 
90
- ### 🧪 Agent Testing
91
- ```bash
92
- opc test # Run test cases
93
- opc test --watch # Watch mode
94
- ```
121
+ - 输入消毒(防 XSS、注入攻击)
122
+ - API Key 轮换管理
123
+ - CORS 配置
124
+ - 安全响应头
125
+ - 会话隔离认证中间件
95
126
 
96
- ```yaml
97
- # tests/greeting.yaml
98
- - input: "Hello"
99
- expect:
100
- contains: ["hello", "hi"]
101
- maxLatencyMs: 5000
102
- ```
127
+ ### 📊 监控与分析
103
128
 
104
- ### 🎭 Multi-Agent Orchestration
105
- ```typescript
106
- import { Orchestrator } from 'opc-agent';
129
+ Web 渠道内置以下端点:
107
130
 
108
- const orchestrator = new Orchestrator({
109
- agents: [triageAgent, salesAgent, supportAgent],
110
- strategy: 'route-by-intent',
111
- });
112
- ```
131
+ | 端点 | 说明 |
132
+ |------|------|
133
+ | `GET /api/health` | 健康检查 |
134
+ | `GET /api/metrics` | Prometheus 文本格式指标(uptime、请求数、错误数、LLM 延迟、Token 用量等) |
135
+ | `GET /api/dashboard` | 实时仪表盘 |
113
136
 
114
- ### 📊 Built-in Analytics & Monitoring
115
- - `/api/health` — Health check
116
- - `/api/metrics` — Prometheus-compatible metrics
117
- - `/api/dashboard` — Real-time dashboard UI
118
- - Conversation export (JSON, Markdown, CSV)
137
+ `opc analytics` `opc stats` 命令可查看离线分析快照。
119
138
 
120
- ## 🏗️ Architecture
139
+ ## 🏗️ 架构
121
140
 
122
141
  ```
123
142
  ┌─────────────────────────────────────────────────┐
124
- OAD (YAML)
125
- Agent Definition & Config
143
+ OAD (YAML 定义文件)
144
+ 智能体的一切配置都在这里
126
145
  ├─────────────────────────────────────────────────┤
127
- │ │
128
146
  │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
129
- │ │ Channels │ │ Plugins │ │ Security │ │
130
- │ │ web,tg, │ │ logging, │ sanitize, │ │
131
- │ │ ws,slack │ │ analytics│ │ CORS, auth │ │
147
+ │ │ 渠道层 │ │ 插件层 │ │ 安全层 │ │
148
+ │ │10 个渠道 │ 日志/分析│消毒/CORS/认证│
132
149
  │ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
133
- │ │ │ │ │
134
150
  │ ┌────▼──────────────▼───────────────▼────────┐ │
135
- │ │ Agent Runtime │ │
151
+ │ │ 智能体运行时 (Agent Runtime) │ │
136
152
  │ │ ┌─────────┐ ┌────────┐ ┌─────────────┐ │ │
137
- │ │ │ Memory │ │ Skills │ │ Knowledge │ │ │
153
+ │ │ │ 记忆 │ │ 技能 │ │ 知识库 │ │ │
138
154
  │ │ └─────────┘ └────────┘ └─────────────┘ │ │
139
155
  │ └────────────────────┬───────────────────────┘ │
140
- │ │ │
141
156
  │ ┌────────────────────▼───────────────────────┐ │
142
- │ │ LLM Providers │ │
143
- │ │ OpenAI · DeepSeek · Anthropic · Ollama │ │
157
+ │ │ 大语言模型供应商 │ │
158
+ │ │ DeepSeek · 通义千问 · OpenAI · Ollama │ │
144
159
  │ └─────────────────────────────────────────────┘│
145
160
  └─────────────────────────────────────────────────┘
146
161
  ```
147
162
 
148
- ## 📖 CLI Reference
163
+ ## 📋 12 个开箱即用模板
149
164
 
150
- | Command | Description |
151
- |---------|-------------|
152
- | `opc init [name]` | Create a new agent project |
153
- | `opc run` | Start the agent |
154
- | `opc dev` | Start in development mode (auto-reload) |
155
- | `opc test` | Run agent test cases |
156
- | `opc validate` | Validate OAD configuration |
157
- | `opc deploy hermes` | Deploy to Hermes cloud |
158
- | `opc plugin list` | List available plugins |
159
- | `opc plugin add <name>` | Add a plugin to config |
160
- | `opc migrate` | Migrate OAD to latest schema |
161
- | `opc marketplace publish` | Publish to marketplace |
165
+ ```bash
166
+ opc init my-agent --template <模板名>
167
+ ```
162
168
 
163
- ## 🤝 Contributing
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` | 教学助手 | 课程设计 + 出题 |
164
183
 
165
- We welcome contributions! Here's how:
184
+ ## 🚀 部署
185
+
186
+ ### Docker 部署
187
+
188
+ `opc init` 创建的每个项目都自带 `Dockerfile` 和 `docker-compose.yml`:
189
+
190
+ ```bash
191
+ docker compose up -d
192
+ ```
193
+
194
+ ### 部署到 OpenClaw
195
+
196
+ ```bash
197
+ opc deploy --target openclaw
198
+ opc deploy --target openclaw --install # 同时写入本地配置
199
+ ```
166
200
 
167
- 1. Fork the repository
168
- 2. Create a feature branch: `git checkout -b feat/my-feature`
169
- 3. Make your changes with tests
170
- 4. Run tests: `npm test`
171
- 5. Submit a pull request
201
+ 生成 `IDENTITY.md`、`SOUL.md`、`AGENTS.md` `~/.openclaw/agents/{id}/workspace/`。
172
202
 
173
- ### Development Setup
203
+ ### 部署到 Hermes
174
204
 
175
205
  ```bash
176
- git clone https://github.com/anthropic-lab/opc-agent.git
206
+ opc deploy --target hermes
207
+ ```
208
+
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
+ ```
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
+ ```
308
+
309
+ ## 🤝 贡献指南
310
+
311
+ ```bash
312
+ git clone https://github.com/Deepleaper/opc-agent.git
177
313
  cd opc-agent
178
314
  npm install
179
- npm run build
180
- npm test
315
+ npm run build # TypeScript 编译
316
+ npm test # 运行 146 个测试
317
+ ```
318
+
319
+ 欢迎提交 Issue 和 Pull Request。
320
+
321
+ ## 📄 开源协议
322
+
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
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
+
386
+ ```bash
387
+ docker compose up -d
388
+ ```
389
+
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();
181
415
  ```
182
416
 
183
- ## 📄 License
417
+ ## License
418
+
419
+ [Apache License 2.0](LICENSE)
420
+
421
+ ---
422
+
423
+ Built with ❤️ by [Deepleaper](https://www.deepleaper.com)
184
424
 
185
- [Apache License 2.0](LICENSE) — Use it freely in commercial and open source projects.
425
+ </details>
186
426
 
187
427
  ---
188
428
 
189
- <p align="center">Built with ❤️ by the OPC team</p>
429
+ <p align="center">由 <a href="https://www.deepleaper.com">跃盟科技 (Deepleaper)</a> ❤️ 打造</p>