dsh-yolo-mode:为 DSH 沙箱升权申请增加 LLM 自动审批

前言

在 DSH 的智能体会话中,会话从当前沙箱模式升级到更高权限时,通常需要人工审批。若每次都由人确认,流程会被频繁打断;若直接放开,又缺少判断依据。dsh-yolo-mode 是面向这个场景的 DeepSeek Harness 插件:在审批策略为 ask 且会话处于可介入的沙箱模式时,用大模型对升权申请做自动裁决,并把不确定或异常路径回退为拒绝或转人工。

这是什么

dsh-yolo-modeSeverusZh 维护,许可证为 MIT

它的定位是:在 DSH 的 ask 审批环节加入一个 LLM-powered auto-approval 层,对 workspace-write 会话中的 danger-full-access / workspace-write 升权申请进行裁决,降低重复审批的人工成本,同时保留拒绝与转人工路径。

核心功能

下面按能力介绍。

在特定审批场景介入

插件只在以下条件下介入:

  • 审批策略为 ask
  • 会话沙箱模式位于 modes 中,默认 modes['workspace-write']

在这个范围内,插件会对 danger-full-access / workspace-write 升权申请调用裁判模型。

内置预设

内置预设包括:

  • off
  • strict
  • balanced
  • permissive
  • yolo
  • custom

默认预设为 balanced。插件不默认启用 permissiveyolo

自定义权限层级

levels 支持按目标模式设置策略,也支持通过 tools.<toolName> 对具体工具设置策略,并可配置 errorunsure 回退。

一个示例如下:

levels:
  workspace-write: judge
  danger-full-access: judge
  error: delegate
  unsure: delegate
  tools.pwsh: delegate
  tools.write: allow

这段配置把 workspace-writedanger-full-access 都交给裁判模型处理;当裁判出错或不确定时转人工;pwsh 工具转人工;write 工具允许。

裁判提示词

每个预设都有默认裁判提示词。judge.systemPrompt 留空时,会按当前预设自动选用。

设置面板

插件提供设置面板「YOLO 审批」页,可以在线修改:

  • 预设
  • 生效模式
  • 裁判模型
  • 层级表

审计日志

每次裁决都会落一条 JSONL 审计日志。状态弹窗支持打开日志,方便查看具体裁决记录。

fail-closed

以下异常路径不会直接放行:

  • 超时
  • 非法输出
  • 模型不可用
  • 并发溢出

这些情况会回退为拒绝或转人工。

安装与启用

先安装插件包。若从 npm 安装,运行:

dsh plugin --profile web add dsh-yolo-mode

若从本地路径安装,运行:

dsh plugin --profile web add <项目绝对路径>

插件声明 Node.js 版本要求为:

>=20

安装后,如需覆盖配置,先打开:

$DSH_HOME/profiles/web/cordis.patch.yml

然后按 id 覆盖 yolo-modeconfig。例如指定预设和裁判模型:

- id: yolo-mode
  name: dsh-yolo-mode
  config:
    preset: balanced
    judge:
      provider: <provider>
      model: <model>

这里 judge.providerjudge.model 需要同时非空,裁判模型才会启用。

经过上面的步骤,重启 DSH 并刷新浏览器后生效。

安装注意事项

  • 不要再用 - insert: 添加 yolo-modeyolo-mode-bridge,否则启动会报 duplicate loader entry id: yolo-mode
  • 本地 link: 开发时,checkout 需位于 $DSH_HOME/profiles/ 下,或仓库自带 node_modules,否则可能报 ERR_MODULE_NOT_FOUND

典型用法

使用默认预设

安装后默认使用 balanced。如果只想先观察审计日志,可以暂不调整 preset

指定裁判模型

cordis.patch.yml 中填入 provider 和 model。示例中的 <provider><model> 需要替换为你当前 DSH 可使用的模型配置值:

- id: yolo-mode
  name: dsh-yolo-mode
  config:
    preset: balanced
    judge:
      provider: <provider>
      model: <model>

按目标模式和工具细分策略

如果希望按目标模式和工具细分策略,可以在 yolo-modeconfig 中提供 levels

- id: yolo-mode
  name: dsh-yolo-mode
  config:
    levels:
      workspace-write: judge
      danger-full-access: judge
      error: delegate
      unsure: delegate
      tools.pwsh: delegate
      tools.write: allow

这段配置把 workspace-writedanger-full-access 交给裁判模型,把 pwsh 转人工,把 write 允许;裁判出错或不确定时也转人工。

适用场景与注意

适合:

  • DSH 会话中频繁出现沙箱升权审批,希望用模型判断替代部分人工确认
  • 需要保留拒绝、转人工和审计日志,而不是无审计地全部放行
  • 使用 web profile,并愿意按 cordis.patch.yml 覆盖插件配置

注意:

  • 插件作为 DSH 插件在本地运行,会以当前 dsh 进程可获得的权限工作。安装前建议先检查源码、依赖和 MIT 许可证。
  • 它只在 ask 审批策略和指定 modes 下介入。
  • judge.providerjudge.model 需要同时配置,否则裁判能力不会启用。
  • 本地 link: 开发路径要满足 Node 模块解析要求,否则可能遇到 ERR_MODULE_NOT_FOUND

链接

GitHub 仓库:

https://github.com/SeverusZh/dsh-yolo-mode

社区目录页未列出具体 URL;如需检索,可在 DSH 社区插件目录中搜索:

dsh-yolo-mode
羽毛球分组比赛记分
小程序二维码

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

小夜