前言¶
DSH 的插件通常按 profile 安装,社区目录是独立站点,不应理解为官方应用商店。在 DSH Web 中运行 Agent 时,Agent 可能会执行 write/edit,也可能经 shell 执行删除操作;一旦文件内容被改动,如何回到之前状态是一个很直接的问题。dsh-snapshot 提供自动快照和 /rollback 回滚能力。
这是什么¶
dsh-snapshot 是一个自动快照、一键回滚的 DeepSeek Harness(DSH)Web 插件。它会在 Agent 每次 write/edit 前保存目标文件内容;当 Agent 经 shell 执行删除(如 Remove-Item、rm)时,先保存被删文件内容再放行。插件支持 /rollback 命令恢复到任意历史快照,并提供侧边栏快照时间线面板和设置页配置卡片。
资料中的 GitHub 仓库地址为:
https://github.com/DfsyJian/dsh-snapshot
许可证为 MIT。已核实资料未提供目录页 URL;维护者线索存在不一致,安装前建议自行核对仓库、包元数据和源码。
核心功能¶
下面介绍已核实的能力。
- Agent 每次
write/edit前自动保存目标文件内容。 - 经 shell 执行删除(如
Remove-Item、rm)时,先保存被删文件内容再放行。 - 支持
/rollback命令恢复到任意历史快照。 - 侧边栏提供快照时间线面板,按对话分组显示,并支持整体撤回。
- 设置页提供
snapshot配置卡片;布尔字段为二态开关,数字字段可恢复默认。
安装¶
先确保机器已安装 pnpm,因为 dsh plugin 内部会调用 pnpm 安装依赖。
安装到 web profile:
dsh plugin --profile web add dsh-snapshot
如果没有全局 dsh 命令,可以用 npx 执行:
npx @deepseek-ai/dsh plugin --profile web add dsh-snapshot
npx @deepseek-ai/dsh web
更新插件版本时,在 profile 目录显式指定新版本:
cd ~/.dsh/profiles/web
pnpm add dsh-snapshot@<新版本号>
更新后需完全退出 dsh web 再重启,并在浏览器 Ctrl+Shift+R 硬刷新。
典型用法¶
/rollback 命令支持以下子命令:
/rollback list
/rollback <seq> --yes
/rollback --call <callId> --yes
/rollback clear --yes
这些命令分别用于列出快照历史、按序号整体撤回、按工具调用撤回单个快照、执行清空快照操作。
配置¶
配置均为可选,零配置可用。
已核实资料说明:设置页提供 snapshot 配置卡片;表单是否可编辑取决于宿主命名空间白名单。npm 发布版宿主暂未包含 snapshot 白名单,可能显示表单不可用。
也可以在配置文件中配置 snapshot:
~/.dsh/settings.yaml的snapshot:段- profile 的
cordis.yml,例如~/.dsh/profiles/web/cordis.yml
已核实资料未列出具体配置项,本文不展开。
适用场景与注意¶
适合在 DSH Web 中跟踪 Agent 对文件内容的变更,并在出现错误修改后回到历史状态。使用前注意以下事项:
- 插件以当前
dsh进程权限运行;安装前应检查源码和许可证。 - Node
engines要求^22.19 || >=24。 - 运行时依赖由 harness 宿主提供,包括
@deepseek-ai/cordis、@deepseek-ai/dsh-settings等 peer 依赖。 - 设置页表单可能因宿主命名空间白名单不可用。
- 更新后需完全退出
dsh web再重启,并在浏览器Ctrl+Shift+R硬刷新。
结尾¶
dsh-snapshot 的价值比较直接:在 Agent 改动文件前留下快照,并通过 /rollback 命令和侧边栏时间线提供回滚入口。
GitHub:
https://github.com/DfsyJian/dsh-snapshot
已核实资料未提供目录页 URL,因此本文不提供该链接。