前言¶
在 DeepSeek Harness(DSH)里做智能体或长对话时,发出去的用户消息往往没法「当作没发过」再改一版:会话日志是 append-only,底部输入框只能继续往后聊。一旦提示词写错、意图表达不清,常见做法是开新会话或手动复制粘贴,工作目录里的文件状态也不会跟着「对话回退」。
下面介绍客户端插件 dsh-chat-rewind(维护者 cyh8037):双击你自己发出的某条消息即可就地编辑,确认后在该消息之前切会话分支并重新发送,后续回答随之重新生成;工作目录中的文件不会被回退,原会话可保留或由选项自动归档。
这是什么¶
dsh-chat-rewind 是 DSH 的 Web 客户端插件(分类:客户端),npm 包名为 dsh-chat-rewind,当前仓库版本 1.0.0,许可证 MIT。
Harness 没有公开的「原地截断会话」接口,本插件的实现方式是:在目标用户消息之前调用会话分支能力,在新分支里发送修改后的内容,从而在体验上达到「从这条消息重新开始」的效果,而不动磁盘上的项目文件。
核心功能¶
核实自项目 README 的能力如下:
- 进入编辑:双击用户消息,或悬停后点铅笔图标;内联编辑预填原文。
- 快捷键:
Enter发送、Shift+Enter换行、Esc取消,与底部 composer 一致;点编辑区域外部会收起编辑态;同一时刻只允许一个编辑态。 - 图片:原消息带图片时,图片会随新消息一起发送,可逐张删除,也可粘贴或拖拽新增。
- 归档开关:底部「归档原会话」开关默认开启;发送成功后归档源会话。
- 不可编辑情形:带文件附件的消息不允许编辑;子代理会话中的消息不允许编辑;不可编辑项不显示编辑按钮,双击也无反馈,保持官方渲染形态。
- 失败处理:发送失败时,刚创建的空分支会被自动归档,减少侧栏重复分支。
安装与启用¶
本仓库是本地 bundle,无需构建。安装命令须以 README 原文为准,勿自行拼接 dsh plugin add github:...。
方式一:在 DSH 中安装 bundle
在 DSH 中执行(将 target 换成本地 clone 或解压后的目录绝对路径;README 要求把目录放到任意位置后安装,此处不执行 git clone):
# 在 DSH 中执行:
# plugin_manager install_bundle target=<本目录绝对路径>
方式二:写入 profile 的 patch 文件
在当前 profile 的 cordis.patch.yml 中加入:
- insert:
- id: chat-rewind
name: 'dsh-chat-rewind'
安装后在 Web UI 刷新页面即可生效(客户端插件在页面启动时加载;package.json 中 dsh.client.immediately 为 true,并注入 @deepseek-ai/dsh-client-ui-chat)。
插件以当前 DSH 进程及 Web 前端环境运行;安装前应自行审阅 源码 与 MIT 许可证。
典型用法¶
- 在 Web UI 打开已有会话,找到你自己发送且可编辑的一条消息(无文件附件、非子代理会话)。
- 双击该消息(或悬停点铅笔),修改正文;若含图片,按需删除或粘贴/拖拽新图。
- 确认底部「归档原会话」是否符合预期(默认开:成功后归档原会话)。
- 按
Enter发送;插件会在该消息之前创建分支并发送新内容,后续模型回复在新分支中生成。 - 若需放弃编辑,按
Esc或点击编辑区外。
行为与兼容性¶
会话与文件:原会话可保留或由归档开关处理;工作目录文件不回退。归档默认 stopActivity: true——若源会话正在运行,归档可能中止其活动。
渲染契约:插件覆盖 conversation.chat.node 的 user 渲染器,并复用官方的 conversation.chat.user.content Factory 与 conversation.chat.user.before chain。注册前校验 sessions.fork,渲染前校验槽位 props;契约不满足时会撤销注册、恢复官方渲染器,并在控制台输出 warning。
已知限制与注意¶
- 只处理用户消息。
- 带文件附件不可编辑;图片可带入,但已被上下文压缩卸载(offloaded)的图片不会带入新消息。
- 子代理会话中的消息不可编辑。
- 分支不再自动追加 「(1)」 标题后缀(README 说明为避免孤儿分支)。
- 发送被宿主拒绝时,底部发送可能因本地 pending 计数而提前关闭编辑态。
适合需要在 Harness 对话流里快速改一条历史用户消息并分叉重试、且接受「文件状态不随对话回退」的 DSH 用户。
结尾¶
dsh-chat-rewind 用客户端内联编辑 + 会话分支,把「改消息再从该点继续」做成双击即可完成的操作,同时明确不回退工作区文件。
社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」的扩展方式,可按需选用并自行维护信任边界。