dsh-no-workspace:DeepSeek Harness 只读会话插件

前言

DeepSeek Harness(DSH)的设计理念是「一切皆插件」。在实际使用中,开发者或用户往往只需要进行对话、检索网页或查看历史,而不希望产生文件写入或执行命令的风险。现有的会话可能已经配置了复杂的工具,切换模式容易误触。dsh-no-workspace 插件就是为了解决这个问题而生,它为 DSH 提供了一个独立的「只读会话」入口。

插件介绍

dsh-no-workspace 是一个由 Syhz-666 维护的社区插件,遵循 MIT License。它不修改 DeepSeek 官方源码,而是通过内存注入的方式为官方 Web 构建增加功能。核心价值在于提供「不使用工作区」的会话模式,并将该模式结构性锁定为只读。

核心能力

该插件主要包含以下能力:

  1. 不使用工作区(只读会话):在官方工作区选择器中增加一个入口,点击后直接创建无工作区的会话,工作目录位于 $DSH_HOME/.dsh-no-workspace/<sessionId>/ 的空隔离目录中。
  2. 结构性只读锁定:会话启动时写入零长度的 turn/start 和 turn/end 文件,使其永久非空白。这会触发官方的预设切换守卫,永久拒绝任何工具面的升级或变更。
  3. 与官方构建零耦合:插件不修改官方源码或构建产物。菜单项在服务启动时由精确路由在内存中注入官方 bundle。官方项目重建或升级后无需重放操作。
  4. 工具面不可升级:no-workspace 预设只挂载只读工具,官方的 Shell 和写入工具(tool-fs)从不挂载。
  5. 文件访问受控:读取绝对路径需要逐次审批,相对路径在隔离根内免审批;无会话目录的读取直接拒绝。
  6. 无写入与命令:会话内没有 Shell、没有写入工具、没有子代理。

安装与启用

在使用前,请确保本地已有一份已构建的官方 DSH 项目。

  1. 获取插件源码并构建:
    git clone <仓库地址> dsh-no-workspace
    cd dsh-no-workspace
    pnpm install && pnpm run build
  1. 在官方 DSH 项目目录内安装插件:
    cd <dsh 项目目录>
    pnpm dsh plugin --profile web add <插件目录的绝对路径>
  1. 重启 DSH Web 并刷新浏览器:
    pnpm dsh web
(浏览器需硬刷新 Ctrl+F5 以加载新菜单)

使用方式

进入插件提供的只读会话有三种方式:

  1. 打开工作区选择器,点击「不使用工作区(只读会话)」;
  2. 在任意会话中输入 /readonly-session 命令;
  3. 在模式选择器中选择「只读会话」。

通过「不使用工作区」菜单或命令创建的会话,默认模型为 deepseek-v4-flash + reasoningEffort: 'low',会话内可随时手动修改。从模式选择器切换进入的会话,会沿用其原有的模型配置。

安全模型

插件通过机制保证只读性:

  • 锁定机制:会话一旦被标记为只读,系统写入 turn/start 和 turn/end,使其不再为空白状态。官方的预设切换守卫(agent-preset-locked)会永久拒绝任何预设变更,确保工具面不可升级。
  • 工具限制:no-workspace 预设仅包含只读工具,禁用了所有写入和 Shell 能力。
  • 文件权限:虽然沙箱模式可切换,但由于没有写工具消费更宽的权限,权限旋钮在当前模式下无实际效果。文件访问遵循隔离根规则,绝对路径需审批,相对路径在隔离根内免审批。

注意事项

  • 本插件为社区插件,非 DeepSeek 官方产品。
  • 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。
  • 由于工具面被结构性锁定,无法在只读会话中通过插件机制升级工具。

结语

dsh-no-workspace 为 DeepSeek Harness 增加了一个安全的「对话」与「检索」层。它通过零耦合的架构和结构化的锁定机制,在不侵入官方代码的前提下实现了会话隔离与只读保护。如需了解更多细节,可访问插件目录页或 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜