Smart Compaction:讓模型自行決定壓縮上下文

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 以禁用

注意事項

  1. 依賴服務:compact_now 需要一個可訪問的 compaction 服務(例如 compaction-basic)。
  2. Token 計量:context_status 需要 @deepseek-ai/dsh-token-meter 提供上下文壓力數據。
  3. 無侵入性:該插件僅使用 DSH 的公共 API,沒有配置修改,也沒有對核心代碼的更改。
  4. Live Reload:爲了看到配置變更或插件行爲的變化,建議在 Web 配置文件下運行。
羽毛球分组比赛记分
小程序二维码

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

小夜