前言¶
DSH 的插件生態強調「一切皆插件」。當智能體在宿主內自主執行文件操作時,一次錯誤的 write 或 edit 可能影響 DSH 自身運行狀態。dsh-safety-net 由 Asuna486-desuwa 維護,定位是 “Self-protection guardrails for the DeepSeek Harness: protected-path interception, backup-before-destroy, CLI self-recovery commands, and strict sandbox defaulting”。下面介紹它在 DSH 中的位置、核心能力、安裝方式與典型用法。
這是什麼¶
dsh-safety-net 是一個 DSH 插件,用於對 DSH 關鍵路徑的變更增加一層保護:在拒絕受保護路徑變更前先快照原始文件,並保留一組 DSH CLI 恢復命令。
它默認開啓 strict 模式,聲明只讀默認沙箱策略,並在宿主沙箱默認更寬時告警;實際沙箱執行仍由宿主 sandbox backend 負責。許可爲 MIT。
核心功能¶
受保護路徑硬攔截¶
插件會硬攔截指向 DSH 關鍵路徑的 write / edit 變更。內置 protected 路徑不能通過配置移除,strict 也不會解除路徑攔截。
變更前備份¶
在拒絕 protected path 變更前,插件會先快照原始文件到備份存儲。備份存儲位於:
<DSH_HOME>/safety-net/backups/
CLI 自恢復通道¶
插件提供 DSH CLI 恢復命令,覆蓋狀態、備份、恢復、修復、一次性審批。
strict 默認與額外受保護路徑¶
默認開啓 strict 模式,聲明只讀默認沙箱策略,並在宿主沙箱默認更寬時告警。若需要保護更多路徑,可通過 safetyNet.extraProtectedPaths 添加額外受保護路徑。
safetyNet.extraProtectedPaths 在運行時僅可添加,取消需要修改配置並重啓 DSH。
安裝與啓用¶
要求 Node.js ≥ 20,以及一個正在運行的 DeepSeek Harness (DSH) host。
@deepseek-ai/cordis 與 @deepseek-ai/dsh-fs 作爲 peer dependencies 由 DSH host runtime 提供,不應 standalone npm install。
從 npm 安裝:
dsh plugin add dsh-safety-net
從 git 安裝:
dsh plugin add git+https://github.com/Asuna486-desuwa/dsh-safety-net.git
安裝後,相關配置位於 safetyNet 鍵下。可參考的鍵包括:
safetyNet.strict
safetyNet.extraProtectedPaths
safetyNet.backupRetention
safetyNet.dshHome
safetyNet.pluginDataRoot
其中 safetyNet.backupRetention 默認爲 30,但 retention-based pruning 計劃在後續版本落地。
如果確實需要修改內置 protected 文件,先卸載插件:
dsh plugin remove dsh-safety-net
修改完成後再重新添加。
典型用法¶
先查看 guardrail 健康狀態:
/safety-net-status
手動快照受保護資產:
/safety-net-backup
列出或恢復備份:
/safety-net-restore
/safety-net-restore <id>
檢測缺失關鍵文件並打印恢復說明:
/safety-net-repair
爲 protected path 授予一次性寫入審批:
/safety-net-approve <path>
經過上面的步驟,可以在不長期解除保護的情況下,查看狀態、創建備份、恢復指定備份,或處理一次性誤攔。
適用場景與注意¶
適合需要給 DSH 增加受保護路徑護欄、變更前備份和 CLI 恢復命令的使用者。需要注意:
strict是聲明式/advisory,實際沙箱執行仍由宿主 sandbox backend 負責。- 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
@deepseek-ai/cordis與@deepseek-ai/dsh-fs由 DSH host runtime 提供,不應 standalonenpm install。- 內置 protected 路徑不能通過配置移除;
strict不解除路徑攔截。 safetyNet.extraProtectedPaths在運行時僅可添加,取消需要修改配置並重啓 DSH。safetyNet.backupRetention默認爲 30,但 retention-based pruning 計劃在後續版本落地。
目錄與源碼¶
社區目錄頁:
https://www.skillhub.cn/plugins/Asuna486-desuwa/dsh-safety-net
GitHub:
https://github.com/Asuna486-desuwa/dsh-safety-net
dsh-safety-net 的價值在於把 DSH 自保護拆成可執行的幾件事:攔關鍵路徑、留備份、給恢復命令,並在 strict 模式下給出沙箱策略告警。