dsh-compaction-route: 为 DSH 压缩任务配置备用模型

DSH(DeepSeek Harness)的压缩引擎在 Web 设置页选择对话压缩总结器后,没有内置的故障转移机制。当总结调用被拒绝或因上下文超限失败时,整个压缩过程会直接报错,后续不会再尝试其他模型。此外,DSH 的固定字符估算(chars/4)与不同模型的实际分词结果存在偏差,可能导致一个对聊天模型来说合适的历史记录,对选定的总结器来说却超出了输入上限。

dsh-compaction-route 旨在解决上述问题。它是一个 DeepSeek Harness 插件,允许你在设置页为压缩总结器指定一个备用模型,当主模型无法处理历史记录时自动切换。

核心功能

该插件仅对 purpose === "compaction" 的请求生效,拦截 DSH 的 llm/stream 流水线。主要能力包括:

  1. 目标重写:将请求的目标重写为配置的“主模型”。
  2. 终端错误重试:如果主模型调用结束于终端错误块,自动在同一请求上尝试“备用模型”。
  3. 超大历史回退:为可能超出输入上限的重放历史提供兜底能力。
  4. 模型选择:从已安装的配置文件中读取可用模型列表。

安装与启用

安装过程无需构建步骤,插件挂载后无需重启应用。

Web UI 安装

  1. 打开设置页面。
  2. 进入 Plugins(插件)。
  3. 点击 Add plugin(添加插件)。
  4. 在输入框中填入插件规范:
    github:643048695/dsh-compaction-route
  1. 按提示启用插件。安装后插入的行 ID 为 compaction-route,这也是配置页面的命名空间。

CLI 安装

dsh plugin --profile <profile> add github:643048695/dsh-compaction-route

配置

安装后,进入 Settings → Plugins → dsh-compaction-route → Configuration 进行配置。

配置项 说明
Enable routing 开启路由功能。关闭时,引擎行为与未安装插件时一致。
Primary model 首先尝试使用的总结器模型。
Fallback model 仅在主模型返回终端错误时尝试。留空则禁用备用功能。
Reasoning effort 压缩调用的推理力度,留空则使用提供商的默认值。

下拉菜单中的选项来源于 llm-pi-ai 配置命名空间,仅显示已安装在当前配置文件中的模型。配置项为易失性(volatile),修改后仅对下一次压缩生效,无需重启。

选择备用的前提:备用模型的有效窗口必须大于主模型的有效窗口。如果两者窗口大小相同或更小,选择备用模型无法解决问题,配置卡片会提示警告。

工作原理

插件拦截 llm/stream 水位线,针对压缩任务执行以下逻辑:

  1. 若请求的 purpose 不为 "compaction",直接放行,不做任何修改。
  2. 将目标重写为配置的 Primary 模型。
  3. 若 Primary 成功,返回其数据流。
  4. 若 Primary 结束于终端错误块,重新进入 ctx.llm.stream(),使用 Fallback 模型重试。
  5. 返回第一次成功的结果,或最后一次尝试的结果。

注:插件通过 WeakSet 追踪自身创建的调用对象,防止重试逻辑再次被拦截。

注意事项与兼容性

  • 重试范围:仅在终端错误块时重试。若出现非终端错误(如中间态异常),按原行为处理,不触发备用。
  • 取消优先:若请求被取消,不会触发重试。
  • 仅影响压缩:插件仅修改 purpose === "compaction" 的请求,聊天回合、子代理等其他任务不受影响。
  • 日志记录:引擎自身的事件仍记录其配置的目标(summarizationProvider/summarizationModel),而非插件的实际覆盖目标。若需日志一致性,需在引擎设置中将目标指向与插件相同的主模型。
  • 兼容版本:兼容 @deepseek-ai/dsh 0.1.7-rc.2 及 same-node 0.1.7 线。

总结

dsh-compaction-route 通过在压缩流水线中增加一层路由逻辑,解决了 DSH 压缩引擎单点故障的问题。当你面临长对话历史导致的压缩失败,且主模型无法处理时,配置一个具有更大上下文窗口的备用模型是有效的解决方案。

  • GitHub 仓库: https://github.com/643048695/dsh-compaction-route
  • 社区目录: https://www.skillhub.cn/plugins/643048695/dsh-compaction-route
羽毛球分组比赛记分
小程序二维码

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

小夜