前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在構建智能體應用時,沙箱機制通常能限制寫入操作,但讀取權限往往保留。dsh-fs-deny-policy 插件填補了這一空白,它通過文件系統根目錄的拒絕列表,在模型發起讀取、搜索或 Shell 調用之前進行攔截,防止模型觸碰敏感目錄。
插件介紹¶
這是一個由 vladlearns 維護的 DSH 插件,旨在提供部署級的文件系統訪問控制。它不依賴複雜的沙箱配置,而是直接在工具執行前對路徑進行校驗。
核心功能¶
- 全類型攔截:在
tools/pre-execute鉤子處攔截讀取、寫入、搜索和 Shell 工具調用。 - 根目錄拒絕列表:一旦工具調用的路徑解析結果落在被拒絕的根目錄內,該調用將被阻斷。
- 前置告知:插件會將拒絕列表作爲系統提示的一部分發送給模型,使其在調用前就知曉限制,避免無效對話。
安裝與啓用¶
安裝前需確保環境滿足 Node.js 22.19 或更高版本,並已安裝 dsh CLI。
使用 npm 包安裝:
npx @deepseek-ai/dsh plugin --profile main add dsh-fs-deny-policy
如需從 GitHub 安裝以使用特定版本:
npx @deepseek-ai/dsh plugin --profile main add github:vladlearns/dsh-fs-deny-policy
注意:添加或移除插件需要重啓 DSH 進程。
配置方法¶
配置文件位於 ~/.dsh/profiles/YOUR_PROFILE/cordis.patch.yml。以下示例將禁止訪問 SSH 目錄和許可證文件:
- id: fs-deny-policy
config:
deniedRoots:
- C:/Users/you/.ssh
- C:/Users/you/Desktop/license-dongle
注意:
- 路徑必須爲絕對路徑。相對路徑或重複條目會在加載時報錯。
- 插件安裝後再編輯此配置文件,修改會實時生效。
- 若只需禁止寫入而允許讀取,可設置 fenceReads: false(寫入側始終開啓)。
驗證配置¶
安裝並配置完成後,使用以下命令驗證配置是否正確寫入:
npx @deepseek-ai/dsh --profile main --dump-config
適用場景與注意事項¶
- 適用場景:需要保護特定敏感目錄(如 SSH 密鑰、許可證文件、生產配置)不被模型讀取或修改的場景。
- 安全性:該插件以當前 DSH 進程的權限運行,安裝前應檢查源碼與許可證。
- 侷限性:Shell 檢查僅讀取命令文本,不實際執行 Shell,因此間接路徑(如
$VAR、$(...)、重定向符)可能繞過攔截。 - 防禦縱深:建議將其與沙箱配合使用以獲得硬 guarantee,而非替代它。