前言¶
DeepSeek Harness 的上下文壓縮功能可以防止對話歷史超出模型上下文窗口,但默認配置需要編輯 YAML 文件,操作不夠直觀。deepseek-harness-compaction-ui 是一款可視化配置插件,它將原本需要編輯的配置項封裝在 Web 設置頁面中,支持百分比和絕對 Tokens 兩種模式,方便調整自動壓縮閾值和近期內容保留量。
核心功能¶
- 可視化配置:在“設置 → 插件 → 插件配置”中管理上下文壓縮,替代手動編輯 YAML。
- 雙模式支持:
- 觸發閾值:支持按固定 Token 數或按當前上下文窗口的百分比觸發壓縮。
- 近期內容保留量:支持按固定 Token 數或按當前上下文窗口的百分比保留。
- 自動換算:在 Tokens 和百分比模式間切換時,自動計算並顯示等效值。
- 熱更新:保存配置後無需重新創建會話,策略立即生效。
- 運行時監控:在輸入框旁顯示壓縮閾值進度圓環,懸停可查看當前上下文用量、自動壓縮閾值及佔用比例。達到閾值時圓環變紅。
- 獨立策略:支持爲不同的 provider 和 model 設置獨立的壓縮策略。
安裝與啓用¶
使用以下命令將插件安裝到 DSH 的 Web profile:
npx @deepseek-ai/dsh plugin --profile web add deepseek-harness-compaction-ui
安裝完成後,在 Web 界面打開“設置 → 插件 → 插件配置 → 上下文壓縮”即可使用。
典型用法¶
進入插件配置頁面後,根據需要選擇“Tokens 模式”或“百分比模式”。
- Tokens 模式:直接設定觸發和保留的絕對 Token 數。百分比模式會同時顯示按當前上下文窗口換算的近似 Token 數。
- 百分比模式:基於模型上下文窗口設定比例。
- 配置邏輯:設置的“保留近期對話”量必須小於“觸發閾值”,否則無法保存。
默認策略如下:
| 設置項 | 默認值 |
|---|---|
| 自動壓縮 | 開啓 |
| 觸發閾值 | 256,000 Tokens |
| 保留近期對話 | 64,000 Tokens |
| 上下文窗口 | 1,000,000 Tokens |
實現邊界¶
本插件並非獨立的壓縮引擎,它不處理壓縮範圍選擇、工具調用配對、摘要生成、消息替換、持久化事件、取消和上下文溢出恢復等邏輯。其核心職責是:
- 展示和保存可視化設置。
- 將絕對值換算爲官方引擎使用的
thresholdRatio。 - 將百分比策略直接傳給官方引擎。
- 校驗配置並在運行時熱更新策略。
注意事項¶
上下文壓縮主要用於控制歷史消息的增長,不能解決所有容量問題。以下場景仍可能導致溢出或錯誤:
- 單條消息或工具結果本身超過預算。
- System prompt 與工具 Schema 已接近上下文上限。
- 摘要模型持續失敗或外部服務不可用。
- 多輪摘要導致的信息損耗。
此外,關鍵任務狀態應寫入倉庫文件或其他持久化存儲,不應僅依賴對話歷史進行保存。
高級配置¶
通常不需要手動編輯 YAML。若需爲自定義模型設置獨立窗口或策略,可在 profile 的 cordis.patch.yml 中覆蓋插件配置。
- id: compaction-absolute-tokens
config:
thresholdMode: ratio
thresholdRatio: 0.8
retainMode: ratio
retainRatio: 0.16
thresholdTokens: 256000
retainTokens: 64000
contextWindowTokens: 1000000
maxTokens: 8192
compactionRetries: 1
maxOverflowRetries: 1
auto: true
targets:
- provider: deepseek-official
model: deepseek-v4-flash
- provider: deepseek-official
model: deepseek-v4-pro