dsh-compact-tuner

中文文档
0.1.0发布于 2026/11/03MITES Module零依赖

调整DeepSeek线束压缩触发比率和保留尾每次对话,从作曲家。

中文使用文档
文档目录9 节
  1. 为什么需要它
  2. 安装
  3. preset 隔离时补一行
  4. 用法
  5. 实现
  6. 已知行为
  7. 存储
  8. 开发
  9. 许可

dsh-compact-tuner

在输入框上方调当前对话的上下文压缩参数:触发比例和保留量。

为什么需要它

DSH 的自动压缩由 @deepseek-ai/dsh-compaction-basic 驱动,两个参数只存在于 preset 配置里:

  • thresholdRatio:thresholdTokens = min(窗口 × 比例, 窗口 − 输出预留 − headroom), 测得的 totalTokens 越过它就压缩;
  • retainTokens:压缩时原样保留的尾部 token 预算。resolveCompactSpec 要求它严格小于阈值, 否则直接抛错。

两者都是全局的:改一次要重启,且对所有对话一视同仁。但长任务和短问答需要的策略不同—— 有的想晚点压、保住单轮完整性,有的想早点压、省窗口;压缩后保留多少尾部,决定接下来几步 还记不记得上下文。

现有插件里,dsh-compaction-threshold 和 dsh-compact-control 只调阈值; @tivility/dsh-compaction-window 覆盖阈值和保留量,但它替换 compaction 后端、 要求改 preset 里的压缩行,也没有界面。这个插件补的是:两个参数都能调、在会话里直接调、 不换后端。

安装

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

重启 DSH。也可以从侧栏「插件」页搜索安装。

preset 隔离时补一行

DSH 0.2 的 preset 常用 isolate: { compaction: true } 给每个 preset 独立引擎, bundle patch 只能插根层。在自己的 preset 的 compaction group 里加:

- id: compact-tuner-engine
  name: dsh-compact-tuner
  config:
    role: engine

根层那条(面板、命令、HTTP 接口)由插件自带。不加这一行,面板显示「未启用」。

用法

点输入框上方的「压缩 xx%」,面板两个页签:

页签取值对应配置
触发比例20% / 25% / 35% / 自定义 5%–95% / 跟随默认thresholdRatio
保留量8k / 20k / 40k / 自定义 1k–200k token / 跟随默认retainTokens

改动只影响当前对话,下一步生效;新对话回到默认值。

命令:

/compact-ratio            查看当前对话的比例
/compact-ratio 0.25       设为 25%
/compact-ratio default    清除覆盖

实现

装饰 ctx.compaction 的 compactIfNeeded:调用前换入带覆盖的配置副本,在引擎的同步前缀 结束后还原。没有覆盖、不是压力触发、或引擎不可用时,直接调用原方法。

已知行为

  • 只作用于压力触发的压缩;上下文溢出后的恢复不保留尾部,这是后端行为。
  • 保留量 ≥ 阈值时后端抛 retainTokens must be less than threshold;插件捕获后回退到 按比例计算的默认尾部,并在 compact-ratio.health.json 记一条,日志里也有一条 warn。
  • 模型级 modelPolicies 里显式写的保留策略优先于面板设置。

存储

~/.dsh/storages/compact-ratio.json,纯本地,不上传。

开发

index.js + client.js 两个文件,无构建、无运行时依赖。改完重启宿主, 浏览器半侧刷新页面即可。

许可

MIT。

版本与发布记录

dsh-compact-tuner 共发布 2 个版本,首次发布于 2026/11/03;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.1.0latest2026/11/03今天
0.0.0-stage2026/11/03今天

关于 dsh-compact-tuner 的常见问题

dsh-compact-tuner 是什么?

调整DeepSeek线束压缩触发比率和保留尾每次对话,从作曲家。

如何安装 dsh-compact-tuner?

在项目目录运行 npm install dsh-compact-tuner,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.2.0)、@deepseek-ai/dsh-compaction(^0.2.1-rc.3)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

dsh-compact-tuner 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/dsh-compact-tuner 是否存在。

dsh-compact-tuner 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

dsh-compact-tuner 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

dsh-compact-tuner 可以商用吗?

dsh-compact-tuner 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

dsh-compact-tuner 还在维护吗?

最新版本 0.1.0 发布于 2026/11/03(今天);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/11/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。