opc-agent 4.2.0 → 4.2.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 (119) hide show
  1. package/.opc/memory.db +0 -0
  2. package/COMPETITIVE-GAP.md +92 -92
  3. package/CONTRIBUTING.md +36 -36
  4. package/README.md +290 -290
  5. package/README.zh-CN.md +269 -269
  6. package/STUDIO-REWRITE-TASK.md +76 -0
  7. package/dist/channels/telegram.d.ts +5 -0
  8. package/dist/channels/telegram.d.ts.map +1 -1
  9. package/dist/channels/telegram.js +108 -0
  10. package/dist/channels/telegram.js.map +1 -1
  11. package/dist/channels/voice.d.ts +71 -97
  12. package/dist/channels/voice.d.ts.map +1 -1
  13. package/dist/channels/voice.js +369 -347
  14. package/dist/channels/voice.js.map +1 -1
  15. package/dist/channels/web.d.ts.map +1 -1
  16. package/dist/channels/web.js +8 -2
  17. package/dist/channels/web.js.map +1 -1
  18. package/dist/channels/wechat.js +6 -6
  19. package/dist/cli/chat.d.ts +4 -1
  20. package/dist/cli/chat.d.ts.map +1 -1
  21. package/dist/cli/chat.js +680 -73
  22. package/dist/cli/chat.js.map +1 -1
  23. package/dist/cli/setup.js +1 -1
  24. package/dist/cli/setup.js.map +1 -1
  25. package/dist/cli.js +373 -280
  26. package/dist/cli.js.map +1 -1
  27. package/dist/core/a2a-http.d.ts +75 -0
  28. package/dist/core/a2a-http.d.ts.map +1 -0
  29. package/dist/core/a2a-http.js +217 -0
  30. package/dist/core/a2a-http.js.map +1 -0
  31. package/dist/core/a2a.d.ts +2 -0
  32. package/dist/core/a2a.d.ts.map +1 -1
  33. package/dist/core/a2a.js +6 -1
  34. package/dist/core/a2a.js.map +1 -1
  35. package/dist/core/agent.d.ts +1 -0
  36. package/dist/core/agent.d.ts.map +1 -1
  37. package/dist/core/agent.js +3 -0
  38. package/dist/core/agent.js.map +1 -1
  39. package/dist/core/gateway-registry.d.ts +116 -0
  40. package/dist/core/gateway-registry.d.ts.map +1 -0
  41. package/dist/core/gateway-registry.js +280 -0
  42. package/dist/core/gateway-registry.js.map +1 -0
  43. package/dist/core/model-recommender.d.ts +40 -0
  44. package/dist/core/model-recommender.d.ts.map +1 -0
  45. package/dist/core/model-recommender.js +186 -0
  46. package/dist/core/model-recommender.js.map +1 -0
  47. package/dist/core/priority-queue.d.ts +100 -0
  48. package/dist/core/priority-queue.d.ts.map +1 -0
  49. package/dist/core/priority-queue.js +181 -0
  50. package/dist/core/priority-queue.js.map +1 -0
  51. package/dist/core/runtime.d.ts.map +1 -1
  52. package/dist/core/runtime.js +192 -22
  53. package/dist/core/runtime.js.map +1 -1
  54. package/dist/deploy/index.js +56 -56
  55. package/dist/doctor.d.ts +1 -0
  56. package/dist/doctor.d.ts.map +1 -1
  57. package/dist/doctor.js +155 -10
  58. package/dist/doctor.js.map +1 -1
  59. package/dist/index.d.ts +10 -3
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +24 -13
  62. package/dist/index.js.map +1 -1
  63. package/dist/memory/deepbrain.d.ts +1 -1
  64. package/dist/memory/deepbrain.d.ts.map +1 -1
  65. package/dist/memory/deepbrain.js +95 -4
  66. package/dist/memory/deepbrain.js.map +1 -1
  67. package/dist/memory/evolve-engine.d.ts +113 -0
  68. package/dist/memory/evolve-engine.d.ts.map +1 -0
  69. package/dist/memory/evolve-engine.js +549 -0
  70. package/dist/memory/evolve-engine.js.map +1 -0
  71. package/dist/memory/index.d.ts +2 -0
  72. package/dist/memory/index.d.ts.map +1 -1
  73. package/dist/memory/index.js +3 -1
  74. package/dist/memory/index.js.map +1 -1
  75. package/dist/memory/sqlite-store.d.ts +40 -0
  76. package/dist/memory/sqlite-store.d.ts.map +1 -0
  77. package/dist/memory/sqlite-store.js +269 -0
  78. package/dist/memory/sqlite-store.js.map +1 -0
  79. package/dist/memory/user-profiler.d.ts +8 -0
  80. package/dist/memory/user-profiler.d.ts.map +1 -1
  81. package/dist/memory/user-profiler.js +89 -0
  82. package/dist/memory/user-profiler.js.map +1 -1
  83. package/dist/scheduler/cron-engine.d.ts.map +1 -1
  84. package/dist/scheduler/cron-engine.js +3 -36
  85. package/dist/scheduler/cron-engine.js.map +1 -1
  86. package/dist/scheduler/proactive.d.ts +62 -0
  87. package/dist/scheduler/proactive.d.ts.map +1 -0
  88. package/dist/scheduler/proactive.js +185 -0
  89. package/dist/scheduler/proactive.js.map +1 -0
  90. package/dist/skills/auto-learn.d.ts.map +1 -1
  91. package/dist/skills/auto-learn.js +65 -11
  92. package/dist/skills/auto-learn.js.map +1 -1
  93. package/dist/skills/builtin/index.d.ts.map +1 -1
  94. package/dist/skills/builtin/index.js +163 -30
  95. package/dist/skills/builtin/index.js.map +1 -1
  96. package/dist/skills/types.d.ts +1 -1
  97. package/dist/skills/types.d.ts.map +1 -1
  98. package/dist/skills/types.js +1 -0
  99. package/dist/skills/types.js.map +1 -1
  100. package/dist/studio/server.d.ts +1 -0
  101. package/dist/studio/server.d.ts.map +1 -1
  102. package/dist/studio/server.js +148 -17
  103. package/dist/studio/server.js.map +1 -1
  104. package/dist/studio-ui/index.html +867 -2630
  105. package/dist/ui/components.js +105 -105
  106. package/examples/README.md +22 -22
  107. package/examples/basic-agent.ts +90 -90
  108. package/examples/brain-integration.ts +71 -71
  109. package/examples/multi-channel.ts +74 -74
  110. package/install.ps1 +127 -127
  111. package/install.sh +154 -154
  112. package/models.json +164 -164
  113. package/package.json +5 -2
  114. package/scripts/install.ps1 +31 -31
  115. package/scripts/install.sh +40 -40
  116. package/templates/ecommerce-assistant/README.md +45 -45
  117. package/templates/ecommerce-assistant/oad.yaml +47 -47
  118. package/templates/tech-support/README.md +43 -43
  119. package/templates/tech-support/oad.yaml +45 -45
package/README.zh-CN.md CHANGED
@@ -1,269 +1,269 @@
1
- <div align="center">
2
-
3
- # ⚡ OPC Agent
4
-
5
- **开源 AI Agent 框架 — 从终端构建、运行、进化你的 AI 智能体**
6
-
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
- [![Node](https://img.shields.io/badge/Node.js-%3E%3D18-339933?logo=node.js&logoColor=white)](https://nodejs.org/)
10
-
11
- [快速开始](#-快速开始) · [核心特性](#-核心特性) · [架构](#-架构) · [配置](#-配置) · [CLI 命令](#-cli-命令) · [English](README.md)
12
-
13
- </div>
14
-
15
- ---
16
-
17
- ## 🚀 快速开始
18
-
19
- ```bash
20
- npm install -g opc-agent
21
- opc init
22
- opc run
23
- ```
24
-
25
- 一键安装(自动配置 Node.js,可选 Ollama 本地模型):
26
-
27
- ```bash
28
- # macOS / Linux
29
- curl -fsSL https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.sh | bash
30
-
31
- # Windows PowerShell
32
- irm https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.ps1 | iex
33
- ```
34
-
35
- 启动后打开 **http://localhost:4000** 进入 Studio,或直接终端对话:
36
-
37
- ```bash
38
- opc chat
39
- ```
40
-
41
- ---
42
-
43
- ## ✨ 核心特性
44
-
45
- | | 特性 | 说明 |
46
- |---|---|---|
47
- | 🤖 | **53 个内置工具** | 文件、Shell、网页、浏览器、视觉、GitHub、Jira、Slack 等 |
48
- | 🎨 | **Studio 可视化管理** | `http://localhost:4000`,一键管理 Agent |
49
- | 💬 | **TUI 终端对话** | 流式输出、Markdown 渲染、斜杠命令 |
50
- | 🧠 | **知识进化引擎** | 本地 Ollama 驱动,零成本知识蒸馏 |
51
- | 📱 | **15+ 渠道接入** | Telegram、Discord、Slack、微信、邮件、WhatsApp、飞书… |
52
- | 🔧 | **40 个内置技能** | 效率、知识、创意、开发者技能包 |
53
- | 📋 | **OAD 声明式配置** | 一个 `oad.yaml` 定义整个 Agent |
54
- | 🏥 | **Doctor 健康检查** | 13 项检查:模型、工具、渠道、记忆 |
55
- | ⏰ | **定时调度** | Cron 任务 + 主动式 Agent 触发 |
56
- | 🔌 | **MCP 协议** | Model Context Protocol 服务端和客户端 |
57
- | 🗣️ | **语音交互** | Whisper、Azure Speech、火山引擎 STT/TTS |
58
- | 📊 | **A2A 协议** | Google Agent-to-Agent 互操作 |
59
-
60
- ---
61
-
62
- ## 🏗️ 架构
63
-
64
- ```
65
- ┌─────────────────────────────────────────────────┐
66
- │ 渠道层 │
67
- │ Telegram · Discord · Slack · 微信 · 邮件 … │
68
- └──────────────────────┬──────────────────────────┘
69
-
70
- ┌──────────────────────▼──────────────────────────┐
71
- │ OPC Agent 运行时 │
72
- │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
73
- │ │ 工具执行 │ │ 技能 │ │ 记忆/知识进化 │ │
74
- │ │ (53 工具) │ │(40 技能) │ │ 引擎 │ │
75
- │ └──────────┘ └──────────┘ └──────────────┘ │
76
- │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
77
- │ │ 定时调度 │ │ 语音 │ │ MCP / A2A │ │
78
- │ └──────────┘ └──────────┘ └──────────────┘ │
79
- └──────────────────────┬──────────────────────────┘
80
-
81
- ┌──────────────────────▼──────────────────────────┐
82
- │ 模型提供商 │
83
- │ OpenAI · Anthropic · Ollama · Azure · Gemini │
84
- └─────────────────────────────────────────────────┘
85
- ```
86
-
87
- ---
88
-
89
- ## ⚙️ 配置
90
-
91
- 用一个 `oad.yaml` 文件定义 Agent:
92
-
93
- ```yaml
94
- name: my-agent
95
- description: 客服助手
96
- model:
97
- provider: ollama
98
- model: llama3.1
99
- channels:
100
- - type: telegram
101
- token: ${TELEGRAM_BOT_TOKEN}
102
- - type: web
103
- port: 4000
104
- tools:
105
- - file
106
- - shell
107
- - web-fetch
108
- - browser
109
- skills:
110
- - weather
111
- - github
112
- memory:
113
- provider: sqlite
114
- cron:
115
- - schedule: "0 9 * * *"
116
- task: "检查并汇总隔夜邮件"
117
- ```
118
-
119
- ---
120
-
121
- ## 🖥️ CLI 命令
122
-
123
- | 命令 | 说明 |
124
- |------|------|
125
- | `opc init [name]` | 创建新 Agent 项目 |
126
- | `opc run` | 启动 Agent(所有已配置渠道) |
127
- | `opc chat` | 终端交互对话 |
128
- | `opc studio` | 启动 Studio GUI(端口 4000) |
129
- | `opc doctor` | 运行 13 项健康检查 |
130
- | `opc setup` | 配置模型和 API Key |
131
- | `opc eval` | 运行评估测试 |
132
- | `opc traces` | 查看调用链路 |
133
- | `opc publish` | 发布 Agent 到 npm |
134
- | `opc skill list` | 列出可用技能 |
135
- | `opc cron list` | 列出定时任务 |
136
-
137
- ---
138
-
139
- ## 📱 渠道支持
140
-
141
- | 渠道 | 状态 | 渠道 | 状态 |
142
- |------|------|------|------|
143
- | Telegram | ✅ | Discord | ✅ |
144
- | Slack | ✅ | 微信 | ✅ |
145
- | 邮件 (IMAP/SMTP) | ✅ | WhatsApp | ✅ |
146
- | LINE | ✅ | Teams | ✅ |
147
- | 飞书 | ✅ | 钉钉 | ✅ |
148
- | Web UI | ✅ | WebSocket | ✅ |
149
- | Webhook | ✅ | REST API | ✅ |
150
- | 语音 | ✅ | SMS (Twilio) | ✅ |
151
-
152
- ---
153
-
154
- ## 🔧 工具(53 个)
155
-
156
- - **核心(8)**:文件读写、Shell、网页抓取、搜索、浏览器、视觉
157
- - **开发(12)**:Git、GitHub、npm、代码分析、测试、部署、Docker
158
- - **效率(8)**:日历、邮件、提醒、笔记、待办、翻译
159
- - **集成(13)**:Jira、Slack、Notion、Linear、Confluence、Trello、Asana、Zendesk、HubSpot、Salesforce
160
- - **知识(7)**:记忆存取、知识学习/进化、RAG 查询、向量化、摘要
161
- - **媒体(5)**:图片生成/描述、语音转文字、TTS、截图
162
-
163
- ---
164
-
165
- ## 📊 对比
166
-
167
- | 特性 | OPC Agent | Hermes Agent | OpenClaw |
168
- |------|-----------|-------------|----------|
169
- | 内置工具 | 53 | ~10 | 30+ |
170
- | GUI 管理 | ✅ | ❌ | ✅ |
171
- | 终端对话 | ✅ | ❌ | ✅ |
172
- | 渠道数 | 15+ | 3 | 15+ |
173
- | 内置技能 | 40 | ❌ | 40 |
174
- | 知识进化 | ✅ | ❌ | ✅ |
175
- | 语音交互 | ✅ | ❌ | ✅ |
176
- | MCP 协议 | ✅ | ✅ | ✅ |
177
- | A2A 协议 | ✅ | ❌ | ✅ |
178
- | 本地优先 | ✅ | ❌ | ✅ |
179
- | 开源 | Apache-2.0 | 商业 | Apache-2.0 |
180
-
181
- > **OPC Agent** 是开源核心运行时,**OpenClaw** 是基于它构建的完整平台。
182
-
183
- ---
184
-
185
- ## 🧠 知识进化引擎
186
-
187
- OPC Agent 内置知识进化流水线,**完全本地运行**,使用 Ollama:
188
-
189
- ```
190
- 对话 → 学习 → 聚类 → 去重 → 蒸馏 → 进化知识
191
- ```
192
-
193
- - **零 API 成本** — 本地 Ollama 模型驱动蒸馏
194
- - **自动运行** — 从每次对话中学习,按计划进化
195
- - **分层记忆** — 短期(对话)→ 长期(蒸馏)→ 进化(精炼)
196
- - **全文搜索** — SQLite FTS5 即时检索所有记忆
197
-
198
- ```bash
199
- opc knowledge evolve # 手动触发进化
200
- opc knowledge stats # 查看知识库统计
201
- opc knowledge search "查询" # 搜索知识
202
- ```
203
-
204
- ---
205
-
206
- ## 🎨 Studio 可视化
207
-
208
- ```bash
209
- opc studio
210
- ```
211
-
212
- Studio 功能:
213
- - **Agent 概览** — 状态、模型、渠道、工具一目了然
214
- - **在线对话** — 浏览器中测试 Agent
215
- - **配置编辑** — 可视化编辑 `oad.yaml`
216
- - **日志与追踪** — 实时日志流 + OpenTelemetry 追踪
217
- - **技能浏览器** — 发现和安装技能
218
- - **定时任务管理** — 创建和监控 Cron 任务
219
-
220
- ---
221
-
222
- ## 🏥 Doctor 健康检查
223
-
224
- ```bash
225
- opc doctor
226
- ```
227
-
228
- ```
229
- ✅ 模型连接正常 (ollama/llama3.1)
230
- ✅ 53/53 工具可用
231
- ✅ 记忆存储正常 (SQLite, 1,247 条)
232
- ✅ Telegram 渠道已连接
233
- ✅ 定时调度运行中 (3 个任务)
234
- ⚠️ 未配置 TTS 语音
235
- ✅ 磁盘空间充足 (12.3 GB)
236
- ...
237
- ```
238
-
239
- 13 项检查覆盖:模型连接、工具状态、渠道连接、记忆健康、磁盘空间、Node.js 版本、包更新等。
240
-
241
- ---
242
-
243
- ## 🤝 参与贡献
244
-
245
- 欢迎贡献!查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解详情。
246
-
247
- ```bash
248
- git clone https://github.com/Deepleaper/opc-agent.git
249
- cd opc-agent
250
- npm install
251
- npm run build
252
- npm test
253
- ```
254
-
255
- ---
256
-
257
- ## 📄 许可证
258
-
259
- [Apache-2.0](LICENSE) © [Deepleaper 跃盟科技](https://github.com/Deepleaper)
260
-
261
- ---
262
-
263
- <div align="center">
264
-
265
- **觉得有用?给个 ⭐ 支持一下**
266
-
267
- [GitHub](https://github.com/Deepleaper/opc-agent) · [npm](https://www.npmjs.com/package/opc-agent) · [文档](https://opc-agent.dev)
268
-
269
- </div>
1
+ <div align="center">
2
+
3
+ # ⚡ OPC Agent
4
+
5
+ **开源 AI Agent 框架 — 从终端构建、运行、进化你的 AI 智能体**
6
+
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
+ [![Node](https://img.shields.io/badge/Node.js-%3E%3D18-339933?logo=node.js&logoColor=white)](https://nodejs.org/)
10
+
11
+ [快速开始](#-快速开始) · [核心特性](#-核心特性) · [架构](#-架构) · [配置](#-配置) · [CLI 命令](#-cli-命令) · [English](README.md)
12
+
13
+ </div>
14
+
15
+ ---
16
+
17
+ ## 🚀 快速开始
18
+
19
+ ```bash
20
+ npm install -g opc-agent
21
+ opc init
22
+ opc run
23
+ ```
24
+
25
+ 一键安装(自动配置 Node.js,可选 Ollama 本地模型):
26
+
27
+ ```bash
28
+ # macOS / Linux
29
+ curl -fsSL https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.sh | bash
30
+
31
+ # Windows PowerShell
32
+ irm https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.ps1 | iex
33
+ ```
34
+
35
+ 启动后打开 **http://localhost:4000** 进入 Studio,或直接终端对话:
36
+
37
+ ```bash
38
+ opc chat
39
+ ```
40
+
41
+ ---
42
+
43
+ ## ✨ 核心特性
44
+
45
+ | | 特性 | 说明 |
46
+ |---|---|---|
47
+ | 🤖 | **53 个内置工具** | 文件、Shell、网页、浏览器、视觉、GitHub、Jira、Slack 等 |
48
+ | 🎨 | **Studio 可视化管理** | `http://localhost:4000`,一键管理 Agent |
49
+ | 💬 | **TUI 终端对话** | 流式输出、Markdown 渲染、斜杠命令 |
50
+ | 🧠 | **知识进化引擎** | 本地 Ollama 驱动,零成本知识蒸馏 |
51
+ | 📱 | **15+ 渠道接入** | Telegram、Discord、Slack、微信、邮件、WhatsApp、飞书… |
52
+ | 🔧 | **40 个内置技能** | 效率、知识、创意、开发者技能包 |
53
+ | 📋 | **OAD 声明式配置** | 一个 `oad.yaml` 定义整个 Agent |
54
+ | 🏥 | **Doctor 健康检查** | 13 项检查:模型、工具、渠道、记忆 |
55
+ | ⏰ | **定时调度** | Cron 任务 + 主动式 Agent 触发 |
56
+ | 🔌 | **MCP 协议** | Model Context Protocol 服务端和客户端 |
57
+ | 🗣️ | **语音交互** | Whisper、Azure Speech、火山引擎 STT/TTS |
58
+ | 📊 | **A2A 协议** | Google Agent-to-Agent 互操作 |
59
+
60
+ ---
61
+
62
+ ## 🏗️ 架构
63
+
64
+ ```
65
+ ┌─────────────────────────────────────────────────┐
66
+ │ 渠道层 │
67
+ │ Telegram · Discord · Slack · 微信 · 邮件 … │
68
+ └──────────────────────┬──────────────────────────┘
69
+
70
+ ┌──────────────────────▼──────────────────────────┐
71
+ │ OPC Agent 运行时 │
72
+ │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
73
+ │ │ 工具执行 │ │ 技能 │ │ 记忆/知识进化 │ │
74
+ │ │ (53 工具) │ │(40 技能) │ │ 引擎 │ │
75
+ │ └──────────┘ └──────────┘ └──────────────┘ │
76
+ │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
77
+ │ │ 定时调度 │ │ 语音 │ │ MCP / A2A │ │
78
+ │ └──────────┘ └──────────┘ └──────────────┘ │
79
+ └──────────────────────┬──────────────────────────┘
80
+
81
+ ┌──────────────────────▼──────────────────────────┐
82
+ │ 模型提供商 │
83
+ │ OpenAI · Anthropic · Ollama · Azure · Gemini │
84
+ └─────────────────────────────────────────────────┘
85
+ ```
86
+
87
+ ---
88
+
89
+ ## ⚙️ 配置
90
+
91
+ 用一个 `oad.yaml` 文件定义 Agent:
92
+
93
+ ```yaml
94
+ name: my-agent
95
+ description: 客服助手
96
+ model:
97
+ provider: ollama
98
+ model: llama3.1
99
+ channels:
100
+ - type: telegram
101
+ token: ${TELEGRAM_BOT_TOKEN}
102
+ - type: web
103
+ port: 4000
104
+ tools:
105
+ - file
106
+ - shell
107
+ - web-fetch
108
+ - browser
109
+ skills:
110
+ - weather
111
+ - github
112
+ memory:
113
+ provider: sqlite
114
+ cron:
115
+ - schedule: "0 9 * * *"
116
+ task: "检查并汇总隔夜邮件"
117
+ ```
118
+
119
+ ---
120
+
121
+ ## 🖥️ CLI 命令
122
+
123
+ | 命令 | 说明 |
124
+ |------|------|
125
+ | `opc init [name]` | 创建新 Agent 项目 |
126
+ | `opc run` | 启动 Agent(所有已配置渠道) |
127
+ | `opc chat` | 终端交互对话 |
128
+ | `opc studio` | 启动 Studio GUI(端口 4000) |
129
+ | `opc doctor` | 运行 13 项健康检查 |
130
+ | `opc setup` | 配置模型和 API Key |
131
+ | `opc eval` | 运行评估测试 |
132
+ | `opc traces` | 查看调用链路 |
133
+ | `opc publish` | 发布 Agent 到 npm |
134
+ | `opc skill list` | 列出可用技能 |
135
+ | `opc cron list` | 列出定时任务 |
136
+
137
+ ---
138
+
139
+ ## 📱 渠道支持
140
+
141
+ | 渠道 | 状态 | 渠道 | 状态 |
142
+ |------|------|------|------|
143
+ | Telegram | ✅ | Discord | ✅ |
144
+ | Slack | ✅ | 微信 | ✅ |
145
+ | 邮件 (IMAP/SMTP) | ✅ | WhatsApp | ✅ |
146
+ | LINE | ✅ | Teams | ✅ |
147
+ | 飞书 | ✅ | 钉钉 | ✅ |
148
+ | Web UI | ✅ | WebSocket | ✅ |
149
+ | Webhook | ✅ | REST API | ✅ |
150
+ | 语音 | ✅ | SMS (Twilio) | ✅ |
151
+
152
+ ---
153
+
154
+ ## 🔧 工具(53 个)
155
+
156
+ - **核心(8)**:文件读写、Shell、网页抓取、搜索、浏览器、视觉
157
+ - **开发(12)**:Git、GitHub、npm、代码分析、测试、部署、Docker
158
+ - **效率(8)**:日历、邮件、提醒、笔记、待办、翻译
159
+ - **集成(13)**:Jira、Slack、Notion、Linear、Confluence、Trello、Asana、Zendesk、HubSpot、Salesforce
160
+ - **知识(7)**:记忆存取、知识学习/进化、RAG 查询、向量化、摘要
161
+ - **媒体(5)**:图片生成/描述、语音转文字、TTS、截图
162
+
163
+ ---
164
+
165
+ ## 📊 对比
166
+
167
+ | 特性 | OPC Agent | Hermes Agent | OpenClaw |
168
+ |------|-----------|-------------|----------|
169
+ | 内置工具 | 53 | ~10 | 30+ |
170
+ | GUI 管理 | ✅ | ❌ | ✅ |
171
+ | 终端对话 | ✅ | ❌ | ✅ |
172
+ | 渠道数 | 15+ | 3 | 15+ |
173
+ | 内置技能 | 40 | ❌ | 40 |
174
+ | 知识进化 | ✅ | ❌ | ✅ |
175
+ | 语音交互 | ✅ | ❌ | ✅ |
176
+ | MCP 协议 | ✅ | ✅ | ✅ |
177
+ | A2A 协议 | ✅ | ❌ | ✅ |
178
+ | 本地优先 | ✅ | ❌ | ✅ |
179
+ | 开源 | Apache-2.0 | 商业 | Apache-2.0 |
180
+
181
+ > **OPC Agent** 是开源核心运行时,**OpenClaw** 是基于它构建的完整平台。
182
+
183
+ ---
184
+
185
+ ## 🧠 知识进化引擎
186
+
187
+ OPC Agent 内置知识进化流水线,**完全本地运行**,使用 Ollama:
188
+
189
+ ```
190
+ 对话 → 学习 → 聚类 → 去重 → 蒸馏 → 进化知识
191
+ ```
192
+
193
+ - **零 API 成本** — 本地 Ollama 模型驱动蒸馏
194
+ - **自动运行** — 从每次对话中学习,按计划进化
195
+ - **分层记忆** — 短期(对话)→ 长期(蒸馏)→ 进化(精炼)
196
+ - **全文搜索** — SQLite FTS5 即时检索所有记忆
197
+
198
+ ```bash
199
+ opc knowledge evolve # 手动触发进化
200
+ opc knowledge stats # 查看知识库统计
201
+ opc knowledge search "查询" # 搜索知识
202
+ ```
203
+
204
+ ---
205
+
206
+ ## 🎨 Studio 可视化
207
+
208
+ ```bash
209
+ opc studio
210
+ ```
211
+
212
+ Studio 功能:
213
+ - **Agent 概览** — 状态、模型、渠道、工具一目了然
214
+ - **在线对话** — 浏览器中测试 Agent
215
+ - **配置编辑** — 可视化编辑 `oad.yaml`
216
+ - **日志与追踪** — 实时日志流 + OpenTelemetry 追踪
217
+ - **技能浏览器** — 发现和安装技能
218
+ - **定时任务管理** — 创建和监控 Cron 任务
219
+
220
+ ---
221
+
222
+ ## 🏥 Doctor 健康检查
223
+
224
+ ```bash
225
+ opc doctor
226
+ ```
227
+
228
+ ```
229
+ ✅ 模型连接正常 (ollama/llama3.1)
230
+ ✅ 53/53 工具可用
231
+ ✅ 记忆存储正常 (SQLite, 1,247 条)
232
+ ✅ Telegram 渠道已连接
233
+ ✅ 定时调度运行中 (3 个任务)
234
+ ⚠️ 未配置 TTS 语音
235
+ ✅ 磁盘空间充足 (12.3 GB)
236
+ ...
237
+ ```
238
+
239
+ 13 项检查覆盖:模型连接、工具状态、渠道连接、记忆健康、磁盘空间、Node.js 版本、包更新等。
240
+
241
+ ---
242
+
243
+ ## 🤝 参与贡献
244
+
245
+ 欢迎贡献!查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解详情。
246
+
247
+ ```bash
248
+ git clone https://github.com/Deepleaper/opc-agent.git
249
+ cd opc-agent
250
+ npm install
251
+ npm run build
252
+ npm test
253
+ ```
254
+
255
+ ---
256
+
257
+ ## 📄 许可证
258
+
259
+ [Apache-2.0](LICENSE) © [Deepleaper 跃盟科技](https://github.com/Deepleaper)
260
+
261
+ ---
262
+
263
+ <div align="center">
264
+
265
+ **觉得有用?给个 ⭐ 支持一下**
266
+
267
+ [GitHub](https://github.com/Deepleaper/opc-agent) · [npm](https://www.npmjs.com/package/opc-agent) · [文档](https://opc-agent.dev)
268
+
269
+ </div>
@@ -0,0 +1,76 @@
1
+ 你的任务是完全重写 OPC Studio 的前端 UI (src/studio-ui/index.html)。这是一个单文件 HTML(含 CSS + JS),不能拆分。
2
+
3
+ ## 第一步:读取参考文件
4
+ 1. 读 `C:\Users\mingjwan\.openclaw\agents\ray-cto\workspace\tmp\opc-studio-prd-v1.2.html` — PRD mockup 设计
5
+ 2. 读 `src/studio/server.ts` — 后端 API 接口
6
+ 3. 读当前 `src/studio-ui/index.html` — 了解现有结构
7
+
8
+ ## 设计规范
9
+
10
+ ### 视觉风格
11
+ - 亮色 Material 3 风格(白底 + Google Blue #1a73e8)
12
+ - 字体: system-ui, -apple-system, 'Segoe UI'
13
+ - 圆角: 12px
14
+ - 字体大小: >= 14px
15
+ - 卡片阴影: 0 1px 3px rgba(0,0,0,0.08)
16
+ - hover: 加深阴影 + 蓝色边框
17
+
18
+ ### 侧边栏结构(固定不变)
19
+ ```
20
+ ⚡ OPC Studio(logo)
21
+
22
+ 🧑‍💻 OPC 助手(置顶,全局助理)
23
+ ─────────
24
+ 🤖 OPC AGENT(section label)
25
+ [动态 Agent 列表]
26
+ ➕ 新建 Agent
27
+ 👥 新建群组
28
+ 📡 渠道配置
29
+ ─────────
30
+ 🧩 AGENTKITS(section label)
31
+ 模型配置
32
+ ─────────
33
+ 🧠 DEEPBRAIN(section label)
34
+ 知识库浏览
35
+ ─────────
36
+ 🖥️ WORKSTATION(section label)
37
+ 岗位模板库
38
+ ```
39
+
40
+ ### 页面列表
41
+
42
+ 1. **OPC 助手聊天页** — SSE 流式聊天,首次打开默认进入
43
+ 2. **Agent 聊天页** — 左 60% 聊天 + 右 40% 设置面板(可折叠,点 ⚙️ 展开)
44
+ - 设置面板 5 个 tab: 角色 / 模型 / 渠道 / 记忆 / 技能
45
+ - 模型 tab: 只显示已配通的模型供选择
46
+ 3. **AgentKits 模型配置页** — 三区: Ollama 本地模型 / 云端 API Key(填Key→验证按钮→解锁)/ Agent 模型分配表
47
+ - 核心规则:没配通 Key 的 Provider,其模型不出现在 Agent 的模型选择列表
48
+ 4. **DeepBrain 知识库页** — 拖拽上传区 + 统计卡片 + 搜索 + 三层浏览(行业/岗位/工位)
49
+ 5. **Workstation 岗位模板库页** — 面包屑导航 + 三级钻取(行业→岗位→工位)+ 每层显示 Skill 标签 + 底部 Skill 自动叠加说明
50
+ 6. **渠道配置页** — Telegram/微信/飞书/Slack 等 Token 配置
51
+ 7. **新建 Agent 页** — 简单表单(名称+描述+选模板)
52
+
53
+ ### 后端 API(已有)
54
+ - GET /api/agents — Agent 列表
55
+ - GET /api/agents/:id — Agent 详情
56
+ - PUT /api/agents/:id — 更新 Agent
57
+ - POST /api/agents — 创建 Agent
58
+ - DELETE /api/agents/:id — 删除 Agent
59
+ - POST /api/agents/:id/chat — 聊天(SSE 流式)
60
+ - GET /api/config — 全局配置
61
+ - PUT /api/config — 更新配置
62
+ - GET /api/skills — 技能列表
63
+ - GET /api/schedules — 调度列表
64
+ - GET /api/status — 系统状态
65
+ - GET /api/memory — 记忆
66
+
67
+ ### 关键约束
68
+ 1. 单文件 HTML,CSS 和 JS 全内联
69
+ 2. `const API = '';` 开头(空字符串,相对路径)
70
+ 3. 聊天用 SSE 流式(fetch + ReadableStream),打字机效果
71
+ 4. 首次打开(无 Agent 时)自动导航到 OPC 助手
72
+ 5. Agent 列表轮询刷新(5s)
73
+ 6. 所有按钮必须有 onclick 处理
74
+ 7. Markdown 渲染(代码块、列表、粗体等)
75
+
76
+ 完成后不需要运行测试,直接告诉我你写完了。
@@ -29,6 +29,7 @@ export interface TelegramChannelConfig {
29
29
  textChunkLimit?: number;
30
30
  requireMention?: boolean;
31
31
  botUsername?: string;
32
+ voiceReply?: boolean;
32
33
  }
33
34
  export declare class TelegramChannel extends BaseChannel {
34
35
  readonly type = "telegram";
@@ -48,6 +49,8 @@ export declare class TelegramChannel extends BaseChannel {
48
49
  private polling;
49
50
  private server;
50
51
  private streamHandler?;
52
+ private voice;
53
+ private voiceReply;
51
54
  constructor(config?: TelegramChannelConfig);
52
55
  setStreamHandler(handler: (msg: Message) => AsyncIterable<string>): void;
53
56
  start(): Promise<void>;
@@ -63,6 +66,8 @@ export declare class TelegramChannel extends BaseChannel {
63
66
  private streamResponse;
64
67
  sendFormattedMessage(chatId: number | string, text: string, replyTo?: number, threadId?: number): Promise<any>;
65
68
  sendMessage(chatId: number | string, text: string): Promise<void>;
69
+ /** Send a voice message (TTS) alongside or instead of text */
70
+ sendVoiceMessage(chatId: number | string, text: string, replyTo?: number): Promise<boolean>;
66
71
  private setReaction;
67
72
  private sendTyping;
68
73
  private isGroupChat;
@@ -1 +1 @@
1
- {"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/channels/telegram.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,IAAI,cAAc;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAa;IAG5B,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAU;IAGhC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAkB;IAGjC,OAAO,CAAC,MAAM,CAAsC;IAGpD,OAAO,CAAC,aAAa,CAAC,CAA0C;gBAEpD,MAAM,GAAE,qBAA0B;IAiB9C,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI;IAIlE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAUb,YAAY;YAOZ,IAAI;YAmBJ,UAAU;YAmBV,YAAY;YA4CZ,WAAW;YASX,aAAa;YA+Eb,aAAa;YA0Cb,mBAAmB;YAkCnB,cAAc;IAmEtB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA2C9G,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAMzD,WAAW;YAcX,UAAU;IAUxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAQlB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuBtB;;;OAGG;IACH,OAAO,CAAC,UAAU;YA0BJ,OAAO;CAqBtB"}
1
+ {"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/channels/telegram.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,IAAI,cAAc;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAa;IAG5B,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAU;IAGhC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAkB;IAGjC,OAAO,CAAC,MAAM,CAAsC;IAGpD,OAAO,CAAC,aAAa,CAAC,CAA0C;IAGhE,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAAkB;gBAExB,MAAM,GAAE,qBAA0B;IA0B9C,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI;IAIlE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAUb,YAAY;YAOZ,IAAI;YAmBJ,UAAU;YAmBV,YAAY;YA4CZ,WAAW;YASX,aAAa;YAuIb,aAAa;YA0Cb,mBAAmB;YAkCnB,cAAc;IAmEtB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA2C9G,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,8DAA8D;IACxD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAyCnF,WAAW;YAcX,UAAU;IAUxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAQlB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuBtB;;;OAGG;IACH,OAAO,CAAC,UAAU;YA0BJ,OAAO;CAqBtB"}