dsh-autogate:DSH 自動審批插件

前言

在 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/test
  • run_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 秒輪詢 trail RPC

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 時,隱藏右下角審批軌跡浮窗並停止輪詢 trail RPC;服務端軌跡仍記錄。

也可以通過 DSH 設置卡讀寫官方 settings API(ctx.connection.api.settings 的 describe / mutate);審批軌跡面板經 /autogate RPC 端點 trail 拉取。

適用場景與注意

適合在 DSH Auto 會話中減少人工審批,並且希望保留 workspace-write 沙箱邊界的場景。

需要注意以下限制:

  1. 這個插件是「減少人工審批的決策層」,不是安全邊界。真正執行邊界仍是 DSH workspace-write 沙箱及其提權審批。
  2. L1 LLM 分類器是啓發式,可能誤判。fail-closed 可以減少誤放行,但無法消除誤判。
  3. 提示詞注入防禦是軟防禦,可抬高注入門檻,但無法徹底消除。
  4. 靜態路徑檢查存在 TOCTOU 窗口:符號鏈接可能在檢查通過後、寫入前被重新指向。
  5. 全自動 auto 模式下,LLM 裁決爲最終決定、不再人工彈窗,僅建議在可信環境使用。
  6. L2 escalation 路徑是一次性放寬:LLM 批准提權後,該次調用以請求的更寬沙箱(通常 full-access)運行。
  7. 審批軌跡僅保存在當前進程內存中,dsh 重啓即清空,從不持久化。
  8. package.json 顯示 version 0.2.0,engines node >=22.19.0,platform web。

鏈接

  • GitHub:https://github.com/wangxing-git/dsh-autogate
  • 社區目錄頁:https://www.skillhub.cn/plugins/wangxing-git/dsh-autogate
羽毛球分组比赛记分
小程序二维码

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

小夜