dsh-quilt-compact:DeepSeek Harness 上下文壓縮插件

前言

DeepSeek Harness (DSH) 默認使用 compaction-basic 進行上下文壓縮。如果你希望使用指定的模型(尤其是低價或免費小模型)來壓縮對話,以節省 Token 成本,或者處理上下文窗口較短無法容納完整對話的場景,dsh-quilt-compact 是一個可行的替代方案。它接管了默認的 ctx.compaction 後端。

是什麼

由 bvbhu 維護的插件,基於 MIT 協議。它的核心邏輯是用指定的模型池對對話進行“分塊摘要再歸併”的壓縮,最終產出一個小而全的檢查點。

工作流程

壓縮過程按以下順序進行:

  1. Stage 0 預處理:對要壓縮的區域進行預處理,包括合併相鄰重複行、壓縮連續空行、清除終端噪音(ANSI 轉義、光標標記等)、保留文件/圖片附件名稱;可選代碼骨架化與日誌精簡。
  2. 選模型與切塊:每輪選定一個可用模型,按該模型的上下文容量切分上下文。每塊同時帶上摘要長度上限,保證最終歸併不超出限制。
  3. 摘要:每個分塊經模型池調用摘要成一個小 digest。
  4. 歸併:所有 digest 一次調用整合成最終檢查點。
  5. Checkpoint:最終 digest 替換原區域,寫入會話。

安裝與啓用

直接從 GitHub 倉庫安裝:

dsh plugin --profile <name> add github:bvbhu/dsh-quilt-compact

安裝命令會自動激活隨包層並禁用 compaction-basic(本插件成爲 ctx.compaction)。建議用 #<sha> 後綴釘住提交,避免裸倉庫跟隨默認分支:

dsh plugin --profile <name> add github:bvbhu/dsh-quilt-compact#<sha>

配置

配置通過 Web UI 的設置頁或直接編輯 profile 的 cordis.patch.yml 進行。

模型池

配置多檔模型(tiers),按容量自動選用與降級。

- id: dsh-quilt-compact
  config:
    tiers:
      - name: primary
        models:
          - provider: openrouter
            model: openrouter/free
            maxConcurrent: 1
            cooldownHours: 1
  • cooldownHours:失敗後冷卻的小時數(正數,默認 1 小時)。
  • maxConcurrent:默認爲 1。

歸併窗口

控制歸併前最多保留多少上下文(token 數),默認 128k。

    mergeMaxContextTokens: 64000   # 歸併前最多保留多少上下文(歸併窗口),默認 128000

分塊

控制分塊比例與重疊比例。

    chunkRatio: 0.8        # 分塊佔用模型可用輸入的比例
    chunkOverlapRatio: 0.1 # 相鄰分塊重疊佔分塊預算的比例

預處理

啓用 Stage 0 的預處理選項。

    preprocessing:
      dedup: true                              # 合併相鄰重複行
      purgeErrors: true                        # 清除終端噪音
      astSkeleton: { enabled: false, maxDepth: 2 }  # 代碼骨架化(需顯式開啓)
      logCondense: { mode: balanced, maxLines: 200 }  # 超長日誌冷凝

運行記錄

可選的質量評估/診斷記錄,默認關閉。

    runRecord:
      enabled: false      # 關閉時不產生任何運行記錄
      maxEntries: 200     # 文件最多保留多少條
      snapshotChars: 0    # >0 時每條嵌入一段截斷的對話原文(默認 0 = 不存原文)
      path: ''            # 固定文件位置;留空用 DSH storage 根目錄

啓用後,每次壓縮會追加一行 JSON 到 <DSH home>/storages/dsh_quilt_compact_runs.jsonl。
* ref:指向會話事件日誌裏的被壓縮區間。
* chunks:每塊模型歸屬信息。
* cooldowns:每次進入冷卻的報錯詳情。
* snapshotChars:需顯式設爲正數纔會嵌入截斷的對話原文副本。

適用場景與注意

  • 版本依賴:需 DSH 版本 >=0.1.7-alpha.2 <0.2.0-0 || >=0.2.0-rc.1 <0.3.0-0。
  • 隱私:默認不保存對話原文,只記錄引用。開啓 runRecord 後默認仍不保存原文,需設置 snapshotChars > 0。
  • 兜底機制:模型池失敗或歸併時無足夠模型,會由會話模型兜底壓縮。
羽毛球分组比赛记分
小程序二维码

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

小夜