前言¶
DeepSeek Harness (DSH) 支持插件化擴展。dsh-llm-approver 是一個針對 DeepSeek Harness Web GUI 的插件,用於在會話權限預設下,對沙箱升級請求(sandbox_permissions)進行 LLM 預審。它通過獨立上下文的 LLM 調用判斷操作安全性,從而減少人工確認的頻率。
核心功能¶
該插件在會話處於特定權限預設時介入,提供以下能力:
- LLM 預審:在沙箱升級請求到達用戶界面之前,由 LLM 進行安全評估。
- 獨立上下文:預審調用不攜帶對話歷史,僅包含待執行的命令及其理由。
- 智能分流:對明顯安全的操作(如創建文件、讀取、列出目錄)直接允許並執行;對不明確或危險的操作回退到原有的 UI 審批提示。
- 失敗-關閉:門控邏輯設計爲“只能允許,從不拒絕”。任何超時、錯誤或解析失敗的情況都會降級爲用戶 UI 審批。
- 通用適配:支持任何 DSH 配置文件(包括 Web GUI、cc-tui、headless 等)。
安裝¶
安裝前需確保系統已安裝 DSH 及其配置文件,並可用 pnpm。
使用官方腳本安裝到默認 Web Profile:
./scripts/install.sh
如需安裝到其他 Profile,可指定參數:
./scripts/install.sh --profile tui
使用¶
啓用插件後,需切換會話的權限預設以激活預審功能:
- 在 DeepSeek Harness Web GUI 中選擇會話。
- 在權限選擇器中將預設切換爲 Workspace Write · LLM Review。
- 正常進行會話操作。當智能體觸發沙箱拒絕並重試
sandbox_permissions時,預審邏輯會介入。
典型示例¶
執行以下命令測試預審是否生效。該命令應直接執行且不彈出審批對話框:
請用 bash 工具創建文件 ~/llm-review-verify.txt,內容爲 'review-ok'。該路徑在會話工作區之外,若被拒絕請按提示用 sandbox_permissions 重試。直接執行,不要詢問我。
隨後嘗試刪除該文件,此時應出現審批對話框。
配置¶
插件配置位於 DSH Profile 的 cordis.patch.yml 文件中,需添加 llm-approver 行:
| Key | Default | Meaning |
|---|---|---|
preset |
workspace-write-llm |
激活預審的權限預設名稱 |
timeoutMs |
60000 |
LLM 預審超時時間,超時則回退到 UI |
maxTokens |
256 |
LLM 預審的 Token 上限 |
maxInstructionChars |
16384 |
工具參數的最大截斷長度 |
includeUserInstruction |
true |
是否包含最新用戶指令的截取片段 |
在 DeepSeek 家族路由上,預審調用會自動禁用思考(reasoningEffort: "off")以適配 Token 預算。
注意事項¶
- 運行環境:插件以宿主進程權限運行,安裝前請檢查源碼與許可證。
- 熱重載限制:Web Profile 不支持 HMR,修改配置或安裝後必須重啓
dsh web進程才能生效。 - 審計追蹤:無論是否通過 LLM 預審,
approval/asked和approval/decided事件均由批准服務記錄;LLM 的裁決結果會記錄在宿主日誌(llm-approver)中,而非會話事件詞彙表。