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 覈對生效情況。

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

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

小夜