dsh-compaction-cache:讓 DSH 壓縮摘要命中 Provider 前綴緩存

前言

DeepSeek Harness (DSH) 的 dsh-compaction-basic 插件在執行壓縮摘要時,默認只從會話已固化的路由頭裏提取 provider 和 model,導致 reasoningEffort 和 maxTokens 等關鍵參數在壓縮請求中丟失。這使得壓縮調用的信封與上一輪完全不同,導致 provider 的前綴緩存無法命中,壓縮操作被迫按全價重算整段歷史,而非僅計算指令本身。dsh-compaction-cache 插件通過注入缺失參數,使壓縮調用的信封與上一輪保持一致,從而複用 provider 的前綴緩存。

核心功能

插件掛載在 llm/stream 瀑布流上,僅對標記爲 purpose: 'compaction' 的請求生效。它通過以下規則補齊摘要信封參數:
1. 參數鏡像:將路由頭裏的 reasoningEffort 和 temperature 注入摘要調用(僅在未顯式設置且非適配器默認時生效)。
2. MaxTokens 對齊:無條件將 maxTokens 覆蓋爲路由值,因爲摘要器總是強制設置該值。
3. 邊界處理:不修改消息列表,不觸碰普通請求,任何異常被吞掉並照常調用 next(),確保插件失效時不會阻斷調用。

本插件爲零依賴、零工具、零 UI、免構建的臨時補丁,僅從 GitHub 分發。

安裝

本包未發佈至 npm,僅通過 GitHub 分發。

方式一:通過 pnpm 添加依賴

// <DSH_HOME>/profiles/<profile>/package.json
"dependencies": { "dsh-compaction-cache": "github:deepseekv41flash/dsh-compaction-cache" },
"dsh": { "profile": { "bundles": ["…", "dsh-compaction-cache"] } }

執行命令:pnpm add github:deepseekv41flash/dsh-compaction-cache

方式二:本地 Clone + Link

git clone https://github.com/deepseekv41flash/dsh-compaction-cache

在 profile 中使用 link: 規格引用,並在 bundles 中包含。

配置

所有配置均爲可選,默認啓用。

鍵 默認值 說明
enabled true 總開關
log true 記錄對齊日誌
mirror ['reasoningEffort','temperature'] 需鏡像的路由參數名
alignMaxTokens true 是否強制對齊 maxTokens

驗證

生效後,宿主日誌會輸出對齊信息:

compaction-cache: aligned summarization envelope (reasoningEffort=max maxTokens=256000 (was 65536)) session=...

判據:對比修前,compaction/summary.usage 中的 inputTokens 應大幅下降(從 13 萬級降至幾百),cacheReadTokens 變爲六位數。

注意事項

  1. 臨時補丁:這是繞過官方缺陷(上游 discussion #1944)的臨時方案,官方修復後應卸載。
  2. 僅 GitHub:包未發佈 npm,不可通過常規包管理器安裝。
  3. 異常吞掉:插件內部異常被捕獲並忽略,不會影響主流程。
  4. 事件值差異:compaction/summary 事件裏記錄的 maxTokens 是 spec 值而非實際信封值,判斷生效與否需看 usage 中的 inputTokens / cacheReadTokens。

鏈接

GitHub 倉庫 | 目錄頁

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

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

小夜