New:Microsoft Teams Notifications Are Now Available in Socket.Learn more →
Get Started

@next-open-ai/openbot

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@next-open-ai/openbot

CLI and library to run prompts with skill paths (Agent Skills style). Use as npm package or openbot CLI.

npmnpm
Version
0.1.8
Version published
Weekly downloads
23
91.67%
Maintainers
1
Weekly downloads
 
Created
Source

OpenBot

Node.js TypeScript License: MIT

OpenBot 是基于 Agent Skills 与编码智能体(Coding Agent)的一体化 AI 助手平台,支持 CLI、WebSocket 网关与桌面端。通过可插拔技能(Skills)、浏览器自动化、代码执行与长期记忆,为开发与日常任务提供可扩展的 AI 工作流。除提供可自我升级扩展的 AI Agent 引擎及多通道、多终端接入外,后续将支持 MCP 以降低 Token 消耗与大模型幻觉,并接入现有 AI Agent 生态(下一步计划接入 Coze)。

特性概览

能力说明
技能架构基于 Agent Skills 规范,支持多路径加载、本地安装与动态扩展;支持技能自我发现与自我迭代
编码智能体集成 pi-coding-agent,支持多轮工具调用与代码执行
浏览器自动化内置 agent-browser,可导航、填表、截图与数据抓取
长期记忆向量存储(Vectra)+ 本地嵌入,支持经验总结与会话压缩(compaction)
多端接入CLI、WebSocket 网关、Electron 桌面端,同一套 Agent 核心;各端技术栈见下方「各端技术栈」
MCP(规划中)为降低 Token 消耗与大模型幻觉,后续将支持 MCP(Model Context Protocol)
生态接入(规划中)接入现有 AI Agent 生态,下一步计划接入 Coze 生态

技术架构

┌─────────────────────────────────────────────────────────────────────────────┐
│                              客户端 / 接入层                                  │
├─────────────────┬─────────────────────────────┬─────────────────────────────┤
│   CLI (openbot) │   WebSocket Gateway (JSON-RPC)  │   OpenBot Desktop (Electron)  │
│   Commander     │   ws, 端口 38080              │   Vue 3 + Pinia + Vite       │
└────────┬────────┴──────────────┬──────────────┴──────────────┬──────────────┘
         │                        │                             │
         │                        │  HTTP + Socket.io            │
         ▼                        ▼                             ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                            Gateway Server (Node)                             │
│  • 静态资源 • 自动发现端口 • 子进程拉起 Desktop Server                        │
└────────────────────────────────────┬────────────────────────────────────────┘
                                      │
         ┌────────────────────────────┼────────────────────────────┐
         ▼                            ▼                            ▼
┌─────────────────┐    ┌─────────────────────────────┐    ┌─────────────────────┐
│  Agent 核心      │    │  Desktop Backend (NestJS)   │    │  Memory / 向量存储   │
│  AgentManager   │    │  server-api/*               │    │  Vectra + 嵌入       │
│  pi-coding-agent│    │  Agents · Skills · Tasks    │    │  compaction 扩展     │
│  pi-ai 多模型   │    │  Auth · Users · Workspace   │    │  better-sqlite3      │
└────────┬────────┘    └─────────────────────────────┘    └─────────────────────┘
         │
         ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│  Tools: read/write/edit · bash · find/grep/ls · browser · install-skill ·   │
│         save-experience (写入记忆)                                            │
└─────────────────────────────────────────────────────────────────────────────┘
  • CLI:直接调用 Agent 核心,单次提示或批量脚本。
  • WebSocket Gateway(src/gateway/):对外提供 WebSocket(JSON-RPC),供 Web/移动端连接;负责起端口、拉 Nest 后端子进程、代理 /server-api 请求。与「Desktop 后端」是不同进程。
  • Desktop 后端(src/server/):NestJS HTTP API,即 server-api;默认端口 38081。会话、智能体配置、技能、任务、工作区、鉴权等由本模块提供。
  • Desktop:Electron 包一层 Vue 前端 + 上述后端;通过 Gateway 或直连 Desktop 后端与 Agent 通信。
  • Agent 核心:统一由 AgentManager 管理会话、技能注入与工具注册;记忆与 compaction 作为扩展参与 system prompt 与经验写入。

目录与模块对应

目录说明
src/server/Desktop 后端(NestJS),HTTP API,前缀 server-api。
src/gateway/WebSocket 网关,独立进程,提供 WS JSON-RPC 并代理到 Desktop 后端。
src/agent/Agent 核心(CLI 与 Gateway 共用)。
src/config/桌面配置(~/.openbot/desktop):config.json、agents.json、provider-support.json;CLI 与 Gateway 共用。
examples/workspace/示例工作区数据(仅示例/测试用)。真实工作区根目录为 ~/.openbot/workspace/。

各端技术栈

CLI

类别技术
运行时Node.js 20+
语言TypeScript 5.7
入口openbot(bin → dist/cli.js)
框架Commander(子命令:gateway、login、config)
配置~/.openbot/agent(API Key、模型、技能等)

WebSocket Gateway

类别技术
协议JSON-RPC over WebSocket(ws)
端口默认 38080,可 -p 指定
职责连接管理、消息路由、静态资源、拉 Nest 子进程
方法connect、agent.chat、agent.cancel、subscribe_session、unsubscribe_session 等

Agent 核心

类别技术
智能体@mariozechner/pi-coding-agent
模型/Provider@mariozechner/pi-ai(DeepSeek、DashScope、OpenAI 等)
工具read/write/edit、bash、find/grep/ls、browser、install-skill、save-experience
技能SKILL.md 规范,多路径加载,formatSkillsForPrompt 注入 system prompt

Desktop 后端(NestJS)

类别技术
框架NestJS 10、Express、Socket.io
前缀server-api
模块Database · Agents · AgentConfig · Skills · Config · Auth · Users · Workspace · Tasks · Usage
数据better-sqlite3(若使用本地库)

Desktop 前端(Electron + Vue)

类别技术
壳子Electron 28
前端Vue 3、Vue Router、Pinia
构建Vite 5
通信axios、socket.io-client
视图Dashboard、Agents、AgentChat/AgentDetail、Sessions、Skills、Settings、Tasks、WorkResults、Workspace、Login
国际化自研 useI18n + locales (zh/en)

记忆与向量

类别技术
向量索引Vectra(LocalIndex)
嵌入远端 API(config.json 中 RAG 知识库配置的 embedding 模型;未配置时长记忆空转)
扩展compaction-extension(会话压缩、摘要入 prompt)
持久化与 agent 目录一致的 memory 目录、better-sqlite3(若用于元数据)

内置技能

技能说明
find-skills发现与安装 Cursor/Agent 技能
agent-browser浏览器自动化(Playwright/agent-browser CLI)

一、安装与部署

安装与部署按安装方式划分:npm、Docker、Desktop 安装包。任选其一即可使用对应端的 CLI、Web 或 Desktop。

环境要求

  • Node.js ≥ 20(npm 安装与本地开发必需)
  • 可选:按所用 Provider 配置 API Key(如 OPENAI_API_KEY、DEEPSEEK_API_KEY)

1.1 npm 安装

适用于:使用 CLI,或在自有环境中运行 Gateway(Web)。

# 全局安装(测试过node版本:20/22 24太新,有一些库要本地编译环境)
npm install -g @next-open-ai/openbot

安装后可直接使用 openbot 命令(见下方「使用方式」)。若需从源码构建再安装:

git clone <repo>
cd openbot
npm install
npm run build
npm link   # 或 npm install -g . 本地全局安装

1.2 Docker 部署

适用于:在服务器或容器环境中运行 Gateway,供 Web/其他客户端连接。

说明:Docker 镜像与编排正在规划中,当前推荐使用 npm 全局安装后执行 openbot gateway 部署网关。

规划中的使用方式示例:

# 示例(以实际仓库/镜像名为准)
# docker pull next-open-ai/openbot
# docker run -p 38080:38080 -e OPENAI_API_KEY=xxx next-open-ai/openbot gateway

1.3 Desktop 安装包

适用于:仅使用 桌面端,无需 Node 环境。

  • 从 Releases 下载对应平台的安装包(macOS / Windows)。
  • 安装后启动 OpenBot Desktop,按界面引导配置 API Key 与默认模型即可使用。

首次使用建议在设置中配置默认 Provider/模型,或通过 CLI 执行 openbot login <provider> <apiKey> [model] / openbot config set-model <provider> <modelId>(与桌面端共用 ~/.openbot/desktop/ 配置)。

二、使用方式

按使用端划分:CLI、Web、Desktop;后续将支持 iOS、Android、飞书等。

2.1 CLI

在已通过 npm 安装 或 源码构建并 link 的环境中,在终端使用 openbot。

# 直接对话(使用默认 workspace 与技能)
openbot "总结一下当前有哪些技能"

# 指定技能路径
openbot -s ./skills "用 find-skills 搜一下 PDF 相关技能"

# 仅打印 system/user prompt,不调 LLM
openbot --dry-run --prompt "查北京天气"

# 指定模型与 provider(覆盖桌面缺省)
openbot --model deepseek-chat --provider deepseek "写一段 TypeScript 示例"

CLI 配置(与桌面端共用)

CLI 与桌面端共用桌面配置(~/.openbot/desktop/)。主要文件:

  • config.json:全局缺省 provider/model、defaultModelItemCode(缺省模型在 configuredModels 中的唯一标识)、缺省智能体 id(defaultAgentId)、各 provider 的 API Key/baseUrl、已配置模型列表(configuredModels)等。
  • agents.json:智能体列表;每个智能体可配置 provider、model、modelItemCode(匹配 configuredModels)、工作区。
  • provider-support.json:Provider 与模型目录,供设置页下拉选择。
操作命令说明
保存 API Key(可选指定模型)openbot login <provider> <apiKey> [model]写入 config.json;不传 model 时取该 provider 第一个模型并补齐缺省配置,可直接运行
设置缺省模型openbot config set-model <provider> <modelId>设置全局缺省 provider、model 及 defaultModelItemCode
查看配置openbot config list列出 providers 与缺省模型
同步到 Agent 目录openbot config sync生成并写入 ~/.openbot/agent/models.json

首次使用建议:

# 方式一:login 后直接对话(不传 model 时自动用该 provider 第一个模型)
openbot login deepseek YOUR_DEEPSEEK_API_KEY
openbot "总结一下当前有哪些技能"

# 方式二:指定模型再 login
openbot login deepseek YOUR_DEEPSEEK_API_KEY deepseek-reasoner
openbot "总结一下当前有哪些技能"

# 方式三:先 login 再单独设置缺省模型
openbot login deepseek YOUR_DEEPSEEK_API_KEY
openbot config set-model deepseek deepseek-chat
openbot config sync
openbot "总结一下当前有哪些技能"

未在命令行指定 --provider / --model 时,CLI 使用缺省智能体对应的配置;单次可用 --provider、--model、--api-key 覆盖。未在配置中保存 API Key 时,会回退到环境变量(如 OPENAI_API_KEY、DEEPSEEK_API_KEY)。

2.2 Web

通过 WebSocket 网关 使用 OpenBot:先启动网关,再通过 Web 客户端连接。

# 启动网关(默认端口 38080)
openbot gateway --port 38080

客户端连接 ws://localhost:38080,使用 JSON-RPC 调用 connect、agent.chat、agent.cancel 等(详见下方「Gateway API 简述」)。
前端可自行实现或使用仓库内 Web 示例(若有)。

2.3 Desktop

  • 通过安装包:安装后直接打开 OpenBot Desktop,登录/配置后即可使用桌面界面(会话、智能体、技能、任务、工作区等)。
  • 通过源码:在「开发」章节中运行 npm run desktop:dev 启动开发版桌面。

桌面端与 CLI 共用同一套配置与 Agent 核心,同一台机器上配置一次即可双端使用。

2.4 即将支持

通道与终端

端说明
iOS规划中
Android规划中
飞书规划中

上述端将通过 WebSocket Gateway 或专用适配与现有 Agent 核心对接。

生态与协议

方向说明
MCP支持 MCP 协议,降低 Token 消耗与大模型幻觉,与 Skill 自我发现/迭代形成互补
Coze 生态接入现有 AI Agent 生态,下一步计划接入 Coze

文档与发布节奏后续更新。

三、开发

面向参与 OpenBot 源码开发的读者,按形态分为 CLI、Web(Gateway + 前端)、Desktop 三部分。

环境与依赖

  • Node.js ≥ 20
  • 仓库克隆后安装依赖并构建:
git clone <repo>
cd openbot
npm install
npm run build

3.1 CLI 开发

  • 入口:openbot → bin → dist/cli.js
  • 技术:Commander(子命令 gateway、login、config)、TypeScript 5.7
  • 配置与数据:~/.openbot/agent、~/.openbot/desktop(与桌面共用)

修改 CLI 后重新构建并本地安装:

npm run build
npm link
openbot --help

3.2 Web 开发(Gateway + 前端)

  • Gateway:src/gateway/,默认端口 38080,可 -p 指定;协议 JSON-RPC over WebSocket;职责包括连接管理、消息路由、静态资源、拉 Nest 子进程。
  • 方法:connect、agent.chat、agent.cancel、subscribe_session、unsubscribe_session 等。

本地启动网关:

npm run build
openbot gateway --port 38080

若仓库内有独立 Web 前端工程,则分别启动 Gateway 与前端 dev server,前端通过 ws://localhost:38080 连接。

3.3 Desktop 开发

  • 后端:NestJS(src/server/),前缀 server-api,默认端口 38081;Gateway 启动时会拉该子进程并代理 /server-api。
  • 前端:Electron 28 + Vue 3 + Pinia + Vite 5,位于 desktop/。
# 先构建核心(若未构建)
npm run build

# 开发模式(Vite 热更 + Electron)
npm run desktop:dev

# 仅安装桌面依赖
npm run desktop:install

测试

# 单元/集成测试(含 config、gateway、server e2e)
npm test

# 仅 e2e
npm run test:e2e

# 记忆相关测试
npm run test:memory

测试分布:test/config/ 桌面配置、test/gateway/ 网关、test/server/ Nest 后端 e2e。

附录

Gateway API 简述

  • 请求:{ "type": "request", "id": "<id>", "method": "<method>", "params": { ... } }
  • 成功响应:{ "type": "response", "id": "<id>", "result": { ... } }
  • 错误响应:{ "type": "response", "id": "<id>", "error": { "message": "..." } }
  • 服务端事件:如 agent.chunk(流式输出)、agent.tool(工具调用)等,格式为 { "type": "event", "event": "...", "payload": { ... } }

常用流程:先 connect 建立会话,再通过 agent.chat 发送消息并接收流式/事件;agent.cancel 取消当前任务。

各端技术栈

详见上文「各端技术栈」章节(CLI、WebSocket Gateway、Agent 核心、Desktop 后端/前端、记忆与向量、内置技能)。

内置技能

技能说明
find-skills发现与安装 Cursor/Agent 技能
agent-browser浏览器自动化(Playwright/agent-browser CLI)

许可证

MIT

Keywords

skill

FAQs

Package last updated on 10 Feb 2026

Related posts