dsh-pause
DSH Web 暂停插件:agent 完成一轮工具交互、正要发出下一次模型请求之前在 agent/pre-step 处拉门暂停,保持 composer 输入框可用,人类在主输入框按回车放行,空草稿为无感继续、带字作为插话一并放行;此暂停不打断任何在途 API 调用,模型上下文完整、无感知。纯插件自包含,不改 DSH 源码。
- Stars
- 0
- Language
- TypeScript
- Created
- Sep 7, 2026
- Updated
- Sep 7, 2026
Introduction
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