跳到正文

Moeblack/dsh-message-edit

233最近提交 2026年8月14日

dsh-message-edit DSH 插件

dsh-message-edit 允许编辑已落定的用户消息、assistant.reasoning 和 assistant.response 文本。支持从最后一条助手回复重生成,以及任意历史回合的重试,并提供 truncate 和 preserve 两种级联策略。所有修改都会创建新的会话版本,原历史保持不变,可通过撤销/重做和 Timeline 标签页切换。

如何安装 dsh-message-edit DSH 插件

dsh plugin --profile web add dsh-message-edit

复制不会执行命令。安装 dsh-message-edit DSH 插件前请核对仓库和版本。

dsh-message-edit DSH 插件数据来源

dsh-message-edit DSH 插件快照日期:2026年8月16日

discovered

dsh-message-edit DSH 插件能做什么

  • 编辑用户消息、assistant.reasoning 和 assistant.response 文本块
  • 重生成:从上一分支重新生成最后一条助手回复
  • 重试任意历史回合,支持 truncate 或 preserve 级联策略
  • 通过撤销/重做按钮和 Timeline 标签页切换版本,展示完整分支树
  • Timeline 标签页注册在 conversation.view,order: 15,位于 Trajectory 和 Prompt Studio 之间

dsh-message-edit DSH 插件适合哪些场景

  • 修正已发送的用户消息中的错别字
  • 重新生成不满意的助手回复
  • 以相同原始输入重新执行某个回合,探索不同工具结果
  • 在分支间切换以比较不同版本的会话
  • 撤销误操作并恢复之前的版本

dsh-message-edit DSH 插件适合谁

  • 需要精细控制会话历史的 DSH 用户
  • 构建需要分支和版本管理的复杂工作流的开发者

dsh-message-edit DSH 插件的限制

  • 仅支持 web profile(安装命令使用 --profile web)
  • 所有产品文案为中文,代码注释为英文
  • 不修改工作区文件、外部效果或已有产物
  • 需要运行中的 DSH 实例,并通过 npm 安装插件

dsh-message-edit DSH 插件的仓库 README 摘录

以下文字摘自 dsh-message-edit DSH 插件的上游仓库 Moeblack/dsh-message-edit 的 README,版权归原作者,仅作引用。

`dsh-message-edit`([npm](https://www.npmjs.com/package/dsh-message-edit) · [GitHub](https://github.com/Moeblack/dsh-message-edit))为 DeepSeek Harness 补充基于事件溯源的「消息编辑与重生成」能力。插件不改写历史事件,也不修改 DSH 引擎内部;每次编辑、重生成或重试都会从目标回合之前创建一个新会话版本,原会话始终保留并可随时切回。 ```bash dsh plugin --profile web add dsh-message-edit ``` ## 功能 - **编辑消息**:可编辑已落定的用户文本、`assistant.reasoning` 思考块与 `assistant.response` 回复文本。 - **重生成**:从最后一条已落定助手回复所属回合之前分支,使用原用户输入重新生成。 - **重试任意回合**:在 Timeline 中选择任意历史回合重新执行。 - **级联策略**: - `truncate`(默认):只重新执行目标输入,删除该点之后的旧后续。 - `preserve`:保留后续用户输入,并在新分支中依次重新执行;助手输出与工具链全部重新生成。 - **版本切换**:会话标题栏的 `←` 撤销当前原子效果,`→` 重施加最新直接子效果;Timeline 展示完整已知分支树、操作时间、编辑前后内容与当前版本。 - **Timeline 标签页**:注册到 `conversation.view`,`order: 15`,位于 Trajectory(10)与 Prompt Studio(20)之间。 ## 设计 ### 时间可组合性 插件把**完整回合**作为效果原子。目标回合的 `turn/start`、模型请求、工具调用、工具结果与 `turn/end` 不会被局部复制后拼接;新版本从该回合之前的闭合边界分支: 1. 用户消息编辑、Reroll 与 Retry:回退整个目标回合,再把目标用户输入作为新回合交给 Agent。 2. 助手块编辑:回退整个目标回合,以原用户输入和编辑后的助手内容构造一个新的完整闭合回合;原工具链不进入新版本。选择 `preserve` 时,后续用户输入再依次交给 Agent,产生新的完整工具链。 3. 每个版本都追加一个不可拆分的 `message-edit/version` 效果对:`effect` 记录正向效果,`inverse` 记录恢复目标。父版本链自动导出组合逆;恢复不是删除事件,而是沿逆链切换到仍然存在的版本。 4. 消息历史变换彼此不交换,因此撤销遵循 LIFO:一次只撤销当前原子效果并保留更早效果;各后继分支始终保留,可从父版

阅读完整 README仓库未声明许可,使用前请先与作者确认。

dsh-message-edit DSH 插件常见问题

如何安装 dsh-message-edit 插件?

在终端运行 'dsh plugin --profile web add dsh-message-edit' 即可。该命令会将插件添加到 web profile 中。安装完成后重启 DSH 即可生效。如需本地开发,可使用 'dsh plugin --profile web add -w link:插件路径' 添加符号链接。

助手回复后还能编辑消息吗?

可以。你可以编辑任何已落定的用户消息、assistant.reasoning 或 assistant.response 文本块。插件会从编辑点创建新会话版本,原历史保持不变。后续可通过撤销恢复到之前版本。

truncate 和 preserve 级联策略有什么区别?

truncate(默认)只重新执行目标输入,删除该点之后的所有后续内容。preserve 会保留后续用户输入,并在新分支中依次重新执行,产生新的助手输出和工具调用。preserve 适用于你想保留对话流程但修改早期部分的情况。

如何撤销版本变更?

使用会话标题栏的 ← 按钮可撤销最近一次原子效果(如编辑或重生成)。→ 按钮可重新施加最新的直接子效果。你也可以在 Timeline 标签页中查看完整分支树,并直接切换到任何版本。

这个插件会修改 DSH 引擎本身吗?

不会。插件只使用 DSH 公开的服务(sessions、agents 等),不修改 DSH 内部、apiproxy 或官方 UI 包。所有历史都是只追加且深度冻结的,变更以新版本形式存储,而非原地修改。