前言¶
DeepSeek Harness(DSH)的设计理念是「一切皆插件」。在实际使用中,开发者或用户往往只需要进行对话、检索网页或查看历史,而不希望产生文件写入或执行命令的风险。现有的会话可能已经配置了复杂的工具,切换模式容易误触。dsh-no-workspace 插件就是为了解决这个问题而生,它为 DSH 提供了一个独立的「只读会话」入口。
插件介绍¶
dsh-no-workspace 是一个由 Syhz-666 维护的社区插件,遵循 MIT License。它不修改 DeepSeek 官方源码,而是通过内存注入的方式为官方 Web 构建增加功能。核心价值在于提供「不使用工作区」的会话模式,并将该模式结构性锁定为只读。
核心能力¶
该插件主要包含以下能力:
- 不使用工作区(只读会话):在官方工作区选择器中增加一个入口,点击后直接创建无工作区的会话,工作目录位于
$DSH_HOME/.dsh-no-workspace/<sessionId>/的空隔离目录中。 - 结构性只读锁定:会话启动时写入零长度的
turn/start和turn/end文件,使其永久非空白。这会触发官方的预设切换守卫,永久拒绝任何工具面的升级或变更。 - 与官方构建零耦合:插件不修改官方源码或构建产物。菜单项在服务启动时由精确路由在内存中注入官方 bundle。官方项目重建或升级后无需重放操作。
- 工具面不可升级:
no-workspace预设只挂载只读工具,官方的 Shell 和写入工具(tool-fs)从不挂载。 - 文件访问受控:读取绝对路径需要逐次审批,相对路径在隔离根内免审批;无会话目录的读取直接拒绝。
- 无写入与命令:会话内没有 Shell、没有写入工具、没有子代理。
安装与启用¶
在使用前,请确保本地已有一份已构建的官方 DSH 项目。
- 获取插件源码并构建:
git clone <仓库地址> dsh-no-workspace
cd dsh-no-workspace
pnpm install && pnpm run build
- 在官方 DSH 项目目录内安装插件:
cd <dsh 项目目录>
pnpm dsh plugin --profile web add <插件目录的绝对路径>
- 重启 DSH Web 并刷新浏览器:
pnpm dsh web
(浏览器需硬刷新 Ctrl+F5 以加载新菜单)
使用方式¶
进入插件提供的只读会话有三种方式:
- 打开工作区选择器,点击「不使用工作区(只读会话)」;
- 在任意会话中输入
/readonly-session命令; - 在模式选择器中选择「只读会话」。
通过「不使用工作区」菜单或命令创建的会话,默认模型为 deepseek-v4-flash + reasoningEffort: 'low',会话内可随时手动修改。从模式选择器切换进入的会话,会沿用其原有的模型配置。
安全模型¶
插件通过机制保证只读性:
- 锁定机制:会话一旦被标记为只读,系统写入
turn/start和turn/end,使其不再为空白状态。官方的预设切换守卫(agent-preset-locked)会永久拒绝任何预设变更,确保工具面不可升级。 - 工具限制:
no-workspace预设仅包含只读工具,禁用了所有写入和 Shell 能力。 - 文件权限:虽然沙箱模式可切换,但由于没有写工具消费更宽的权限,权限旋钮在当前模式下无实际效果。文件访问遵循隔离根规则,绝对路径需审批,相对路径在隔离根内免审批。
注意事项¶
- 本插件为社区插件,非 DeepSeek 官方产品。
- 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。
- 由于工具面被结构性锁定,无法在只读会话中通过插件机制升级工具。
结语¶
dsh-no-workspace 为 DeepSeek Harness 增加了一个安全的「对话」与「检索」层。它通过零耦合的架构和结构化的锁定机制,在不侵入官方代码的前提下实现了会话隔离与只读保护。如需了解更多细节,可访问插件目录页或 GitHub 仓库。