前言¶
在 DeepSeek Harness (DSH) 的使用过程中,有时需要撤销已发送的某一轮对话,而不希望重启整个会话或清空历史。dsh-sqy-rewind 插件提供了将当前会话回退到用户发起某一轮对话之前的能力。
它是什么¶
dsh-sqy-rewind 是一个 DeepSeek Harness 插件,由 LUDIWUSI12138 维护。它专注于解决会话回退的问题,属于「记忆」类别的插件。
核心功能¶
插件主要实现以下能力:
1. 会话回退:把当前会话退回某一轮对话发起之前。
2. 模型遮蔽:使用 surface replace 就地遮蔽历史,从模型视角看,该轮次等于没发生过。
3. 界面同步:插件会自动把被回退的轮次从界面上隐藏。
4. 日志保留:不修改 DSH 本体源码,原始日志一条不删。
5. 按轮次操作:支持按 turn 号隐藏 DOM 节点。
6. 依赖投影:依赖 turnOutline 投影。
7. 自动停止:回退操作会先停掉正在跑的一轮。
安装与启用¶
插件通过命令行安装,安装后必须重启 DSH 才能生效。
安装命令¶
dsh plugin --profile desktop add github:LUDIWUSI12138/dsh-sqy-rewind
验证安装¶
重启 DSH 后打开会话,在每条用户消息下面,应该能看到与「复制」并排的回退图标。
使用方法¶
市场安装¶
在 DSH 插件市场搜索 dsh-sqy-rewind 即可一键安装。
CLI 安装¶
使用上述命令行进行安装。
API 调用¶
通过 API 调用回退操作:
POST /plugins/dsh-sqy-rewind/api/rewind
Body:
{
"sessionId": "string",
"turn": "number"
}
界面操作¶
在 DSH 界面中,每条用户消息下方会出现回退图标。点击第一次会弹出提示,点击第二次确认回退。
注意事项¶
- 不可逆:回退操作不可逆。
- 模型痕迹:模型上下文中会留一行中文说明(例如:「用户已回退这一轮对话」)。
- 压缩限制:如果目标轮次的起点已经被压缩(compaction)吸收,回退会被拒绝。
- 边界逻辑:边界是按「模型可见顺序」找的,不是按 seq 比的。
- 非官方实现:按钮是 DOM 注入的,不是官方 slot。
- 影响范围:只影响模型历史和本插件隐藏的那些轮次。
- 依赖项:依赖 turnOutline 投影。
- 运行状态:回退会先停掉正在跑的一轮。
短结尾¶
dsh-sqy-rewind 为 DSH 提供了会话回退能力,在调试和交互过程中可以避免重启会话。相关代码与文档位于 GitHub:https://github.com/LUDIWUSI12138/dsh-sqy-rewind。