前言¶
在 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/requestwaterfall 的請求,不會擴大當前訪問權限,也不會把會話切換到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 pnpmon 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 / 幻方無官方從屬關係。