前言¶
在 DeepSeek Harness(DSH)的插件機制下,智能體可以調用 shell、SQL、文件寫入等工具。如果這些調用直接執行,危險操作和憑證泄露會依賴底層環境兜底。lonelymoon87/dsh-guardian 提供執行前策略、執行後 canonical 輸出脫敏,以及只讀安全審查 skill。
下面介紹它的定位、核心能力、安裝方式、配置示例,以及使用時需要注意的邊界。
這是什麼¶
dsh-guardian 是 DSH 插件,倉庫地址爲 lonelymoon87/dsh-guardian,許可證爲 MIT。
它檢查工具名稱、參數、canonical 結果和渲染輸出,可以拒絕調用或請求審批,但從不自己執行所請求操作。它不是進程沙箱、授權系統、數據防泄漏服務,也不替代其下掛載的 provider 策略。
核心能力¶
執行前策略¶
dsh-guardian 提供 tools/pre-execute 瀑布策略,將危險 shell、SQL 和結構化文件寫入參數分類爲 deny、ask 或 unchanged。
主要能力包括:
- 提供
standard、strict、permissive三種 profile,在保留不可協商 deny 規則的同時提供不同審批級別。 - 支持自定義正則表達式規則,用於添加部署相關的
deny或ask決定。 - Guardian 始終通過
next()委派;如果其他策略監聽器返回決定,最嚴格結果勝出:deny高於ask,ask高於allow。
內置規則包括:
- deny:遞歸強制刪除根目錄或家目錄、網絡響應管道進入 shell、向
/dev原始寫入、向/etc寫入。 - ask:
force push、破壞性 SQL 等請求。
執行後脫敏¶
dsh-guardian 提供 tools/post-execute 瀑布,從 canonical JSON 結果、失敗、渲染文本和 block feedback 中刪除常見憑證。
具體行爲如下:
- 內置刪除模式覆蓋 AWS access-key ID、GitHub token、
sk-API key、PEM 私鑰塊和常見憑證賦值。 - 連續文本塊作爲一條流掃描,避免憑證跨塊拆分繞過刪除。
- 當 canonical JSON 值存在時,刪除應用於該值,並保留數組、對象、數字、布爾值和 null。
- 日誌只包含工具名稱、匹配計數和刪除標籤。
安全審查¶
/security-review 會加載內置的只讀安全審查 skill。
安裝與升級¶
插件支持 DSH >=0.1.0-rc.6 <0.2.0 插件 API 和 Node.js ^22.19 || >=24。v0.1.3 在 DSH 0.1.0-rc.8 和 0.1.1-rc.1 上測試,並保留 rc.6 兼容 peer 範圍。
預構建包通過 GitHub Releases 分發;未加作用域 npm 名稱由其他發佈者擁有,因此該項目不發佈到該名稱。
安裝預構建發佈包:
dsh plugin --profile web add https://github.com/lonelymoon87/dsh-guardian/releases/download/v0.1.3/dsh-guardian-0.1.3.tgz
這個 release tarball 是預構建的,不需要額外構建允許。
固定版本源碼安裝:
dsh plugin --profile web add github:lonelymoon87/dsh-guardian#v0.1.3
源碼安裝會運行 prepare 構建。pnpm 10 和更高版本會拒絕它,直到 profile allowlist 了失敗命令打印的精確 package key;按提示 allowlist 後,重新運行相同的 dsh plugin add 命令。
如果目標是 one-shot agent profile,可以把 web 替換爲 headless。
升級時重新運行 dsh plugin add,並使用較新的 release URL。
卸載:
dsh plugin --profile web remove dsh-guardian
配置示例¶
配置使用 YAML 數組,示例如下:
- id: guardian
name: dsh-guardian
config:
profile: standard
rules:
- name: production-host
pattern: production\\.internal
action: ask
reason: production target requires review
redaction:
enabled: true
patterns:
- label: internal-token
pattern: INT_[A-Z0-9]{12}
正則表達式 flags 只能包含 i、m、s、u。無效表達式和 label 會在插件加載時失敗。
適用場景與注意¶
dsh-guardian 適合在 DSH 環境中需要約束危險工具調用、避免常見憑證進入模型可見輸出的開發者。安裝前應先檢查源碼和 MIT 許可證,並確認當前 DSH 進程權限是否符合預期。
需要注意:
- 它是 MVP,不是進程沙箱、授權系統、數據防泄漏服務,也不是替代其下掛載的 provider 策略。
- 它不讀取憑證存儲、不發起網絡請求、不寫工作區文件、不傳輸遙測、不持久化自定義會話事件。
- 插件不追加自定義會話事件,因爲當前外部插件 API 未暴露可忽略事件信封;發出必需的未知事件可能使卸載後舊會話不可讀。
- 它檢查工具名稱、參數、canonical 結果和渲染輸出,可以拒絕調用或請求審批,但從不自己執行所請求操作。
- 源碼安裝可能觸發 pnpm 10 和更高版本的構建命令 allowlist 流程。
結尾¶
經過上面的安裝和配置,dsh-guardian 爲 DSH 提供了一組運行時危險操作策略、canonical 輸出脫敏和只讀安全審查入口。它適合與現有 provider 策略一起使用,而不是替代底層安全機制。
GitHub 倉庫:
- https://github.com/lonelymoon87/dsh-guardian