dsh-risk-gate:按語義自動分級與漸進授權的 DeepSeek Harness 插件

前言

DeepSeek Harness(DSH)插件化架構允許開發者通過插件擴展 Agent 的能力。在構建需要自主操作的工具鏈時,手動編寫細粒度的權限規則往往既繁瑣又難以維護。dsh-risk-gate 插件通過分析操作語義,在本地實現自動分級與漸進授權,解決了這一問題。

插件簡介

該插件由 leetom314 維護,採用 MIT 協議開源。它不依賴外部 LLM 調用,而是通過本地確定性分類算法,根據工具調用的語義將其劃分爲安全、風險或紅線三個等級,並據此執行通過、詢問或拒絕操作。

核心功能

1. 語義分級與本地分類
插件會攔截 tools/pre-execute 鉤子,根據操作語義對工具調用進行分類。分類是本地完成的,不涉及網絡請求。默認情況下,未知工具會被標記爲風險操作(拒絕)。
* Safe(安全): 可逆或只讀操作,如讀取、搜索、網頁瀏覽、良性 Bash 命令。
* Risky(風險): 不可逆但風險較低的操作,如寫入、編輯、安裝、Git 提交。
* Redline(紅線): 高風險操作,包括遠程狀態變更、發送消息、刪除文件、支付類操作。

2. 漸進授權機制
爲了減少對人工確認的打擾,插件實現了基於簽名(工具名 + 歸一化參數)的漸進授權。同一操作簽名連續成功 N 次後,後續調用將自動放行;一旦發生拒絕或失敗,該簽名的授權狀態會回滾。

3. Shell 命令檢查
插件支持對 Bash 和 PowerShell 命令進行正則檢查,識別危險指令。常見的紅線命令包括 rm -rf、shred、ssh user@host、git push、curl/wget -X DELETE 等。

安裝與啓用

確保環境已安裝 DSH CLI,然後執行以下命令安裝插件。

dsh plugin --profile web add "github:leetom314/dsh-risk-gate#main"

配置方法

在 DSH 的 YAML 配置文件中添加插件節點。主要配置項如下:

  • autoAllowThreshold: 自動允許閾值,設置爲 0 表示禁用漸進授權,始終詢問。默認值爲 3。
  • alwaysAskRedline: 紅線操作是否強制詢問,默認爲 true。
  • overrides: 可針對特定工具進行覆蓋,設置爲 deny 可直接攔截。
- id: dsh-risk-gate
  name: dsh-risk-gate
  config:
    autoAllowThreshold: 3
    alwaysAskRedline: true
    verbose: false
    overrides:
      some_tool: deny

測試與驗證

安裝完成後,可以通過運行測試腳本驗證插件行爲。

npm test

要進行端到端驗證(使用真實模型和無頭模式),可以運行:

./verify.sh

驗證腳本會檢查只讀操作是否放行、單文件刪除是否被攔截、遞歸刪除(rm -rf)是否被紅線阻斷,以及 Git 推送和 SSH 遠程操作是否被攔截。

侷限性與注意事項

  1. 非沙箱環境: Shell 檢查基於正則,並非完全的沙箱執行環境。它主要作爲安全門,建議配合 dsh-permission-rules 或其他沙箱執行器進行防禦深度加固。
  2. 內存狀態: 插件的學習狀態僅保存在內存中,進程重啓或 HMR(熱模塊替換)會導致狀態丟失。
  3. 無頭模式: 在沒有回答器(Answerer)的情況下,插件默認拒絕操作。
  4. 依賴項: 插件依賴 @deepseek-ai/dsh-tools。

總結

dsh-risk-gate 提供了一種基於語義的輕量級安全控制方案,適合需要在 DSH 插件生態中快速引入操作分級與授權控制的場景。更多細節可查閱插件目錄或源碼倉庫。

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

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

小夜