@next-open-ai/openbot 0.1.6 → 0.1.8

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.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue.svg)](https://www.typescriptlang.org/)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
7
- **OpenBot** 是基于 Agent Skills 与编码智能体(Coding Agent)的**一体化 AI 助手平台**,支持 CLI、WebSocket 网关与桌面端。通过可插拔技能(Skills)、浏览器自动化、代码执行与长期记忆,为开发与日常任务提供可扩展的 AI 工作流。
7
+ **OpenBot** 是基于 Agent Skills 与编码智能体(Coding Agent)的**一体化 AI 助手平台**,支持 CLI、WebSocket 网关与桌面端。通过可插拔技能(Skills)、浏览器自动化、代码执行与长期记忆,为开发与日常任务提供可扩展的 AI 工作流。除提供可自我升级扩展的 AI Agent 引擎及多通道、多终端接入外,后续将支持 MCP 以降低 Token 消耗与大模型幻觉,并接入现有 AI Agent 生态(下一步计划接入 Coze)。
8
8
 
9
9
  ---
10
10
 
@@ -12,11 +12,13 @@
12
12
 
13
13
  | 能力 | 说明 |
14
14
  |------|------|
15
- | **技能架构** | 基于 Agent Skills 规范,支持多路径加载、本地安装与动态扩展 |
15
+ | **技能架构** | 基于 Agent Skills 规范,支持多路径加载、本地安装与动态扩展;支持技能自我发现与自我迭代 |
16
16
  | **编码智能体** | 集成 [pi-coding-agent](https://www.npmjs.com/package/@mariozechner/pi-coding-agent),支持多轮工具调用与代码执行 |
17
17
  | **浏览器自动化** | 内置 [agent-browser](https://www.npmjs.com/package/agent-browser),可导航、填表、截图与数据抓取 |
18
18
  | **长期记忆** | 向量存储(Vectra)+ 本地嵌入,支持经验总结与会话压缩(compaction) |
19
- | **多端接入** | CLI、WebSocket 网关、Electron 桌面端,同一套 Agent 核心 |
19
+ | **多端接入** | CLI、WebSocket 网关、Electron 桌面端,同一套 Agent 核心;各端技术栈见下方「各端技术栈」 |
20
+ | **MCP(规划中)** | 为降低 Token 消耗与大模型幻觉,后续将支持 MCP(Model Context Protocol) |
21
+ | **生态接入(规划中)** | 接入现有 AI Agent 生态,下一步计划接入 Coze 生态 |
20
22
 
21
23
  ---
22
24
 
@@ -55,7 +57,7 @@
55
57
 
56
58
  - **CLI**:直接调用 Agent 核心,单次提示或批量脚本。
57
59
  - **WebSocket Gateway**(`src/gateway/`):对外提供 WebSocket(JSON-RPC),供 Web/移动端连接;负责起端口、拉 Nest 后端子进程、代理 `/server-api` 请求。**与「Desktop 后端」是不同进程。**
58
- - **Desktop 后端**(`src/server/`):NestJS HTTP API,即 **server-api**;会话、智能体配置、技能、任务、工作区、鉴权等由本模块提供。桌面前端与 Gateway 通过 HTTP 调用此服务。
60
+ - **Desktop 后端**(`src/server/`):NestJS HTTP API,即 **server-api**;默认端口 38081。会话、智能体配置、技能、任务、工作区、鉴权等由本模块提供。
59
61
  - **Desktop**:Electron 包一层 Vue 前端 + 上述后端;通过 Gateway 或直连 Desktop 后端与 Agent 通信。
60
62
  - **Agent 核心**:统一由 `AgentManager` 管理会话、技能注入与工具注册;记忆与 compaction 作为扩展参与 system prompt 与经验写入。
61
63
 
@@ -63,10 +65,10 @@
63
65
 
64
66
  | 目录 | 说明 |
65
67
  |------|------|
66
- | `src/server/` | **Desktop 后端**(NestJS),HTTP API,前缀 `server-api`。不要与「Gateway 进程」混淆。 |
68
+ | `src/server/` | **Desktop 后端**(NestJS),HTTP API,前缀 `server-api`。 |
67
69
  | `src/gateway/` | **WebSocket 网关**,独立进程,提供 WS JSON-RPC 并代理到 Desktop 后端。 |
68
70
  | `src/agent/` | Agent 核心(CLI 与 Gateway 共用)。 |
69
- | `src/config/` | 桌面配置读取(~/.openbot/desktop),CLI 与 Gateway 共用。 |
71
+ | `src/config/` | 桌面配置(~/.openbot/desktop):config.json、agents.json、provider-support.json;CLI 与 Gateway 共用。 |
70
72
  | `examples/workspace/` | 示例工作区数据(仅示例/测试用)。真实工作区根目录为 `~/.openbot/workspace/`。 |
71
73
 
72
74
  ---
@@ -126,7 +128,7 @@
126
128
  | 类别 | 技术 |
127
129
  |------|------|
128
130
  | 向量索引 | Vectra(LocalIndex) |
129
- | 嵌入 | @xenova/transformers(本地模型) |
131
+ | 嵌入 | 远端 API(config.json 中 RAG 知识库配置的 embedding 模型;未配置时长记忆空转) |
130
132
  | 扩展 | compaction-extension(会话压缩、摘要入 prompt) |
131
133
  | 持久化 | 与 agent 目录一致的 memory 目录、better-sqlite3(若用于元数据) |
132
134
 
@@ -139,21 +141,72 @@
139
141
 
140
142
  ---
141
143
 
142
- ## 快速开始
144
+ # 一、安装与部署
143
145
 
144
- ### 环境要求
146
+ 安装与部署按**安装方式**划分:npm、Docker、Desktop 安装包。任选其一即可使用对应端的 CLI、Web 或 Desktop。
145
147
 
146
- - **Node.js** ≥ 20
147
- - 可选:`OPENAI_API_KEY` (按所用 provider 配置)
148
+ ## 环境要求
148
149
 
149
- ### 安装与构建
150
+ - **Node.js** ≥ 20(npm 安装与本地开发必需)
151
+ - 可选:按所用 Provider 配置 API Key(如 `OPENAI_API_KEY`、`DEEPSEEK_API_KEY`)
152
+
153
+ ---
154
+
155
+ ## 1.1 npm 安装
156
+
157
+ 适用于:使用 **CLI**,或在自有环境中运行 **Gateway(Web)**。
158
+
159
+ ```bash
160
+ # 全局安装(测试过node版本:20/22 24太新,有一些库要本地编译环境)
161
+ npm install -g @next-open-ai/openbot
162
+ ```
163
+
164
+ 安装后可直接使用 `openbot` 命令(见下方「使用方式」)。若需从源码构建再安装:
150
165
 
151
166
  ```bash
167
+ git clone <repo>
168
+ cd openbot
152
169
  npm install
153
170
  npm run build
171
+ npm link # 或 npm install -g . 本地全局安装
172
+ ```
173
+
174
+ ---
175
+
176
+ ## 1.2 Docker 部署
177
+
178
+ 适用于:在服务器或容器环境中运行 **Gateway**,供 Web/其他客户端连接。
179
+
180
+ > **说明**:Docker 镜像与编排正在规划中,当前推荐使用 npm 全局安装后执行 `openbot gateway` 部署网关。
181
+
182
+ 规划中的使用方式示例:
183
+
184
+ ```bash
185
+ # 示例(以实际仓库/镜像名为准)
186
+ # docker pull next-open-ai/openbot
187
+ # docker run -p 38080:38080 -e OPENAI_API_KEY=xxx next-open-ai/openbot gateway
154
188
  ```
155
189
 
156
- ### CLI 使用
190
+ ---
191
+
192
+ ## 1.3 Desktop 安装包
193
+
194
+ 适用于:仅使用 **桌面端**,无需 Node 环境。
195
+
196
+ - 从 [Releases](https://github.com/next-open-ai/openbot/releases) 下载对应平台的安装包(macOS / Windows)。
197
+ - 安装后启动 OpenBot Desktop,按界面引导配置 API Key 与默认模型即可使用。
198
+
199
+ 首次使用建议在设置中配置默认 Provider/模型,或通过 CLI 执行 `openbot login <provider> <apiKey> [model]` / `openbot config set-model <provider> <modelId>`(与桌面端共用 `~/.openbot/desktop/` 配置)。
200
+
201
+ ---
202
+
203
+ # 二、使用方式
204
+
205
+ 按**使用端**划分:CLI、Web、Desktop;后续将支持 iOS、Android、飞书等。
206
+
207
+ ## 2.1 CLI
208
+
209
+ 在已通过 **npm 安装** 或 **源码构建并 link** 的环境中,在终端使用 `openbot`。
157
210
 
158
211
  ```bash
159
212
  # 直接对话(使用默认 workspace 与技能)
@@ -169,49 +222,143 @@ openbot --dry-run --prompt "查北京天气"
169
222
  openbot --model deepseek-chat --provider deepseek "写一段 TypeScript 示例"
170
223
  ```
171
224
 
172
- ### CLI 配置模型选项
225
+ ### CLI 配置(与桌面端共用)
226
+
227
+ CLI 与桌面端共用**桌面配置**(`~/.openbot/desktop/`)。主要文件:
173
228
 
174
- CLI 与桌面端共用**桌面配置**(`~/.openbot/desktop/config.json`)。未在命令行显式指定 `--provider` / `--model` 时,将使用该配置中的**缺省智能体**对应的 provider model;若该智能体未单独配置模型,则使用全局缺省模型。
229
+ - **config.json**:全局缺省 provider/model、**defaultModelItemCode**(缺省模型在 configuredModels 中的唯一标识)、缺省智能体 id(`defaultAgentId`)、各 provider API Key/baseUrl、已配置模型列表(configuredModels)等。
230
+ - **agents.json**:智能体列表;每个智能体可配置 provider、model、**modelItemCode**(匹配 configuredModels)、工作区。
231
+ - **provider-support.json**:Provider 与模型目录,供设置页下拉选择。
175
232
 
176
233
  | 操作 | 命令 | 说明 |
177
234
  |------|------|------|
178
- | 保存 API Key | `openbot login <provider> <apiKey>` | 将某 Provider API Key 写入桌面配置,供 CLI 与桌面端共用 |
179
- | 设置缺省模型 | `openbot config set-model <provider> <modelId>` | 在桌面配置中设置全局缺省 providermodel(如 `deepseek` / `deepseek-chat`) |
180
- | 查看配置 | `openbot config list` | 列出桌面配置中的 providers 与缺省模型 |
181
- | 同步到 Agent 目录 | `openbot config sync` | 将桌面配置同步到 `~/.openbot/agent/models.json`,供 pi-agent 使用 |
182
-
183
- **常用 Provider 示例**:`deepseek`、`dashscope`、`openai`、`openai-custom`(自定义 OpenAI 兼容端点)、`nvidia`、`kimi`。模型 ID 需与各 Provider 支持的一致(如 DeepSeek 的 `deepseek-chat`、OpenAI 的 `gpt-4o`);使用 `openai-custom` 时可填写自部署模型的 ID。
184
-
185
- **命令行覆盖**:单次执行时可用 `--provider`、`--model`、`--api-key` 覆盖配置或环境变量中的值。
186
-
187
- **环境变量**:未在桌面配置中保存 API Key 时,会回退到环境变量,例如 `OPENAI_API_KEY`、`DEEPSEEK_API_KEY`、`DASHSCOPE_API_KEY` 等(详见 `openbot --help` 末尾的 Environment 说明)。
235
+ | 保存 API Key(可选指定模型) | `openbot login <provider> <apiKey> [model]` | 写入 config.json;不传 model 时取该 provider 第一个模型并补齐缺省配置,可直接运行 |
236
+ | 设置缺省模型 | `openbot config set-model <provider> <modelId>` | 设置全局缺省 providermodel defaultModelItemCode |
237
+ | 查看配置 | `openbot config list` | 列出 providers 与缺省模型 |
238
+ | 同步到 Agent 目录 | `openbot config sync` | 生成并写入 `~/.openbot/agent/models.json` |
188
239
 
189
240
  **首次使用建议**:
190
241
 
191
242
  ```bash
192
- # 1. 保存 API Key(任选其一或多种)
243
+ # 方式一:login 后直接对话(不传 model 时自动用该 provider 第一个模型)
193
244
  openbot login deepseek YOUR_DEEPSEEK_API_KEY
194
- # openbot login openai YOUR_OPENAI_API_KEY
245
+ openbot "总结一下当前有哪些技能"
195
246
 
196
- # 2. 设置缺省模型
197
- openbot config set-model deepseek deepseek-chat
247
+ # 方式二:指定模型再 login
248
+ openbot login deepseek YOUR_DEEPSEEK_API_KEY deepseek-reasoner
249
+ openbot "总结一下当前有哪些技能"
198
250
 
199
- # 3. 可选:同步到 agent 目录(桌面端保存配置后也会自动同步)
251
+ # 方式三:先 login 再单独设置缺省模型
252
+ openbot login deepseek YOUR_DEEPSEEK_API_KEY
253
+ openbot config set-model deepseek deepseek-chat
200
254
  openbot config sync
201
-
202
- # 4. 直接对话
203
255
  openbot "总结一下当前有哪些技能"
204
256
  ```
205
257
 
206
- ### 启动 WebSocket 网关
258
+ 未在命令行指定 `--provider` / `--model` 时,CLI 使用缺省智能体对应的配置;单次可用 `--provider`、`--model`、`--api-key` 覆盖。未在配置中保存 API Key 时,会回退到环境变量(如 `OPENAI_API_KEY`、`DEEPSEEK_API_KEY`)。
259
+
260
+ ---
261
+
262
+ ## 2.2 Web
263
+
264
+ 通过 **WebSocket 网关** 使用 OpenBot:先启动网关,再通过 Web 客户端连接。
207
265
 
208
266
  ```bash
267
+ # 启动网关(默认端口 38080)
209
268
  openbot gateway --port 38080
210
269
  ```
211
270
 
212
- 客户端通过 `ws://localhost:38080` 连接,使用 JSON-RPC 调用 `connect`、`agent.chat` 等。
271
+ 客户端连接 `ws://localhost:38080`,使用 JSON-RPC 调用 `connect`、`agent.chat`、`agent.cancel` 等(详见下方「Gateway API 简述」)。
272
+ 前端可自行实现或使用仓库内 Web 示例(若有)。
273
+
274
+ ---
275
+
276
+ ## 2.3 Desktop
277
+
278
+ - **通过安装包**:安装后直接打开 OpenBot Desktop,登录/配置后即可使用桌面界面(会话、智能体、技能、任务、工作区等)。
279
+ - **通过源码**:在「开发」章节中运行 `npm run desktop:dev` 启动开发版桌面。
280
+
281
+ 桌面端与 CLI 共用同一套配置与 Agent 核心,同一台机器上配置一次即可双端使用。
282
+
283
+ ---
284
+
285
+ ## 2.4 即将支持
286
+
287
+ **通道与终端**
288
+
289
+ | 端 | 说明 |
290
+ |----|------|
291
+ | **iOS** | 规划中 |
292
+ | **Android** | 规划中 |
293
+ | **飞书** | 规划中 |
294
+
295
+ 上述端将通过 WebSocket Gateway 或专用适配与现有 Agent 核心对接。
296
+
297
+ **生态与协议**
298
+
299
+ | 方向 | 说明 |
300
+ |------|------|
301
+ | **MCP** | 支持 MCP 协议,降低 Token 消耗与大模型幻觉,与 Skill 自我发现/迭代形成互补 |
302
+ | **Coze 生态** | 接入现有 AI Agent 生态,下一步计划接入 Coze |
303
+
304
+ 文档与发布节奏后续更新。
305
+
306
+ ---
307
+
308
+ # 三、开发
213
309
 
214
- ### 启动桌面端
310
+ 面向**参与 OpenBot 源码开发**的读者,按形态分为 CLI、Web(Gateway + 前端)、Desktop 三部分。
311
+
312
+ ## 环境与依赖
313
+
314
+ - Node.js ≥ 20
315
+ - 仓库克隆后安装依赖并构建:
316
+
317
+ ```bash
318
+ git clone <repo>
319
+ cd openbot
320
+ npm install
321
+ npm run build
322
+ ```
323
+
324
+ ---
325
+
326
+ ## 3.1 CLI 开发
327
+
328
+ - 入口:`openbot` → bin → `dist/cli.js`
329
+ - 技术:Commander(子命令 `gateway`、`login`、`config`)、TypeScript 5.7
330
+ - 配置与数据:`~/.openbot/agent`、`~/.openbot/desktop`(与桌面共用)
331
+
332
+ 修改 CLI 后重新构建并本地安装:
333
+
334
+ ```bash
335
+ npm run build
336
+ npm link
337
+ openbot --help
338
+ ```
339
+
340
+ ---
341
+
342
+ ## 3.2 Web 开发(Gateway + 前端)
343
+
344
+ - **Gateway**:`src/gateway/`,默认端口 38080,可 `-p` 指定;协议 JSON-RPC over WebSocket;职责包括连接管理、消息路由、静态资源、拉 Nest 子进程。
345
+ - **方法**:`connect`、`agent.chat`、`agent.cancel`、`subscribe_session`、`unsubscribe_session` 等。
346
+
347
+ 本地启动网关:
348
+
349
+ ```bash
350
+ npm run build
351
+ openbot gateway --port 38080
352
+ ```
353
+
354
+ 若仓库内有独立 Web 前端工程,则分别启动 Gateway 与前端 dev server,前端通过 `ws://localhost:38080` 连接。
355
+
356
+ ---
357
+
358
+ ## 3.3 Desktop 开发
359
+
360
+ - **后端**:NestJS(`src/server/`),前缀 `server-api`,默认端口 38081;Gateway 启动时会拉该子进程并代理 `/server-api`。
361
+ - **前端**:Electron 28 + Vue 3 + Pinia + Vite 5,位于 `desktop/`。
215
362
 
216
363
  ```bash
217
364
  # 先构建核心(若未构建)
@@ -226,6 +373,25 @@ npm run desktop:install
226
373
 
227
374
  ---
228
375
 
376
+ ## 测试
377
+
378
+ ```bash
379
+ # 单元/集成测试(含 config、gateway、server e2e)
380
+ npm test
381
+
382
+ # 仅 e2e
383
+ npm run test:e2e
384
+
385
+ # 记忆相关测试
386
+ npm run test:memory
387
+ ```
388
+
389
+ 测试分布:`test/config/` 桌面配置、`test/gateway/` 网关、`test/server/` Nest 后端 e2e。
390
+
391
+ ---
392
+
393
+ # 附录
394
+
229
395
  ## Gateway API 简述
230
396
 
231
397
  - **请求**:`{ "type": "request", "id": "<id>", "method": "<method>", "params": { ... } }`
@@ -233,24 +399,22 @@ npm run desktop:install
233
399
  - **错误响应**:`{ "type": "response", "id": "<id>", "error": { "message": "..." } }`
234
400
  - **服务端事件**:如 `agent.chunk`(流式输出)、`agent.tool`(工具调用)等,格式为 `{ "type": "event", "event": "...", "payload": { ... } }`
235
401
 
236
- 常用方法:先 `connect` 建立会话,再通过 `agent.chat` 发送消息并接收流式/事件;`agent.cancel` 取消当前任务。
402
+ 常用流程:先 `connect` 建立会话,再通过 `agent.chat` 发送消息并接收流式/事件;`agent.cancel` 取消当前任务。
237
403
 
238
404
  ---
239
405
 
240
- ## 开发
406
+ ## 各端技术栈
241
407
 
242
- ```bash
243
- # 单元/集成测试(含 config/desktop-config、gateway/utils、server agents e2e)
244
- npm test
408
+ 详见上文「各端技术栈」章节(CLI、WebSocket Gateway、Agent 核心、Desktop 后端/前端、记忆与向量、内置技能)。
245
409
 
246
- # 仅 e2e
247
- npm run test:e2e
410
+ ---
248
411
 
249
- # 记忆相关测试
250
- npm run test:memory
251
- ```
412
+ ## 内置技能
252
413
 
253
- 测试分布:`test/config/` 桌面配置、`test/gateway/` 网关工具方法、`test/server/` Nest 后端 e2e。
414
+ | 技能 | 说明 |
415
+ |------|------|
416
+ | find-skills | 发现与安装 Cursor/Agent 技能 |
417
+ | agent-browser | 浏览器自动化(Playwright/agent-browser CLI) |
254
418
 
255
419
  ---
256
420