前言¶
在 DSH Auto 會話裏,工具調用往往需要審批。已有做法通常會依賴 workspace-write 沙箱和提權審批來保持執行邊界;dsh-autogate 在這之上增加 auto-ask 半自動與 auto 全自動兩檔權限,目標是減少人工審批,而不是放寬沙箱。
下面介紹這個插件的定位、決策機制、安裝方式、配置項和需要注意的安全邊界。
這是什麼¶
wangxing-git/dsh-autogate 是 wangxing-git 維護的 DeepSeek Harness 自動審批插件。
它的一句話定位是:在 workspace-write 沙箱之上增加「半自動(auto-ask)+ 全自動(auto)」兩檔權限,採用「確定性規則 + LLM 安全審批 +(半自動下)被拒絕方主動人工審批」分層決策。保留工作區沙箱邊界,不放寬爲 full-access。
核心機制¶
L0 確定性規則¶
L0 層做零成本 allow/deny 判斷,不依賴 LLM。
已覈實的能力覆蓋以下場景:
- 只讀操作
- 會話狀態
- 工作區內編輯與刪除
build/testrun_code容器
這一層的作用是:能由規則直接判斷的調用,先由規則判斷,避免每次都進入 LLM 審批。
L1 LLM 安全審批¶
L1 層面向「沙箱不攔截但語義危險」的操作,由 LLM 做 allow/deny 裁決。
這一層不改變普通調用的沙箱邊界:普通調用保持 workspace-write,L0/L1 決策不放寬沙箱。
L2 人工審批或最終裁決¶
L2 層對應人工兜底。
兩種模式的差異主要在 L2:
auto-ask:半自動模式,保留人工彈窗。auto:全自動模式,LLM 裁決爲最終決定。
安全策略¶
fail-closed¶
插件採用 fail-closed 策略:分類器異常、超時、無路由或格式錯誤一律拒絕。
這意味着 LLM 分類器不可用時,不會默認放行,而是傾向拒絕,以減少誤放行。
輸入脫敏與標籤隔離¶
分類器輸入會經過脫敏,並使用 <untrusted> / <user-authority> 標籤隔離,同時內置注入防禦。
這屬於提示詞注入層面的軟防禦,可以抬高注入門檻,但不能徹底消除注入風險。
非 Auto 會話行爲¶
非 Auto 會話原樣放行,不改變官方行爲。
審批軌跡¶
審批軌跡 UI 會注入 shell.overlay 槽位。
已覈實的軌跡能力包括:
- 顯示最近 50 條記錄
- 按會話隔離
- 每 2 秒輪詢
trailRPC
showTrail: false 可以隱藏右下角審批軌跡浮窗,並停止輪詢 trail RPC;服務端軌跡仍會記錄。
軌跡爲進程級、僅內存保存,dsh 重啓即清空,從不持久化。
安裝¶
安裝前請先確認:插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。資料未明確許可證字段,需要在倉庫中自行確認。
1、從 GitHub 安裝:
dsh plugin --profile web add github:wangxing-git/dsh-autogate
2、如果 dsh 不在 PATH 中,可以使用:
npx @deepseek-ai/dsh plugin --profile web add github:wangxing-git/dsh-autogate
3、重啓 dsh。
配置¶
配置經 DSH settings 服務寫入 $DSH_HOME/settings.yaml 的 autogate 段,並支持熱重載。未掛載 settings 服務時,會回退 cordis.patch.yml 的 entry config。
基礎示例:
autogate:
preflight: false
presetName: auto-ask
fullAutoPresetName: auto
各配置項說明如下:
preflight:默認false。設爲false時,跳過沙盒前普通確定性規則 + LLM 分類;硬 deny 與審批請求預審仍生效。設爲true時,恢復完整沙盒前攔截。presetName:半自動模式預設鍵,默認auto-ask。fullAutoPresetName:全自動模式預設鍵,默認auto。showTrail:設爲false時,隱藏右下角審批軌跡浮窗並停止輪詢trailRPC;服務端軌跡仍記錄。
也可以通過 DSH 設置卡讀寫官方 settings API(ctx.connection.api.settings 的 describe / mutate);審批軌跡面板經 /autogate RPC 端點 trail 拉取。
適用場景與注意¶
適合在 DSH Auto 會話中減少人工審批,並且希望保留 workspace-write 沙箱邊界的場景。
需要注意以下限制:
- 這個插件是「減少人工審批的決策層」,不是安全邊界。真正執行邊界仍是 DSH
workspace-write沙箱及其提權審批。 - L1 LLM 分類器是啓發式,可能誤判。fail-closed 可以減少誤放行,但無法消除誤判。
- 提示詞注入防禦是軟防禦,可抬高注入門檻,但無法徹底消除。
- 靜態路徑檢查存在 TOCTOU 窗口:符號鏈接可能在檢查通過後、寫入前被重新指向。
- 全自動
auto模式下,LLM 裁決爲最終決定、不再人工彈窗,僅建議在可信環境使用。 - L2 escalation 路徑是一次性放寬:LLM 批准提權後,該次調用以請求的更寬沙箱(通常
full-access)運行。 - 審批軌跡僅保存在當前進程內存中,
dsh重啓即清空,從不持久化。 package.json顯示 version0.2.0,enginesnode >=22.19.0,platformweb。
鏈接¶
- GitHub:https://github.com/wangxing-git/dsh-autogate
- 社區目錄頁:https://www.skillhub.cn/plugins/wangxing-git/dsh-autogate