DeepSeek Harness 插件介紹:dsh-auto-guard

在 DSH 的開發場景中,使用 danger-full-access 權限雖然能最大化交互能力,但直接使用存在誤操作風險。現有的基於 LLM 的自動審批機制(如 Claude Code 的 Auto Mode)雖然能緩解風險,但審查成本較高。dsh-auto-guard 插件旨在給全權限模式加一層 LLM 安全網,通過分層裁決和緩存機制,在降低審批成本的同時控制風險。

核心定位

該插件基於 danger-full-access 兜底,不限制文件系統能力,而是通過規則和 LLM 審查進行安全裁決。它將審批流程分爲多個層級,優先使用規則和緩存,僅在必要時調用 LLM,從而減少 token 消耗。

安裝與啓用

安裝插件後,cordis.patch.yml 會註冊 auto-guard 預設,覆蓋原有的 danger-full-access。

  1. 執行安裝命令:
    dsh plugin --profile web add github:Ayle5678/dsh-auto-guard
  1. 在對話框的權限選擇器中選擇 Auto Guard 預設,即可啓用。

功能特性

分層裁決機制

插件採用多層過濾策略,從簡單規則到 LLM 兜底:
* File Tracker:寫後執行檢測。
* 絕對黑名單:危險命令直接拒絕。
* 目錄刪除複覈:要求 agent 提供理由並經 LLM 複覈。
* 複合命令處理:智能拆分 ;、&&、||,檢測 export、cd 等環境改變命令,對管道進行確定性判斷。
* 白名單與緩存:結合靜態白名單(含白名單守衛)與動態白名單,支持模板緩存。
* 歷史/學習層:利用歷史記錄和自動生成的學習規則進行低風險放行。
* LLM 兜底:上述規則均無法匹配時,由 LLM 進行裁決。

Guard Memory

具備會話級裁決記憶。首次 deny 後,同命令再次出現會轉爲 ask 請求人工確認。

審計與安全

  • 敏感路徑門禁:對 .env、.ssh 等路徑自動降級 LLM 審查。
  • 審查日誌與審計加密:支持 SQLite 審計日誌(默認關閉),敏感字段使用 AES-GCM 加密存儲,開啓前需設置審計密碼。

配置與使用

啓用與配置

插件的所有配置通過 DSH 設置體系管理,主要配置項位於 ~/.dsh/settings.yaml 的 auto-guard: 命名空間下。

auto-guard:
  apiBase: ''                # 直連 OpenAI 兼容端點
  apiKeyEnv: DEEPSEEK_API_KEY
  model: deepseek-v4-flash   # 審查使用的模型
  examineEnabled: false      # 審查日誌開關
  auditPassword: ''          # 審計密碼
  # ... 其他配置項

自定義規則

用戶可編輯 ~/.dsh/auto-guard/rules.json 添加靜態放行規則(如 git log)。
例如:

{
  "version": 1,
  "staticAllow": [
    { "pattern": "git log", "reason": "Read-only git log" }
  ]
}

使用示例

  • 在對話框權限選擇器中選擇 Auto Guard 預設啓用。
  • 使用複合命令,如 git status; git branch --show-current,插件會智能拆分並處理。
  • 嘗試刪除目錄時,插件會要求提供理由並經 LLM 複覈。

注意事項

  • 安全邊界:插件不是沙箱,不承諾絕對安全,不排除極少數隱祕危險命令可能通過審查。請將其視爲“安全網”而非“安全邊界”。
  • 密鑰管理:密鑰不落倉庫,支持環境變量或 DSH settings 的 secret 字段本地存儲。
  • 日誌默認關閉:審查日誌默認關閉,開啓前需設置審計密碼。
  • Fail-Closed 機制:無 UI 兜底時,DSH 本身會把 ask 退化爲 deny(拒絕執行)。
  • 文件系統能力:插件不限制文件系統能力,儘量不打斷正常開發。

總結

dsh-auto-guard 適合需要在 DSH 中使用全權限,但又希望對命令執行進行安全審計和自動化的用戶。通過分層規則和緩存機制,它能在保障安全的同時控制審批成本。

GitHub 倉庫
社區目錄

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

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

小夜