前言¶
DeepSeek Harness(DSH)的 @deepseek-ai/dsh-experimental-auto-review 预设会在每次工具调用前让 reviewer 判断:同意则执行,拒绝则在 ask 策略下弹出「等待审批」面板。人不在电脑前时,这个面板会长期阻塞任务。
dsh-unattended 针对这一场景提供开关:开启后,reviewer 拒绝的调用直接被拒绝,不再发起人工审批;reviewer 同意的调用照常执行。它不改变审查逻辑,只改变「拒绝之后找不找用户」这一步。
是什么¶
- 插件名:dsh-unattended
- 维护者:JHees
- 分类:工作流
- 功能:为 DSH 的自动审查预设增加「无人值守」开关
- 适用:桌面版 / Web 版 DSH,配合官方
@deepseek-ai/dsh-experimental-auto-review预设 - 仓库:https://github.com/JHees/dsh-unattended
插件通过把当前会话的审批策略设为 never,使得 reviewer 拒绝的调用直接返回最终拒绝(AUTO_REVIEW_DENIED),而不触发审批请求。审查本身仍由 reviewer 判定,不会「不审查」或「全部放行」。
核心行为¶
| 状态 | 审查同意 | 审查拒绝 |
|---|---|---|
| 无人值守关闭(默认) | 执行 | 弹人工审批 |
| 无人值守开启 | 执行 | 直接拒绝,不弹审批 |
无人值守会关闭该会话的所有人工审批(never)。自动审查预设本身是全权限沙箱,因此只有 reviewer 拒绝会产生审批请求,其余路径不受影响。
安装与启用¶
桌面版:
dsh plugin --profile desktop add github:JHees/dsh-unattended
Web 版:
dsh plugin --profile web add github:JHees/dsh-unattended
安装后刷新页面(或重启 DSH)即可。插件只会在「自动审查模式」下出现开关。
卸载:
dsh plugin --profile desktop remove dsh-unattended
典型用法¶
-
在 DSH 界面左下角、
自动审查 ⌄旁边找到「无人值守」按钮:
- 未开启时显示「无人值守」;
- 点一下后高亮显示「无人值守中」= 已开启。 -
命令行等价入口(任意客户端可用):
/unattended on # 开启
/unattended off # 关闭
/unattended # 查看当前状态
-
状态按会话保存在该会话日志的
approval/policy事件里,刷新、重启后保留。 -
切换权限预设会重写审批策略,因此无人值守会自动关闭;重新打开即可。
适用场景与注意¶
- 适合无人值守、长期运行的任务,避免审批面板挂起。
- 只在自动审查预设下可用;其它权限模式下按钮隐藏,
/unattended on会报错提示先切到自动审查。 - 插件依赖
approval/policy事件与 Auto review 的既有行为,DSH 升级后需留意语义变化。 - 未发布到 npm,只通过 GitHub 分发。
插件以当前 dsh 进程的权限运行。安装前建议查看源码与许可证(MIT)。
价值¶
dsh-unattended 不会引入新的判断逻辑,也不替代现有的审批策略插件,而是把「拒绝之后找不找用户」这一步变成可配置项。对需要无人值守运行、又希望保留自动审查能力的场景,它是一个轻量且可控的补充。
- 仓库:https://github.com/JHees/dsh-unattended
- 目录页:https://www.skillhub.cn/plugins/JHees/dsh-unattended