在使用 DeepSeek Harness(DSH)开发或调试智能体时,经常遇到需要撤销上一步操作的场景:例如代码改错了,或者对话逻辑走偏了。手动删减消息并还原代码不仅繁琐,还容易遗漏。下面介绍一款能够解决这一痛点的插件。
这是什么¶
dsh-plugin-session-rollback 是由 antlordGit 维护的插件,为 DSH 提供会话与工作区代码同步回退能力。它的核心价值在于将对话记录的删除与代码状态的还原绑定在一起,确保两者保持一致。
核心功能¶
- 自动为每条真人提问创建工作区代码检查点。
- 在用户消息的复制按钮旁提供「撤销」操作。
- 同步回退当前页面的聊天记录和工作区代码。
- 移除目标问题及之后的全部问题和回答。
- 回退前自动备份当前工作区。
- 支持使用
/rollback-undo撤销最近一次代码回退。 - 快照采用 SHA-256 内容寻址存储。
- 自动适配 DSH 的明暗主题。
安装与启用¶
安装方式如下:
dsh plugin --profile web add github:antlordGit/dsh-plugin-session-rollback
安装完成后需要重启 DSH Web:
dsh web
典型用法¶
插件安装并重启后,正常与助手对话。在聊天界面中,点击某条用户消息下方、复制按钮旁边的「撤销」按钮,确认回退范围。页面会移除该问题及之后的所有问题和回答,同时将工作区代码恢复到该问题提交前的状态。
回退前的代码会自动备份。如果需要撤销最近一次代码回退,在输入框执行以下命令:
/rollback-undo
适用场景与注意¶
- 适用场景:适合需要在对话中反复调试代码、验证逻辑,且需要随时回退到特定提问节点的开发者。
- 注意事项:
- 插件安装或启用之前产生的消息通常没有代码检查点,无法安全回退代码。
- 仅
source.kind === 'user'的真人消息会创建检查点;插件、模型或工具生成的消息不会创建。 - 正在运行的会话不能回退,请先停止或等待当前回答结束。
- 被排除的目录、超限文件(16MB)、符号链接和特殊文件不会随代码一起回退。
/rollback-undo恢复的是最近一次自动备份,作用于代码,不会重新显示已从当前 Surface 隐藏的聊天记录。
短结尾¶
该插件通过自动快照和内容寻址存储,实现了对话与代码的原子级回退。详细文档与源码可查看 GitHub。