DeepSeek Harness 中缀重跑插件:重跑任意轮次并保留后续上下文

前言

DeepSeek Harness (DSH) 的模型上下文在每次调用时都会从会话 surface 重新推导。官方现有的“回退到末尾”式的编辑(如 dsh-edit-turn 的默认行为)在替换一条消息时会丢弃该消息之后的所有内容。这是因为 assistant/message 被格式明令禁止携带 sourceEventSeqs,无法在原地替换。

dsh-rerun-turn 插件通过官方的 surface-replace 契约实现了“中缀重跑”:重跑任意一轮模型回答,并保留后续轮次,使后续调用读到的是修改后的历史上下文。

核心功能

  • 中缀重跑:重跑任意一轮回答并保留后续轮次,实现中缀拼接。
  • 官方契约:仅使用官方 surface-replace 契约,无自定义事件类型,确保兼容性。
  • 静默载体:遮蔽载体不占轮次、不占步骤,对用户不可见。
  • 重放保真:逐事件复制,丢弃 usage、内嵌 stream、系统消息等,确保上下文一致。
  • 崩溃可恢复:基于日志状态可恢复中断的重跑。
  • 图片支持:原提示词中的图片可重新发送。
  • UI:中英双语,跟随 DSH 当前语言,皮肤友好。

安装与启用

从官方目录安装:

dsh plugin --profile web add dsh-rerun-turn

从本地目录安装(开发用):

dsh plugin --profile web add /path/to/dsh-rerun-turn

patchReload: live 的 profile 会热加载;否则重启该 profile 对应的 DSH 进程。

典型用法

  1. 悬停触发:把鼠标移到想重跑的那条模型回答上。
  2. 点击执行:点击动作条里的 ↻(重跑这一轮)。
  3. 后台处理:后台立刻开始执行。旧的一轮及其后内容先从模型上下文移除,提示词重新发给模型,生成结束后后续轮次自动重放回来。
  4. 结果呈现:界面上被退役的旧行隐藏,新生成的回答与重放的行正常出现,最终顺序即为模型读到的顺序。

配置

- id: dsh-rerun-turn
  config:
    confirm: false            # 默认 false:一次点击即执行
    autoResume: true          # 默认 true:中断的重放在会话空闲时自动续传
    idleTimeoutMs: 600000     # 等待新回答落地的最长时间
    devTools: false           # 默认 false:端到端验证用的 /dev/* 回环路由
字段 默认 含义
confirm false 客户端是否先弹一次确认。
autoResume true /state 是否在会话空闲时自动完成被中断的重放。
idleTimeoutMs 600000 等待新回答闭合的最长时间。
devTools false 是否挂载验证用回环路由。

注意事项

  • 文件附件:文件附件暂时拒绝。
  • 载体形状:静默载体内容形状由装载时对已安装适配器的一次探测决定(0.1.27)。如果无法证明适配器会丢掉空 user 消息,则使用零宽空格。
  • 重放保真:重放时会丢弃 usage、内嵌 stream、系统消息等,只保留核心事件。
  • 安全限制:宿主路由只限本机回环,并校验 Host 与 Origin。

结语

该插件通过中缀拼接的方式维护了模型的完整上下文,适合需要精细化调试或局部修正的场景。

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

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

小夜