dsh-autogate:DSH 自动审批插件

前言

在 DSH Auto 会话里,工具调用往往需要审批。已有做法通常会依赖 workspace-write 沙箱和提权审批来保持执行边界;dsh-autogate 在这之上增加 auto-ask 半自动与 auto 全自动两档权限,目标是减少人工审批,而不是放宽沙箱。

下面介绍这个插件的定位、决策机制、安装方式、配置项和需要注意的安全边界。

这是什么

wangxing-git/dsh-autogatewangxing-git 维护的 DeepSeek Harness 自动审批插件。

它的一句话定位是:在 workspace-write 沙箱之上增加「半自动(auto-ask)+ 全自动(auto)」两档权限,采用「确定性规则 + LLM 安全审批 +(半自动下)被拒绝方主动人工审批」分层决策。保留工作区沙箱边界,不放宽为 full-access

核心机制

L0 确定性规则

L0 层做零成本 allow/deny 判断,不依赖 LLM。

已核实的能力覆盖以下场景:

  • 只读操作
  • 会话状态
  • 工作区内编辑与删除
  • build/test
  • run_code 容器

这一层的作用是:能由规则直接判断的调用,先由规则判断,避免每次都进入 LLM 审批。

L1 LLM 安全审批

L1 层面向「沙箱不拦截但语义危险」的操作,由 LLM 做 allow/deny 裁决。

这一层不改变普通调用的沙箱边界:普通调用保持 workspace-write,L0/L1 决策不放宽沙箱。

L2 人工审批或最终裁决

L2 层对应人工兜底。

两种模式的差异主要在 L2:

  • auto-ask:半自动模式,保留人工弹窗。
  • auto:全自动模式,LLM 裁决为最终决定。

安全策略

fail-closed

插件采用 fail-closed 策略:分类器异常、超时、无路由或格式错误一律拒绝。

这意味着 LLM 分类器不可用时,不会默认放行,而是倾向拒绝,以减少误放行。

输入脱敏与标签隔离

分类器输入会经过脱敏,并使用 <untrusted> / <user-authority> 标签隔离,同时内置注入防御。

这属于提示词注入层面的软防御,可以抬高注入门槛,但不能彻底消除注入风险。

非 Auto 会话行为

非 Auto 会话原样放行,不改变官方行为。

审批轨迹

审批轨迹 UI 会注入 shell.overlay 槽位。

已核实的轨迹能力包括:

  • 显示最近 50 条记录
  • 按会话隔离
  • 每 2 秒轮询 trail RPC

showTrail: false 可以隐藏右下角审批轨迹浮窗,并停止轮询 trail RPC;服务端轨迹仍会记录。

轨迹为进程级、仅内存保存,dsh 重启即清空,从不持久化。

安装

安装前请先确认:插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。资料未明确许可证字段,需要在仓库中自行确认。

1、从 GitHub 安装:

dsh plugin --profile web add github:wangxing-git/dsh-autogate

2、如果 dsh 不在 PATH 中,可以使用:

npx @deepseek-ai/dsh plugin --profile web add github:wangxing-git/dsh-autogate

3、重启 dsh

配置

配置经 DSH settings 服务写入 $DSH_HOME/settings.yamlautogate 段,并支持热重载。未挂载 settings 服务时,会回退 cordis.patch.yml 的 entry config。

基础示例:

autogate:
  preflight: false
  presetName: auto-ask
  fullAutoPresetName: auto

各配置项说明如下:

  • preflight:默认 false。设为 false 时,跳过沙盒前普通确定性规则 + LLM 分类;硬 deny 与审批请求预审仍生效。设为 true 时,恢复完整沙盒前拦截。
  • presetName:半自动模式预设键,默认 auto-ask
  • fullAutoPresetName:全自动模式预设键,默认 auto
  • showTrail:设为 false 时,隐藏右下角审批轨迹浮窗并停止轮询 trail RPC;服务端轨迹仍记录。

也可以通过 DSH 设置卡读写官方 settings API(ctx.connection.api.settingsdescribe / mutate);审批轨迹面板经 /autogate RPC 端点 trail 拉取。

适用场景与注意

适合在 DSH Auto 会话中减少人工审批,并且希望保留 workspace-write 沙箱边界的场景。

需要注意以下限制:

  1. 这个插件是「减少人工审批的决策层」,不是安全边界。真正执行边界仍是 DSH workspace-write 沙箱及其提权审批。
  2. L1 LLM 分类器是启发式,可能误判。fail-closed 可以减少误放行,但无法消除误判。
  3. 提示词注入防御是软防御,可抬高注入门槛,但无法彻底消除。
  4. 静态路径检查存在 TOCTOU 窗口:符号链接可能在检查通过后、写入前被重新指向。
  5. 全自动 auto 模式下,LLM 裁决为最终决定、不再人工弹窗,仅建议在可信环境使用。
  6. L2 escalation 路径是一次性放宽:LLM 批准提权后,该次调用以请求的更宽沙箱(通常 full-access)运行。
  7. 审批轨迹仅保存在当前进程内存中,dsh 重启即清空,从不持久化。
  8. package.json 显示 version 0.2.0,engines node >=22.19.0,platform web

链接

  • GitHub:https://github.com/wangxing-git/dsh-autogate
  • 社区目录页:https://www.skillhub.cn/plugins/wangxing-git/dsh-autogate
羽毛球分组比赛记分
小程序二维码

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

Xiaoye