dsh-smart-approval:面向 DeepSeek Harness 的 fail-closed 智能审批插件

前言

在 DeepSeek Harness(DSH)中,bashpwshwriteedit 等工具调用会进入 DSH 的 approval/request waterfall。DSH 本身继续拥有 Read OnlyWorkspace WriteFull access 三种访问权限;dsh-smart-approval 在这旁边增加一个独立的自动审批选择器,把“能不能访问”和“是否自动批准某次请求”分开。

dsh-smart-approval 是 TingRuDeng 维护的 DSH 插件,定位为 Fail-closed LLM-assisted approval reviewer for DeepSeek Harness。License 为 MIT。

核心能力

下面介绍与审批边界相关的能力。

  • 在 Web 界面中,访问权限选择器旁边会出现独立的自动审批选择器。
  • 支持 Manual approvalSmart approval(recommended default)和 Unattended 三种 review mode。
  • 新会话默认使用 smart
  • 自动审批只处理已经进入 DSH approval/request waterfall 的请求,不会扩大当前访问权限,也不会把会话切换到 Full access
  • 切换 review mode 或访问权限都会作用于下一次 approval request,不需要重启 DSH。
  • bashpwshwriteedit 使用 closed adapters;未知工具 fail closed。
  • 模型分类只返回 riskLevelauthorizationintentreasonCode,不能直接授权。
  • 成功分类只产生 allowed-once;下一次类似请求仍会重新审查。

审批时会检查什么

1、插件在 DSH 的 approval/request waterfall 中处理请求,并针对 bashpwshwriteedit 使用 closed adapters。未知工具 fail closed。

2、上下文使用当前 turn 和有边界的最近 direct-user text,并移除模型编写的描述和理由。

3、文件变更使用 DSH filesystem service 获取 read-only evidence,并阻断 final symlinkscanonical path aliasesmalformed metadatasensitive pathsprotected system locations

4、确定性检查覆盖 credential materialdestructive commandssystem changesbackground workdependency installationpublishingremote writesuploads,以及 sensitive workspace/workdir conditions

5、模型输出严格的四字段分类:riskLevelauthorizationintentreasonCode。它不能直接授权,成功分类也只得到一次性的 allowed-once

安装与验证

先确认环境:

  • Node.js 24 or later
  • DeepSeek Harness >=0.1.2-alpha.1 <0.2.0
  • pnpm on PATH

DSH 接受 exact plugin version。截至 2026-09-03,README 候选安装使用:

dsh plugin --profile web add dsh-smart-approval@0.1.0-rc.11

安装后 dump 当前 profile 配置:

dsh --profile web --dump-config

结果中应包含 dsh-smart-approval bundle 和 smart-approval plugin row。访问权限配置仍应只包含 DSH 原生的 Read OnlyWorkspace WriteFull access;Web 启动后,自动审批选择器应独立显示在访问权限旁边。

其他安装方式

一次执行时:

npx @deepseek-ai/dsh plugin --profile web add dsh-smart-approval@0.1.0-rc.11
npx @deepseek-ai/dsh --profile web --dump-config

从插件 checkout 安装:

dsh plugin --profile web add .

从 DeepSeek Harness source checkout 执行:

pnpm dsh plugin --profile web add .
pnpm dsh --profile web --dump-config

Pin 一个已审查的 GitHub commit:

dsh plugin --profile web add github:TingRuDeng/dsh-smart-approval#<commit-sha>

注意 npm dsh ... 不是有效 npm 命令。已有全局安装时用 dsh ...;一次执行用 npx @deepseek-ai/dsh ...;从 DeepSeek Harness source checkout 用 pnpm dsh ...

Git 安装时的 build 权限

Git dependencies 会运行这个 package 的 prepare build。pnpm 10 及以后默认 block dependency build scripts。首次 Git install 时,按 DSH 提示把 exact package name 添加到该 profile 的 pnpm-workspace.yaml allowBuilds,review source,然后重试。Registry packages 已包含 built output,不需要这个权限。

典型用法

在 Web 中可以使用独立的自动审批选择器;也可以在当前会话运行:

/approval-mode manual
/approval-mode smart
/approval-mode unattended

不带参数查看当前模式:

/approval-mode

查看自动决策日志:

/approval-log
/approval-log 30

/approval-log 默认列出 latest 10;指定 30 则列出 latest 30。每行只显示 time、tool、outcome、reason code 和 review mode;不会包含 arguments 和 model output。设置 decisionLogSize: 0 可禁用 audit。

配置

当前 session route 默认执行 review。若要使用独立 route,可在 profile 的 cordis.patch.yml 中覆盖 plugin row。未显式选择的会话使用 defaultMode,默认值为 smart

适用场景与注意

  • 适合需要在 DSH Web 中保留 Manual approval、默认 Smart approvalUnattended 的开发者。
  • 本项目和 DSH 都在 developer preview;在 reproducible environments 中应 pin exact versions。
  • 插件以当前 DSH 进程权限运行;安装前应先检查源码、许可证和版本。
  • 自动审批不会扩大 DSH 访问权限,也不会将 session 切换到 Full access
  • 未知工具 fail closed;确定性检查和 filesystem evidence 会阻断高风险文件路径与危险操作。
  • 审计日志只保留 time、tool、outcome、reason code、review mode,不保留参数和模型输出。

链接

  • GitHub 仓库:https://github.com/TingRuDeng/dsh-smart-approval
  • 目录页线索(来自插件线索,README/package 中未直接列出):https://www.skillhub.cn/plugins/TingRuDeng/dsh-smart-approval

社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

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

小夜