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

前言

在 DeepSeek Harness(DSH)中,bash、pwsh、write、edit 等工具調用會進入 DSH 的 approval/request waterfall。DSH 本身繼續擁有 Read Only、Workspace Write 和 Full access 三種訪問權限;dsh-smart-approval 在這旁邊增加一個獨立的自動審批選擇器,把“能不能訪問”和“是否自動批准某次請求”分開。

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

核心能力

下面介紹與審批邊界相關的能力。

  • 在 Web 界面中,訪問權限選擇器旁邊會出現獨立的自動審批選擇器。
  • 支持 Manual approval、Smart approval(recommended default)和 Unattended 三種 review mode。
  • 新會話默認使用 smart。
  • 自動審批只處理已經進入 DSH approval/request waterfall 的請求,不會擴大當前訪問權限,也不會把會話切換到 Full access。
  • 切換 review mode 或訪問權限都會作用於下一次 approval request,不需要重啓 DSH。
  • 對 bash、pwsh、write、edit 使用 closed adapters;未知工具 fail closed。
  • 模型分類只返回 riskLevel、authorization、intent 和 reasonCode,不能直接授權。
  • 成功分類只產生 allowed-once;下一次類似請求仍會重新審查。

審批時會檢查什麼

1、插件在 DSH 的 approval/request waterfall 中處理請求,並針對 bash、pwsh、write、edit 使用 closed adapters。未知工具 fail closed。

2、上下文使用當前 turn 和有邊界的最近 direct-user text,並移除模型編寫的描述和理由。

3、文件變更使用 DSH filesystem service 獲取 read-only evidence,並阻斷 final symlinks、canonical path aliases、malformed metadata、sensitive paths 和 protected system locations。

4、確定性檢查覆蓋 credential material、destructive commands、system changes、background work、dependency installation、publishing、remote writes、uploads,以及 sensitive workspace/workdir conditions。

5、模型輸出嚴格的四字段分類:riskLevel、authorization、intent 和 reasonCode。它不能直接授權,成功分類也只得到一次性的 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 Only、Workspace Write、Full 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 approval 或 Unattended 的開發者。
  • 本項目和 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 / 幻方無官方從屬關係。

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

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

小夜