Smart Compaction:让模型自行决定压缩上下文

DSH(DeepSeek Harness)内置的压缩机制是纯反应式的,它基于固定阈值触发,无法判断当前截断上下文是否处于安全点。例如,它可能刚好在读取文件后、编辑文件前触发压缩,导致模型丢失刚刚读取的关键信息。

Smart Compaction 将决策权交给模型,使其能主动判断并在安全点触发压缩。

是什么

这是 DeepSeek Harness 的一个插件,由 JoblessJoe 维护。它向模型提供了两个工具:compact_now 和 context_status。

  • compact_now:允许模型在安全点(如完成一个 todo 项后)主动压缩上下文。
  • context_status:提供真实的 token 使用率数据,让模型了解当前上下文窗口的占用情况。

核心功能

compact_now

模型调用此工具时,会选取当前最大的可压缩历史片段,并调用 DSH 的 compactRegion() 方法。调用前会向聊天界面发送一条“Compacting now”的通知,避免用户误以为模型卡住。

如果历史记录不足以进行压缩,该工具会无害地无操作,不会发送通知。

context_status

这是一个只读工具,不会修改会话。它报告当前 token 使用量与模型实际上下文窗口大小的对比,例如显示“~42,300 / 77,824 tokens used (54.3%)”。数据来源是 DSH 的 ctx.sessionProjections.stateOf(),与 Web UI 的上下文计量器数据一致。

自动安全点压缩

插件会监听 todo_write 事件。当任务被标记为完成时,这是一个自然的截断点。如果此时上下文占用超过 safePointRatio(默认为 0.5),插件会在下一个步骤开始前自动触发压缩。DSH 原有的 80% 阈值触发器仍作为后备机制。

安装与启用

在 DSH 的 web 配置文件(或其他支持 live reload 的配置文件)中执行:

npx @deepseek-ai/dsh plugin --profile web add smart-compaction

安装后,插件会自动添加到 dsh.profile.bundles 中。Web 配置文件支持热重载,插件会立即生效。

对于基于 @deepseek-ai/dsh-web-app 的配置文件,还需要执行以下命令以将 compaction 服务挂载到隔离的 realm 中:

npx -p smart-compaction smart-compaction-mount-into-presets

配置

可以在 cordis.patch.yml 中调整安全点压缩的触发阈值。例如:

- id: tool-compact-now
  config:
    safePointRatio: 0.6   # 或设置为 false 以禁用

注意事项

  1. 依赖服务:compact_now 需要一个可访问的 compaction 服务(例如 compaction-basic)。
  2. Token 计量:context_status 需要 @deepseek-ai/dsh-token-meter 提供上下文压力数据。
  3. 无侵入性:该插件仅使用 DSH 的公共 API,没有配置修改,也没有对核心代码的更改。
  4. Live Reload:为了看到配置变更或插件行为的变化,建议在 Web 配置文件下运行。
羽毛球分组比赛记分
小程序二维码

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

小夜