dsh-compaction-route: 爲 DSH 壓縮任務配置備用模型

DSH(DeepSeek Harness)的壓縮引擎在 Web 設置頁選擇對話壓縮總結器後,沒有內置的故障轉移機制。當總結調用被拒絕或因上下文超限失敗時,整個壓縮過程會直接報錯,後續不會再嘗試其他模型。此外,DSH 的固定字符估算(chars/4)與不同模型的實際分詞結果存在偏差,可能導致一個對聊天模型來說合適的歷史記錄,對選定的總結器來說卻超出了輸入上限。

dsh-compaction-route 旨在解決上述問題。它是一個 DeepSeek Harness 插件,允許你在設置頁爲壓縮總結器指定一個備用模型,當主模型無法處理歷史記錄時自動切換。

核心功能

該插件僅對 purpose === "compaction" 的請求生效,攔截 DSH 的 llm/stream 流水線。主要能力包括:

  1. 目標重寫:將請求的目標重寫爲配置的“主模型”。
  2. 終端錯誤重試:如果主模型調用結束於終端錯誤塊,自動在同一請求上嘗試“備用模型”。
  3. 超大歷史回退:爲可能超出輸入上限的重放歷史提供兜底能力。
  4. 模型選擇:從已安裝的配置文件中讀取可用模型列表。

安裝與啓用

安裝過程無需構建步驟,插件掛載後無需重啓應用。

Web UI 安裝

  1. 打開設置頁面。
  2. 進入 Plugins(插件)。
  3. 點擊 Add plugin(添加插件)。
  4. 在輸入框中填入插件規範:
    github:643048695/dsh-compaction-route
  1. 按提示啓用插件。安裝後插入的行 ID 爲 compaction-route,這也是配置頁面的命名空間。

CLI 安裝

dsh plugin --profile <profile> add github:643048695/dsh-compaction-route

配置

安裝後,進入 Settings → Plugins → dsh-compaction-route → Configuration 進行配置。

配置項 說明
Enable routing 開啓路由功能。關閉時,引擎行爲與未安裝插件時一致。
Primary model 首先嚐試使用的總結器模型。
Fallback model 僅在主模型返回終端錯誤時嘗試。留空則禁用備用功能。
Reasoning effort 壓縮調用的推理力度,留空則使用提供商的默認值。

下拉菜單中的選項來源於 llm-pi-ai 配置命名空間,僅顯示已安裝在當前配置文件中的模型。配置項爲易失性(volatile),修改後僅對下一次壓縮生效,無需重啓。

選擇備用的前提:備用模型的有效窗口必須大於主模型的有效窗口。如果兩者窗口大小相同或更小,選擇備用模型無法解決問題,配置卡片會提示警告。

工作原理

插件攔截 llm/stream 水位線,針對壓縮任務執行以下邏輯:

  1. 若請求的 purpose 不爲 "compaction",直接放行,不做任何修改。
  2. 將目標重寫爲配置的 Primary 模型。
  3. 若 Primary 成功,返回其數據流。
  4. 若 Primary 結束於終端錯誤塊,重新進入 ctx.llm.stream(),使用 Fallback 模型重試。
  5. 返回第一次成功的結果,或最後一次嘗試的結果。

注:插件通過 WeakSet 追蹤自身創建的調用對象,防止重試邏輯再次被攔截。

注意事項與兼容性

  • 重試範圍:僅在終端錯誤塊時重試。若出現非終端錯誤(如中間態異常),按原行爲處理,不觸發備用。
  • 取消優先:若請求被取消,不會觸發重試。
  • 僅影響壓縮:插件僅修改 purpose === "compaction" 的請求,聊天回合、子代理等其他任務不受影響。
  • 日誌記錄:引擎自身的事件仍記錄其配置的目標(summarizationProvider/summarizationModel),而非插件的實際覆蓋目標。若需日誌一致性,需在引擎設置中將目標指向與插件相同的主模型。
  • 兼容版本:兼容 @deepseek-ai/dsh 0.1.7-rc.2 及 same-node 0.1.7 線。

總結

dsh-compaction-route 通過在壓縮流水線中增加一層路由邏輯,解決了 DSH 壓縮引擎單點故障的問題。當你面臨長對話歷史導致的壓縮失敗,且主模型無法處理時,配置一個具有更大上下文窗口的備用模型是有效的解決方案。

  • GitHub 倉庫: https://github.com/643048695/dsh-compaction-route
  • 社區目錄: https://www.skillhub.cn/plugins/643048695/dsh-compaction-route
羽毛球分组比赛记分
小程序二维码

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

小夜