前言¶
在 DeepSeek Harness(DSH)里做智能体开发,对话一旦走错方向,常见做法是 fork 分支开新会话,或靠 git 手动还原工作区。前者要切换上下文,后者只覆盖文件、不管模型侧已读过的对话。Claude Code 的 /rewind 提供了一种不同思路:在同一会话窗口内,把对话回退到任意更早的用户消息,并可选择一并还原被写工具改过的文件。dsh-rewind 由 SiriLee 维护,把这套语义落到 DSH web 配置档上,分类为工作流插件,GitHub 仓库 sirilee/dsh-rewind 当前约 11 stars。
这是什么¶
dsh-rewind 是 DSH 插件,npm 包名为 dsh-rewind-plugin(注意:npm 上的 dsh-rewind 属于其他作者,安装时勿用错)。它只做一件事:在当前会话窗口内就地回退到任意用户消息,可选同时还原工作区中被跟踪工具改过的文件,对齐 Claude Code /rewind 语义。插件不新建分支、不切换窗口;会话日志采用只追加策略,回退通过遮蔽标记实现,不删改历史记录。
核心功能¶
就地对话回退¶
回退目标消息及其之后的全部内容——agent 回复、工具调用——会同时从模型上下文和界面渲染中撤回。目标消息的文本会回填到输入框,改完后可直接重发。回退可反复进行,无阶段或次数限制;插话(模型尚未读取的 steering 消息)也可作为回退目标。若 agent 正在运行,插件会先强制停止当前回合再执行回退。
轻量工作区备份与还原¶
插件跟踪写文件类工具:write、edit、str_replace_editor。每次写操作前在审批门放行之后捕获原内容,按对话轮次分组并落盘到 ~/.dsh/rewind-snapshots/,跨重启保留(每会话最近 100 组)。每条用户消息边界会重扫已跟踪文件,外部编辑或删除也会被记录。还原前实时比对磁盘,只处理真正不一致的文件;符号链接与硬链接跳过。不依赖 git,普通目录即可使用。
多种触发方式¶
每条用户消息旁有「↶ 回退」按钮;也可输入 /rewind 打开候选列表,或用快捷键操作。模式浮层提供「仅回退对话」与「回退对话和代码」;后者在目标之后有可还原变更时可用,会先展示文件变更清单再确认。候选列表与浮层支持 ↑↓ 移动、Enter 确认、Esc 取消。
信息安全与测试¶
插件只向会话日志追加回退标记,不删改已记录历史;文件备份与还原限定在 ~/.dsh/rewind-snapshots/,不触碰 git 仓库,无网络请求。项目包含单元、探针与端到端主机验证,覆盖日志重放、续接、跨重启等场景。第三方 DOM 插件可通过 dsh-rewind-plugin/client 导出的稳定函数获知被撤回行,详见仓库内 docs/contract/client-contract.zh.md。
安装与启用¶
在 DSH web 配置档下执行官方安装命令:
dsh plugin --profile web add dsh-rewind-plugin
环境要求:Node.js ^22.19.0 || >=24.0.0;peer 依赖 @deepseek-ai/* 由 harness 运行时解析。当前 npm 版本为 0.4.2,许可证 MIT。DSH 与该项目均处于开发者预览阶段,生产环境建议 pin 精确版本。
典型用法¶
- 在对话中找到要回退的用户消息,或输入
/rewind从候选列表选择。 - 在浮层中选择「仅回退对话」或「回退对话和代码」。
- 回退立即生效:界面回到目标消息当时的状态,被撤回消息文本填入输入框,修改后重发。
「回退对话和代码」会先列出受影响文件,确认后执行还原。重复回退同一目标对已一致的文件为零副作用。
适用场景与注意¶
适合需要在同一窗口内快速试错、不想 fork 新会话的 DSH 开发者;适合没有 git 或不想依赖整树快照的轻量工作区。以下情况不在插件职责内:整树或 Git 级快照、子代理会话内的编辑、fork 分支回退(harness 已内置)。
使用前须知:
- 插件以当前 dsh 进程权限运行,安装前应阅读源码与 MIT 许可证。
- 回退本身无法撤销,但被撤回内容仍保留在会话日志中,可手动编辑日志恢复。
/export导出的日志包含已撤回消息,插件无法改动导出行为。- v0.2.4 及更早版本回退过的会话,继续对话后可能加载历史失败;v0.3.3 及更早版本回退过的会话,压缩对话(compact)可能不可用。详见仓库
docs/compat/troubleshooting.zh.md。
结尾¶
dsh-rewind 把 Claude Code 式的就地回退落到 DSH:对话与文件可在同窗口内一键撤回,日志只追加、文件备份轻量落盘。社区目录页与 GitHub 仓库:
- https://www.skillhub.cn/plugins/SiriLee/dsh-rewind
- https://github.com/SiriLee/dsh-rewind