dsh-safety:DeepSeek Harness 文件系统安全 Harness

前言

DeepSeek Harness (DSH) 强调插件化与自动化,但在实际使用中,智能体若拥有对文件系统的直接操作权限,极易因误操作或脚本错误导致配置丢失、项目文件被误删,甚至破坏运行环境。dsh-safety 插件作为 DSH 的配套安全 Harness,在工具执行边界强制执行三层文件策略,核心价值在于拦截破坏性调用并强制要求人工介入批准,确保每一次关键操作都处于可审计、可撤销的状态。

是什么

这是一个针对 DeepSeek Harness (DSH) 的文件系统安全 Harness。它提供了执行时守护、基于回收站的 safe_delete(支持撤销)、组合快照与回滚、重启前校验等功能。插件以标准 DSH profile bundle 形式提供,同时也包含一个独立 CLI,具备零运行时依赖的特性。

核心功能

执行时守护

插件在破坏性调用运行前进行拦截,核心规则包括:
* 递归删除拦截:默认拒绝 rm -r/-rf、Remove-Item -Recurse 等递归删除命令,强制通过 safe_delete 通道。
* 受保护路径拦截:对 package.json、cordis.patch.yml、lockfiles、node_modules、部署目录等关键路径的 write/edit 操作进行阻断。
* 代码扫描:不仅拦截文件系统 API,还会扫描 run_code 代码体,防止通过代码执行隐藏 fs.rmSync 等破坏性操作。
* 变量引用拦截:拦截如 Remove-Item "$env:USERPROFILE..." 这类变量展开后的路径删除。

用户门控批准系统

模型无法自行批准破坏性操作,必须经过人工确认。
* safety_ask:模型调用此工具,传入结构化参数(path, kind, what, why, consequence, alternative),创建一个带有系统计算后果的批准请求,返回 ID。
* 人工介入:模型需提示用户运行 dsh-safety allow <id>。
* 机制限制:批准是一次性的、有时限的,通过原子锁在进程间同步。模型自身无法设置 force:true 来通过验证。

安全删除与撤销

  • safe_delete:唯一的批准删除通道。支持 preview:true 预览删除内容,拒绝删除根目录或插件自身状态目录。
  • 撤销:删除操作将文件移至回收站,可通过 safety_undo 恢复。
  • 审计:每次删除都会被记录在日志中。

组合快照与回滚

  • safety_snapshot:保存整个插件组合(manifests、patches、lockfiles、package.json 等),计算 SHA-256 哈希。
  • safety_restore:将环境回滚至上一个已知良好状态。回滚前会备份当前文件,确保回滚失败不会导致环境处于半损坏状态。
  • 安全过滤:默认排除包含凭证的文件。

重启前校验

  • safety_check:在 DSH 重启前执行,检查 UTF-8 编码、检测乱码(导致无法打开的错误)、JSON 解析错误以及重复的插件 ID。

审计日志

通过 safety_journal 或 safety_status,可以查询所有被拦截、批准、删除、快照和回滚的操作记录。

安装与启用

该插件以标准 DSH profile bundle 形式提供,同时也作为 npm 包 @suagr_xl/dsh-safety 发布。安装后,它会在 DSH 启动时自动作为插件加载,接管文件系统操作。

典型用法

用户批准流程

  1. 模型检测到需要删除文件,调用 safety_ask 并返回 ID。
  2. 模型提示用户:”请批准删除:dsh-safety allow “。
  3. 用户在终端执行 dsh-safety allow <id>。
  4. 插件记录批准并放行。

撤销删除

# 恢复最近一次安全删除的文件
dsh-safety undo

快照与回滚

# 创建当前配置快照
dsh-safety snapshot

# 恢复到上一次快照
dsh-safety restore

检查环境

# 检查配置完整性及潜在错误
dsh-safety check

适用场景与注意

  • 环境要求:需要 Node.js 版本 >= 22。
  • 依赖:零运行时依赖,仅依赖 Node.js 环境。
  • 权限风险:插件以当前 DSH 进程的权限运行,请确保 DSH 进程权限合理。
  • 安全原则:插件默认排除包含凭证的文件,但建议在部署前检查源码与许可证。
  • 独立 CLI:即使 DSH 无法启动,dsh-safety CLI 依然可用,可用于紧急恢复或审计。

总结

dsh-safety 通过在执行时拦截、强制人工批准和提供快照回滚能力,为 DSH 插件开发和使用提供了坚实的安全基座。它将生产环境中的事故教训转化为强制性的机制,而非文档说明。

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

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

小夜