前言¶
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 時:
- 選擇較早的會話區間進行壓縮。
- 使用當前會話的模型生成結構化檢查點摘要。
- 將原區間替換爲持久化摘要(保留最近一段上下文)。
- 繼續執行原本的請求。
每次壓力檢查最多生成一個摘要,避免同一回合內重複壓縮。
溢出恢復¶
當模型返回上下文窗口超限錯誤時,插件會嘗試壓縮當前會話並重試原請求。恢復次數受 maxOverflowRetries 限制,取消中的請求不會重試。
空摘要降級¶
如果摘要模型返回空文本,插件會移除 Agent system prompt 和工具定義,然後降級重試一次。其他網絡或模型錯誤不會觸發此降級邏輯。
注意事項¶
- 文件安全:插件僅處理 DSH 會話上下文,不會刪除工作區文件。
- 摘要質量:壓縮會用摘要替換較早的會話顯示內容,摘要質量取決於當前使用的模型。
- 容錯性:自動壓縮失敗時,插件會記錄狀態並繼續用戶請求,不會因摘要服務異常中斷當前回合。
- 版本依賴:該版本面向
@deepseek-ai/dsh 0.1.0-rc.7及相同插件 API 的版本。 - 倉庫獨立:獨立倉庫只包含插件本體;EAC 的 preset 遷移和桌面宿主集成仍由 EAC 主項目維護。
總結¶
dsh-compact 通過在上下文接近上限時自動生成摘要或在溢出時進行有界恢復,降低了長對話維護的複雜度。對於需要長時間運行或頻繁調用工具的 Agent 場景,該插件是維持對話連貫性的實用工具。