前言¶
DeepSeek Harness (DSH) 采用插件化架构,Web UI 本身聚焦于对话交互。开发者在调试智能体或查看工作目录时,常需要直接浏览文件、预览内容或执行命令。dsh-plugin-workbench 作为一个出站插件,为 DSH Web UI 补充了文件浏览器、文件预览和浏览器终端的能力。
这是什么¶
这是一个运行在 DeepSeek Harness Web UI 中的插件,由 ghbhiee 维护,遵循 MIT 许可证。它不依赖 npm 包,通过 GitHub 仓库直接分发编译后的文件,支持本地开发与热更新。
核心功能¶
该插件提供以下核心能力:
* 文件浏览器与搜索:浏览目录结构、搜索文件名。
* 文件预览:支持文本、图片、PDF 等格式的内容查看。
* 浏览器终端:在 Web 界面内直接调用 Shell。
* 文件读写与上传下载:支持文件的读取、写入、上传及下载。
* 终端协议支持:通过 WebSocket 实现终端交互。
* 安全限制与沙箱:包含访问控制、写入限制和路径保护。
安装与启用¶
插件未发布在 npm 上,安装和开发过程如下:
- 从 GitHub 安装
dsh plugin --profile web add github:ghbhiee/dsh-plugin-workbench
- 本地开发
克隆仓库后,使用 pnpm 安装依赖并进行类型检查和构建:
pnpm install
pnpm run check
- 配置启用
默认情况下,写入 (writeEnabled) 和终端 (ptyEnabled) 功能是关闭的。需要在 Web profile 的cordis.patch.yml中进行配置:
- id: workbench
config:
ptyEnabled: true
readRoots:
- /Users/me/notes
配置项说明:
* `readRoots`:允许浏览器读取的额外绝对目录列表(默认为空)。
* `writeEnabled`:允许写入、上传、创建目录等操作。
* `ptyEnabled`:允许在浏览器中启动 Shell。
典型用法¶
安装并配置后,插件通过 API 接口提供服务。主要的交互方式包括:
- 目录列表:通过
GET /plugins/workbench/api/list?root=&path=获取目录内容。 - 文件读取:通过
GET /plugins/workbench/api/read?root=&path=获取文本内容(强制 UTF-8)。 - 文件写入:通过
PUT /plugins/workbench/api/write?root=&path=提交修改。 - 终端连接:通过 WebSocket
WS /plugins/workbench/pty建立终端会话。
适用场景与注意¶
该插件适合需要在 Web 界面直接管理文件和运行 Shell 的场景。使用时需注意以下限制:
- 仅支持 Web Profile:必须使用
--profile web参数加载。 - 默认安全策略:默认为只读模式,写入和终端功能需显式开启。
- 容量限制:文件读写操作有 32 MiB 的限制。
- 根目录限制:无法在根目录进行创建、重命名或删除操作。
- 符号链接限制:不支持将符号链接作为写入目标。
- 编码限制:读取内容强制要求 UTF-8 编码,否则返回 415 错误。
短结尾¶
dsh-plugin-workbench 通过提供标准的 HTTP API 和 WebSocket 终端接口,为 DeepSeek Harness 的 Web 界面增加了完整的文件系统操作能力。安装前请确认源码与许可证,并根据需求在配置中开启相应功能。