前言¶
DeepSeek Harness (DSH) 的插件機制允許在智能體運行 Shell 命令的執行鏈路中插入邏輯。dsh-jev-guard 是一個執行前的安全閥門:在命令實際運行之前,它會判斷該命令是否會不可逆地刪除或覆蓋用戶的真實數據。它通過 TypeSafe Jev 模型的結構化決策,配合 L0 靜態硬規則,對 Shell 調用進行攔截或放行。
插件定位¶
該插件由 7starsseeker 維護,旨在解決智能體在執行命令時可能因誤操作導致數據丟失的問題。它掛載於 DSH 的 tools/pre-execute 鉤子,提供硬攔截能力,而非僅提供提示。
核心機制¶
判斷過程分爲三層,順序固定:
-
L0 靜態硬規則
- 包含 21 條“永不允許”和 16 條“需人工確認”的規則。
- 這些規則離線運行,無法被覆蓋。
- 規則僅匹配命令位置(行首、分號
;、管道符|、括號$(等之後),忽略參數內部的提及。 - 僅有兩條規則(
redirect-to-device、fork-bomb)匹配整段文本。
-
預篩選
- 對於證明爲只讀或僅修改可重建內容(如緩存、構建輸出、
/tmp)的命令,直接放行。 - 此階段不產生網絡調用,延遲最低。
- 對於證明爲只讀或僅修改可重建內容(如緩存、構建輸出、
-
Jev 語義判斷
- 利用 TypeSafe Jev 模型回答一個“是否會不可逆刪除或覆蓋數據”的是非題。
- 根據閾值將結果分爲允許、修訂或阻止。
- 平均延遲約 300ms,單次調用成本極低。
四態決策¶
插件根據上述判斷返回四種狀態,決定下一步操作:
- allow: 判定安全或只讀,直接執行。
- revise: 證據不足,但存在更安全的寫法。模型會重寫命令並重試(提供降級模板,如 dry-run、縮小範圍、先備份)。
- block: 命令會導致不可逆刪除或覆蓋,或命中硬規則。拒絕執行,需人工介入。
- escalate: 屬於硬規則的“始終詢問”類,或重試預算耗盡。需人工確認。
安裝與運行¶
- 環境要求:Node.js >= 20(使用全局
fetch)。插件本身零運行時依賴。 - DSH 版本:已在 DSH 0.1.6-alpha.2、0.1.7-rc.2 和 0.2.0-rc.2 上驗證通過。
- 平臺支持:WSL/Linux (bash) 和 Windows (pwsh)。
- 安裝方式:通過 npm 安裝包後,將適配器掛載至 DSH 的
tools/pre-execute。
常用命令¶
安裝後可通過 CLI 工具進行調試和監控:
# 運行自檢
guard selftest
# 查看硬規則列表
guard rules
# 單獨對文本進行語義判斷
guard judge
# 查看運行狀態
guard status
# 查看審計日誌統計
guard log --stats
行爲與注意事項¶
- 降級策略:當調用額度耗盡時,插件會“大聲降級”而不是靜默失效,確保系統可用性。
- Fail-open 設計:生產環境中出現過因預算超時(1800ms)而允許通過的情況,這是設計預期內的行爲,用於防止服務中斷。
- 安全邊界:該插件是事故安全網,不是安全邊界。在極高併發或極端網絡條件下,仍需依賴人工審覈。
生態背景¶
DSH 遵循“一切皆插件”的理念,社區目錄 skillhub.cn 提供了插件的索引服務,與 DeepSeek 或幻方無官方從屬關係。使用前建議檢查源碼與許可證(MIT)。