dsh-compact:DeepSeek Harness 上下文壓縮與溢出恢復插件

前言

DeepSeek Harness (DSH) 的運行過程依賴上下文窗口。當對話輪次增加或工具調用頻繁時,歷史消息容易填滿上下文,導致請求失敗或模型遺忘早期指令。dsh-compact 插件旨在解決這一問題,通過自動壓縮歷史內容、手動壓縮入口以及溢出恢復機制,讓長對話能夠持續進行。

插件概況

  • 名稱:dsh-compact
  • 核心價值:DeepSeek Harness 上下文自動壓縮、手動壓縮與溢出恢復插件
  • 維護者:zixin947
  • 開源協議:MIT

安裝與啓用

完全退出正在運行的 DSH 服務,執行以下命令安裝插件:

dsh plugin --profile web add "github:zixin947/dsh-compact#main"

安裝完成後,重新啓動 DSH Web 服務。默認的掛載配置由 cordis.patch.yml 提供:

- id: compact
  name: 'dsh-compact'

配置項

插件提供以下配置項,允許你控制壓縮的觸發時機、保留比例以及溢出恢復策略。默認值如下:

配置項 默認值 說明
enabled true 是否啓用自動壓縮和溢出恢復
thresholdRatio 0.75 上下文佔用達到窗口 75% 時觸發自動壓縮
retainRatio 0.20 壓縮後保留最近約 20% 的上下文
recoverOnOverflow true 遇到上下文溢出錯誤時是否嘗試恢復
maxOverflowRetries 1 溢出恢復的最大重試次數
modelPolicies [] 針對特定模型的覆蓋策略

參數約束

  • thresholdRatio 範圍爲 0.50 到 0.95。
  • retainRatio 範圍爲 0.05 到 0.50。
  • retainRatio 必須小於 thresholdRatio。
  • modelPolicies 使用 provider 和 model 精確匹配。

配置示例

- id: compact
  name: 'dsh-compact'
  config:
    enabled: true
    thresholdRatio: 0.75
    retainRatio: 0.20
    recoverOnOverflow: true
    maxOverflowRetries: 1
    modelPolicies:
      - provider: youchu
        model: deepseek-v4-flash
        thresholdRatio: 0.80
        retainRatio: 0.20

使用方式

基礎掛載

一般使用者只需掛載 dsh-compact,即可獲得自動壓縮和溢出恢復能力。

Agent 級別掛載

如果目標 Agent preset 需要獨立的壓縮入口(如 /compact 命令)或需要裁剪工具結果,可以在對應組合中掛載 dsh-compact/agent:

- id: compact-agent
  name: 'dsh-compact/agent'
  isolate:
    compaction: true
    toolResultPruner: true

該掛載點組合了壓縮引擎、/compact 命令和工具結果裁剪器。

操作入口

  • 自動壓縮:在普通請求開始前,根據上下文佔用比例自動觸發。
  • 手動壓縮:通過 /compact 命令或設置頁中的入口手動觸發。

工作機制

自動壓縮流程

每次 Agent 請求開始前,插件會檢查當前上下文佔用比例。達到 thresholdRatio 時:

  1. 選擇較早的會話區間進行壓縮。
  2. 使用當前會話的模型生成結構化檢查點摘要。
  3. 將原區間替換爲持久化摘要(保留最近一段上下文)。
  4. 繼續執行原本的請求。

每次壓力檢查最多生成一個摘要,避免同一回合內重複壓縮。

溢出恢復

當模型返回上下文窗口超限錯誤時,插件會嘗試壓縮當前會話並重試原請求。恢復次數受 maxOverflowRetries 限制,取消中的請求不會重試。

空摘要降級

如果摘要模型返回空文本,插件會移除 Agent system prompt 和工具定義,然後降級重試一次。其他網絡或模型錯誤不會觸發此降級邏輯。

注意事項

  1. 文件安全:插件僅處理 DSH 會話上下文,不會刪除工作區文件。
  2. 摘要質量:壓縮會用摘要替換較早的會話顯示內容,摘要質量取決於當前使用的模型。
  3. 容錯性:自動壓縮失敗時,插件會記錄狀態並繼續用戶請求,不會因摘要服務異常中斷當前回合。
  4. 版本依賴:該版本面向 @deepseek-ai/dsh 0.1.0-rc.7 及相同插件 API 的版本。
  5. 倉庫獨立:獨立倉庫只包含插件本體;EAC 的 preset 遷移和桌面宿主集成仍由 EAC 主項目維護。

總結

dsh-compact 通過在上下文接近上限時自動生成摘要或在溢出時進行有界恢復,降低了長對話維護的複雜度。對於需要長時間運行或頻繁調用工具的 Agent 場景,該插件是維持對話連貫性的實用工具。

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

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

小夜