dsh-chat-rewind:在 Harness 里就地改消息并从该点重开会话

前言

在 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 许可证。

典型用法

  1. 在 Web UI 打开已有会话,找到你自己发送且可编辑的一条消息(无文件附件、非子代理会话)。
  2. 双击该消息(或悬停点铅笔),修改正文;若含图片,按需删除或粘贴/拖拽新图。
  3. 确认底部「归档原会话」是否符合预期(默认开:成功后归档原会话)。
  4. 按 Enter 发送;插件会在该消息之前创建分支并发送新内容,后续模型回复在新分支中生成。
  5. 若需放弃编辑,按 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 生态遵循「一切皆插件」的扩展方式,可按需选用并自行维护信任边界。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜