dsh·暂停插件
引言
DeepSeek Harness 自动调用工具并连续作答,虽然有插话发送但是 DeepSeek 输出太快了,拼尽全力也没有其百分之一的 tok/s,根本无法成功插话。而直接打断 DeepSeek 的输出会导致其变得胆小,甚至不再调用工具,感觉就差哭出来了。
此插件使用了拔网线的力量,直接阻止 DeepSeek 发出下一次请求,直到你按下 Enter 或点按钮放行。暂停期间 composer 输入框照常可打字并插话发送后自动继续,或者直接回车让模型无感继续。
功能
- 可开关:默认关闭,每个会话可独立开启。
- 暂停在请求前:模型完成一轮工具交互、正要发出下一次请求之前停下,不打断任何在途 API 调用。
- 保持 composer 可用:暂停期间输入框照常可打字,不遮挡、不切换。
- 回车即放行:在主输入框按裸 Enter 继续。草稿为空为无感放行,草稿有字则把文字作为插话随本次请求一并发出,随后清空草稿。
- 按钮同样放行:也可直接点「已暂停·回车或点此继续」按钮,行为同上并读取当前草稿。
- 模型无感知:上下文完整、不插入多余消息,模型察觉不到暂停存在。
它长什么样
开关打开、暂停被触发时,composer 工具行右侧出现一个暂停控件:

暂停时在主输入框按 Enter 即继续。未开启开关时不拦截任何按键,一切照常。
安装
从 GitHub 安装:源码在 src/,lib/ 不入仓库,安装时 npm 会触发 prepare 脚本现场构建。
dsh plugin --profile web add github:better-er/dsh-pause
从 npm 安装:包内已含构建产物 lib/index.js 与 lib/client.js,安装时不再构建。
dsh plugin --profile web add dsh-pause
两种方式装完都会自动挂载,重启 DSH web 后启用,无需手工编辑任何文件。
卸载
dsh plugin --profile web remove dsh-pause
彻底移除,重启 DSH web 后不再加载。
使用
- 点 composer 工具行右侧的「暂停」按钮,变「暂停开」即该会话已开启。
- 之后该会话的工具续跑请求会在发出前停下等你。
- 需要放行时在主输入框按裸 Enter,空为无感继续,有字为插话。也可点「已暂停·回车或点此继续」。
- 用完再点「暂停开」关掉。暂停中关掉会放行正挂着的门。
配置
cordis 配置项 defaultEnabled,默认 false:
plugins:
dsh-pause:
defaultEnabled: false
运行期可用 composer 里的开关逐会话切换,并覆盖 defaultEnabled。
工作原理
dsh 把一次模型请求当作一个 step,agent 连续调用工具时会经历 step、工具执行、下一次 step 的循环。
本插件挂在 agent/pre-step,在「带工具结果的下一请求」正要进入前决定是否拉门。
- 暂停点设在请求真正发出之前,故无在途调用可打断。
- 续跑判定用同一 turn 内 step 大于 1 近似,首条纯文字请求永不暂停。
- 浏览器端经
conversation.input.right槽位在 composer 工具行渲染控件。 - 因 dsh 的 composer Enter 由 InputBar 私有 keymap 处理、第三方无 hook 点,暂停态用 DOM capture 拦截裸 Enter 改走放行,不改 DSH 源码。
开发
pnpm install
pnpm typecheck
pnpm test
pnpm build
No comments yet. Be the first to write one.