dsh-safety-net:给 DeepSeek Harness 增加自保护护栏

前言

DSH 的插件生态强调「一切皆插件」。当智能体在宿主内自主执行文件操作时,一次错误的 writeedit 可能影响 DSH 自身运行状态。dsh-safety-netAsuna486-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 提供,不应 standalone npm 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 模式下给出沙箱策略告警。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜