dsh-force-compact:面向本地的激進上下文壓縮插件

DSH 智能體在長對話場景中常面臨上下文窗口限制或 API 調用成本的問題。dsh-force-compact 通過在本地 llama.cpp 上運行 Qwen3.8‑27B,並在對話歷史本身上執行壓縮邏輯,在保持常駐 Prompt 小而快的同時,提供“大窗口”的體驗。

核心定位

這是一個 DSH Cordis 插件,旨在通過“收縮歷史”而非單純依賴超大上下文窗口來維持智能體運行。它默認運行在本地環境,數據不出本機,無 API 成本。

工作機制

插件在 resolveCompaction 這一單一接口下提供雙引擎支持,自動切換:

  • 官方引擎:當 compaction 服務在智能體域中可解析時優先使用,委託給 compaction/basic。
  • 內置引擎:作爲回退方案。當官方服務不可用(如標準預設隔離了該服務)時接管。它直接操作 ctx.sessions / ctx.llm.stream / ctx.tokenMeter,複用官方的事件詞彙,確保安全回放。

觸發機制

壓縮通過以下路徑觸發:

  1. 請求前守衛 (agent/pre-step):讀取會話的 projectedTokens(即 UI 右下角顯示的數字)。當達到 autoThresholdTokens 時,拒絕當前請求,轉而執行壓縮,保留最新的 retainLatestTokens。低於閾值則放行。
  2. 回合結束/空閒 (agent/status → idle):智能體靜止時,通過 compactNow 觸發壓縮(需開啓 turnEndForceCompactionEnabled)。
  3. 手動命令 (/force-compact):僅在空閒時立即壓縮;若智能體忙碌,則設置本地標誌,在下一模型步執行。
  4. 會話刷新 (session/flush):在持久化檢查點觸發壓縮。

所有路徑最終都匯入“壓縮結果寫入會話”這一邊界,並觸發 LiveUI 狀態更新。

思考控制

默認設置 disableThinking: true,該控制僅對壓縮調用生效。

  • 壓縮調用:攜帶 reasoningEffort:'off'(或 llama.cpp 的 reasoning_effort:"none"),強制關閉思考。
  • 其他請求:機器的 LlmCallConfig 保持不變,不受影響。
  • 兼容性:如果模型不支持 off 級別,插件會探測路由能力並自動降級到最低支持的級別(如 low),而非直接報錯。對於完全不支持推理的模型,則不添加該字段。

LiveUI 狀態

插件通過 LiveUI 發送實時狀態文本:
* [強制壓縮中>>>]:壓縮提交前。
* [壓縮完成!]:壓縮完成後。

依賴與安裝

插件作爲 DSH Cordis 插件運行,需滿足以下 peer 依賴:

{
  "@deepseek-ai/cordis": ">=4.0.4",
  "@deepseek-ai/dsh-agent": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-compaction": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-commands": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-client-store": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-client-ui-primitives": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-client-ui-settings": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-client-locale": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-llm": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-session": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-session-projection": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-settings": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-token-meter": ">=0.2.0-rc.1",
  "@deepseek-ai/schemastery": ">=3.18.4"
}

注:安裝方式通常通過包管理器或 DSH 插件機制,具體需參考該插件在 package.json 中的 exports 與 files 字段(包含 index.js、src/、web/、cordis.patch.yml 等)。

適用場景

適合需要在本地運行大模型、對上下文窗口敏感且希望零 API 成本的場景。由於插件運行在當前 DSH 進程權限下,安裝前建議檢查源碼與許可證。

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

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

小夜