dsh-compaction-policy:为 DeepSeek Harness 调整全局 compaction 策略

前言

在 DeepSeek Harness(DSH)里跑长会话时,上下文窗口会被历史消息、工具调用与 checkpoint 逐步占满。官方 Basic compaction 会在接近窗口上限时做摘要与裁剪;默认阈值与输出预留的计算方式,在模型允许较大 max_tokens 时可能偏早触发 proactive 压缩。若你仍想用 Basic 自带的 summarizer、/compact、溢出恢复与 token 计量,只想改「何时压、压哪一段、失败怎么退避」,而不换 preset、不另装一套 compaction 引擎,社区插件 dsh-compaction-policy(维护者 huohua-dev,分类:工作流)提供的是一条全局策略层路径。

下面介绍它的定位、默认行为、安装方式与配置要点。事实以 GitHub 仓库 README 与 v0.2.2 发布说明为准;插件处于 Experimental 阶段,README 明确说明未证明原生 Windows / 真实模型 GUI 会话下的摘要质量。

这是什么

dsh-compaction-policy 是面向 DeepSeek Harness 的轻量 全局 compaction 策略插件:在指纹校验通过的官方 Basic 实现上,替换 proactive 预算、区间选择与无进展重试守卫;保留 Basic 原生压力机制、checkpoint、工具配对、token meter、UI 事件协议、原生 /compact 与 overflow recovery。它不注册 preset、不过滤 preset 注册表,也不新增自动 compaction 监听。

安装后默认 bundle 只增加一个根插件条目 compaction-policy-global(dsh-compaction-policy/global),作用于同一 Cordis runtime 内符合条件的官方 Basic 实例(含普通 preset)。自定义 backend、子类或覆写方法的实例会被跳过;无 compaction 的 minimal 组合不受影响。「Global」不表示机器上所有 DSH 进程或 profile。

宿主兼容性(README):bundle 声明加载 DSH ^0.2.1-rc.1(0.2.x 含后续 RC)与 Cordis 4.0.x;仅当五组 Basic 方法指纹与已验证实现一致时策略才会激活;无法识别的宿主构建会保持加载但处于 inert 状态,而不是启动失败。

核心功能

默认策略:90% 阈值,避免输出预留被重复扣减

相对 stock Basic,插件用 thresholdRatio、outputReserveCap、headroomTokens 等字段重算 proactive 阈值。默认 thresholdRatio: 0.9、outputReserveCap: 0、headroomTokens: 0,即 proactive 阈值为 floor(W × 0.9),剩余约 10% 作为余量且不会二次扣减。

README 给出的对比算例(算术说明,非性能 benchmark):窗口 262,144 token、输出上限 131,072 时,stock 阈值约 65,536,策略下约 235,929。

公式要点(与 README 一致):

reservedOutput  = min(requestMaxTokens, outputReserveCap)
policy threshold = floor(min(W × thresholdRatio,
                             W − reservedOutput − headroomTokens))
retentionTarget = floor((W − reservedOutput) × retainRatio)

pruneToolResults: false(默认) 仅作用于新的 proactive-pressure 路径:该路径不先 prune 工具结果,旧内容经 Basic 摘要;不关闭原生 pruner,也不改变 stock 模式、手动或 confirmed-overflow 行为。

README 提醒:输出 cap 不等于保证可用空间;90% 满的 prompt 与满额 completion 在固定窗口内无法共存,适配层/服务端仍需约束剩余容量;本插件不是 HTTP 输出预算钳制。

区间选择与失败守卫

  • 保留近期历史:软目标默认 retainRatio: 0.16(相对 W − reservedOutput);整段 message 与 tool-call/result 单元保持原子性,最新单元即使大于目标也保留原文。
  • 选段逻辑:允许较旧的大消息进入摘要范围,避免反复只摘要极小 checkpoint;system 节点受保护,后续 system 节点作为选段屏障。
  • 最小选段: proactive 摘要前,选中范围内至少 2,048 非 checkpoint token(minFreshTokens 默认 2048)。
  • 单步事务:每个压力步最多 一次摘要事务,不立刻再摘要刚写入的 checkpoint。
  • 失败退避:失败后退避 60s、120s、240s… 最长 10 分钟;到期后在下次压力检查允许一次探测,非后台模型调用;候选 materially 变化可更早重试,无关 tail 追加不会。
  • 原生路径保留:手动与 confirmed-overflow 路径、重试上限、事务完成与 durable-progress 检查仍走原生逻辑,绕过 proactive guard。

安装与启用

分发走 GitHub,非 npm。安装 v0.2.2 标签:

github:huohua-dev/dsh-compaction-policy#v0.2.2

Desktop 托管 profile

  1. 在 Desktop 插件管理 UI 中添加或更新上述 GitHub 源。
  2. 完全退出并重启 Desktop(刷新页面或 reload profile 不能替代;README 记录过旧进程 import 失败需全量重启才恢复)。
  3. 继续使用原有 preset,无需专用 preset。
  4. 在会话中执行 /compaction-policy-global status 查看覆盖范围与生效策略。

Desktop 托管环境下 不要 用 CLI 改插件;README 明确拒绝 --profile desktop 类 CLI 变通。

非 Electron 托管的 web profile

仅适用于 不由 Desktop/Electron 管理 的 web profile:

dsh plugin --profile web add github:huohua-dev/dsh-compaction-policy#v0.2.2

然后 reload/restart 对应 host。此 CLI 路径 不是 Desktop 的替代安装方式。

安装不会改变当前默认 provider 与 preset,也不会重写主请求的 output limit、reasoning effort 或 token 记账。

典型用法:配置全局条目

对用户 profile 中 compaction-policy-global 做 override,策略字段放在 config.policy 下。行级配置为整行替换,非 deep-merge;改配置后需 reload profile,并 restate 需保留的自定义项。

除某一精确 route 外其余走 stock 的示例(来自 README):

- id: compaction-policy-global
  config:
    policy:
      mode: stock
      modelPolicies:
        - provider: your-local-provider
          model: your-model-id
          mode: policy
          thresholdRatio: 0.9
          outputReserveCap: 0
          headroomTokens: 0
          pruneToolResults: false

provider / model 匹配为精确、区分大小写。未配置 modelPolicies 时,默认 mode: policy 应用于所有 eligible Basic 实例。

常用策略字段(默认值与含义见 README 表格):

Policy field Default 含义摘要
mode policy policy 用新 proactive 策略;stock 交回 Basic。
thresholdRatio 0.9 Proactive 窗口比例,受剩余容量分支约束。
outputReserveCap 0 Proactive 输出预留上限(非 API output cap)。
headroomTokens 0 额外 proactive 扣减;默认 10% 余量已在 ratio 中。
pruneToolResults false 新 proactive 路径是否先调用原生 tool-result pruner。
retainRatio 0.16 近期 tail 软目标比例。
retainTokens unset 绝对 soft target,与 retainRatio 互斥。
minFreshTokens 2048 选段最小非 checkpoint token 权重。
retryAfterTokens 4096 冷却未结束前重试所需的候选变化量。
retryCooldownMs 60000 摘要失败初始冷却。
maxRetryCooldownMs 600000 指数退避上限。
modelPolicies [] 按 { provider, model, ... } 精确覆盖。
dryRun false 观测 proactive 路径但不 prune/摘要;stock、手动与 overflow 仍可用。

除 modelPolicies、dryRun 外,其余字段可在单条 route 上覆盖。未知键与非法值会被拒绝。

适用场景与注意

适合谁:已在 DSH 中使用官方 Basic compaction、希望延迟 proactive 触发(默认 90%)、改善摘要选段与失败退避,且不愿切换 preset 或 fork compaction 引擎的开发者。

实验性与测试范围:版本 0.2.2 标注 Experimental;README 说明 synthetic session 与 scripted model response 的 actual-host 测试已通过,但不能等同于 live GUI 或真实模型摘要质量证明;不做无损摘要或更大上下文窗口承诺。

安全与权限:插件在当前 DSH 进程权限下运行,会参与会话 compaction 决策。安装前请自行审阅 源码与 MIT 许可证,并确认与本地 DSH / Cordis 版本满足 engines 与 peer 声明(如 Node ^22.19.0 || >=24.0.0,DSH ^0.2.1-rc.1)。

生态说明:DSH 采用「一切皆插件」思路;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-compaction-policy 在不动 Basic 核心能力的前提下,用全局策略调整 proactive 阈值(默认 90%)、保留区间与失败重试守卫,适合长会话工作流调优。安装源为 github:huohua-dev/dsh-compaction-policy#v0.2.2;启用后用 /compaction-policy-global status 核对生效情况。

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

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

小夜