前言¶
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 模式下给出沙箱策略告警。