DSH(DeepSeek Harness)內置的壓縮機制是純反應式的,它基於固定閾值觸發,無法判斷當前截斷上下文是否處於安全點。例如,它可能剛好在讀取文件後、編輯文件前觸發壓縮,導致模型丟失剛剛讀取的關鍵信息。
Smart Compaction 將決策權交給模型,使其能主動判斷並在安全點觸發壓縮。
是什麼¶
這是 DeepSeek Harness 的一個插件,由 JoblessJoe 維護。它向模型提供了兩個工具:compact_now 和 context_status。
compact_now:允許模型在安全點(如完成一個 todo 項後)主動壓縮上下文。context_status:提供真實的 token 使用率數據,讓模型瞭解當前上下文窗口的佔用情況。
核心功能¶
compact_now¶
模型調用此工具時,會選取當前最大的可壓縮歷史片段,並調用 DSH 的 compactRegion() 方法。調用前會向聊天界面發送一條“Compacting now”的通知,避免用戶誤以爲模型卡住。
如果歷史記錄不足以進行壓縮,該工具會無害地無操作,不會發送通知。
context_status¶
這是一個只讀工具,不會修改會話。它報告當前 token 使用量與模型實際上下文窗口大小的對比,例如顯示“~42,300 / 77,824 tokens used (54.3%)”。數據來源是 DSH 的 ctx.sessionProjections.stateOf(),與 Web UI 的上下文計量器數據一致。
自動安全點壓縮¶
插件會監聽 todo_write 事件。當任務被標記爲完成時,這是一個自然的截斷點。如果此時上下文佔用超過 safePointRatio(默認爲 0.5),插件會在下一個步驟開始前自動觸發壓縮。DSH 原有的 80% 閾值觸發器仍作爲後備機制。
安裝與啓用¶
在 DSH 的 web 配置文件(或其他支持 live reload 的配置文件)中執行:
npx @deepseek-ai/dsh plugin --profile web add smart-compaction
安裝後,插件會自動添加到 dsh.profile.bundles 中。Web 配置文件支持熱重載,插件會立即生效。
對於基於 @deepseek-ai/dsh-web-app 的配置文件,還需要執行以下命令以將 compaction 服務掛載到隔離的 realm 中:
npx -p smart-compaction smart-compaction-mount-into-presets
配置¶
可以在 cordis.patch.yml 中調整安全點壓縮的觸發閾值。例如:
- id: tool-compact-now
config:
safePointRatio: 0.6 # 或設置爲 false 以禁用
注意事項¶
- 依賴服務:
compact_now需要一個可訪問的compaction服務(例如compaction-basic)。 - Token 計量:
context_status需要@deepseek-ai/dsh-token-meter提供上下文壓力數據。 - 無侵入性:該插件僅使用 DSH 的公共 API,沒有配置修改,也沒有對核心代碼的更改。
- Live Reload:爲了看到配置變更或插件行爲的變化,建議在 Web 配置文件下運行。