dsh-compact-tuner:在 Composer 里按对话调节上下文压缩

前言

DeepSeek Harness(DSH)在长对话里会通过 @deepseek-ai/dsh-compaction-basic 做自动上下文压缩。触发时机和压缩后保留多少尾部,由 preset 里的 thresholdRatio 与 retainTokens 决定:前者决定测得的 totalTokens 何时越过阈值触发压缩,后者决定压缩时原样保留的尾部 token 预算。这两项在 preset 里是全局的——改一次通常要重启,且对所有对话同一套策略。长任务和短问答往往需求不同:有人希望晚点压、保住单轮完整性,有人希望早点压、省窗口;保留尾部多少,又直接影响接下来几步还能不能接上上下文。社区里已有插件只调阈值,或能覆盖阈值和保留量但需改 preset、换 compaction 后端且无界面。下面介绍 dsh-compact-tuner:两个参数都能在会话里调,不换后端。

这是什么

dsh-compact-tuner 由维护者 YumoFinn 发布,分类为模型推理。它在输入框上方提供压缩参数面板,对当前对话覆盖 thresholdRatio(触发比例)和 retainTokens(保留量),改动下一步生效,新对话回到默认值。数据写在本地 ~/.dsh/storages/compact-ratio.json,不上传。

核心功能

触发比例(thresholdRatio)

与 preset 中含义一致:thresholdTokens = min(窗口 × 比例, 窗口 − 输出预留 − headroom),测得的 totalTokens 越过该值即触发压缩(在压力触发路径下;见下文「注意」)。

面板页签可选:20%、25%、35%、自定义 5%–95%、跟随默认。

保留量(retainTokens)

压缩时原样保留的尾部 token 预算。resolveCompactSpec 要求其严格小于阈值,否则后端会抛错。

面板页签可选:8k、20k、40k、自定义 1k–200k token、跟随默认。

实现要点(便于理解边界)

插件装饰压缩引擎的 compactIfNeeded:调用前换入带覆盖的配置副本,在引擎同步前缀结束后还原。根层 ctx.compaction 直接装饰;preset 使用 isolate: { compaction: true } 时,在每个 agent 的第一步通过 agentPresets.serviceFor(agent, 'compaction') 取得引擎并按实例去重,切 preset 不会重复包装。无覆盖、非压力触发或引擎不可用时,走原方法。

安装与启用

在 desktop profile 下安装:

dsh plugin --profile desktop add dsh-compact-tuner

安装后重启 DSH。也可在侧栏「插件」页搜索安装。不需要改 preset;上述 isolate 场景下插件会在 agent 第一步取出压缩引擎一并装饰,开箱即用。

package.json 标明运行要求:Node >=22,DSH >=0.2.1-rc.3 <0.3.0;当前插件版本为 0.1.1,许可 MIT。

典型用法

  1. 点击输入框上方的「压缩 xx%」打开面板,在两个页签里分别选触发比例与保留量。
  2. 或用命令查看与设置当前对话的比例:
/compact-ratio            查看当前对话的比例
/compact-ratio 0.25       设为 25%
/compact-ratio default    清除覆盖
页签 取值 对应配置
触发比例 20% / 25% / 35% / 自定义 5%–95% / 跟随默认 thresholdRatio
保留量 8k / 20k / 40k / 自定义 1k–200k token / 跟随默认 retainTokens

适用场景与注意

适合谁: 需要在同一条 DSH 进程里,对不同对话临时切换「何时压、压后留多少尾」,又不想改 preset、重启或替换 compaction 后端的开发者。

务必知晓:

  • 插件以当前 DSH 进程的权限运行;安装前应自行查看 GitHub 仓库 源码与 MIT 许可证。
  • 只作用于压力触发的压缩;上下文溢出后的恢复不保留尾部,属后端行为。
  • 若保留量 ≥ 阈值,后端会抛 retainTokens must be less than threshold;插件捕获后回退到按比例计算的默认尾部,并在 compact-ratio.health.json 记一条,日志有 warn。
  • 模型级 modelPolicies 里显式写的保留策略优先于面板设置。

DSH 生态强调「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系,本文安装命令与行为以仓库 README 为准。

结尾

经过上面的步骤,dsh-compact-tuner 把全局 preset 里的压缩触发比例与保留量,收敛成「当前对话、Composer 里可改、下一步生效」的工作流,与只调阈值或需改 preset 的同类插件形成互补。

  • 目录页:https://www.skillhub.cn/plugins/YumoFinn/dsh-compact-tuner
  • GitHub:https://github.com/YumoFinn/dsh-compact-tuner
羽毛球分组比赛记分
小程序二维码

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

小夜