dsh-compact-manager:接管 DSH 上下文壓縮的雙引擎管理

前言

在 DeepSeek Harness(DSH)裏跑長會話時,上下文遲早會頂到窗口上限。官方自帶的壓縮能力能續命,但「只用官方摘要器」和「偶爾想本地快速摺頁、不想花 token」往往不能在同一條策略裏切換;模型側一旦限流或密鑰失效,自動壓縮也可能卡在單一路徑上。社區插件 dsh-compact-manager(維護者 tony92921,分類:工作流)的定位是接管上下文壓縮:手動與自動兩條路徑都支持模型壓縮和機械摺頁壓縮,並在模型路徑上提供備用模型與救援策略。摺頁算法取自 dsh-ledger-compact,機械路徑不髮網絡請求、不消耗 token。

這是什麼

dsh-compact-manager 包裹 live 的 @deepseek-ai/dsh-compaction-basic 引擎實例,在 Host 側統一策略選擇與壓縮事務,在 UI 側提供「壓縮管理」設置頁和兩個手動按鈕。它解決的是:在同一套官方壓縮事務與 surface 語義下,按需選擇「調模型摘要」或「本地摺頁成短卡」,並配置自動觸發閾值、雙模型回退與入境定形等周邊能力。

  • 目錄頁:https://www.skillhub.cn/plugins/tony92921/dsh-compact-manager
  • 源碼與說明:https://github.com/tony92921/dsh-compact-manager
  • 當前 package 版本(資料原文):1.0.1,MIT 許可

兩種壓縮引擎

壓縮引擎決定誰來做壓縮;兩個手動按鈕與 /compact 都跟隨它:

引擎 自動壓力/溢出壓縮 手動按鈕、/compact、/fast-compact
機械 機械摺頁 機械摺頁
模型 按壓縮方式 備用模型 1,失敗切備用模型 2

模型壓縮由配置的壓縮模型產出摘要。支持備用模型兜底(官方摘要器優先、連續失敗後切換),也支持直接使用備用模型,並可再掛備用模型 2 做二重兜底。

機械摺頁壓縮把舊歷史換成短卡,速度以毫秒計。摺頁同樣走官方壓縮事務,日誌裏留下與模型路徑相同的標記三元組與 surface op;原始事件仍以原序號留在只追加的會話日誌裏,按 seq 可回溯。

壓縮方式只在模型引擎下有意義:

  • 官方優先,失敗後救援(rescue)— 先由官方摘要器處理,連續失敗 rescueAfterFailures 次後才交給備用模型 1。
  • 直接使用備用模型(direct)— 自動壓縮直接走備用模型 1,官方摘要器不參與。

兩條路徑上,備用模型 1 失敗都會自動換成備用模型 2(若已配置)。回退發生在 summarize 回調內部,避免部分提交留下需清理的標記對。路由租約(routes.js)激活時會禁用回退,以免換模型破壞計價鎖定。

命令行的 ledger / saviour 會覆蓋上述一切(包括 replaceDefault),避免配置卡住時沒有出口。

手動操作與命令

聊天輸入框上方原生上下文彈層裏有兩個按鈕:

  • 手動模型壓縮 — 模型路徑(原有行爲)。
  • 手動機械壓縮 — 本地摺頁,不調模型、不花 token;未配置壓縮模型時仍可用。

「手動機械壓縮」默認需點兩次確認(4 秒後自動還原);可在設置裏關閉「摺頁二次確認」改爲單擊執行。圓環上下文按鈕僅用於查看明細;原先的長按直接壓縮手勢已移除,壓縮只能從上述兩個按鈕或命令發起。

常用命令:

/fast-compact              # 按 engine 設置折一次
/fast-compact ledger       # 強制機械摺頁(不調模型)
/fast-compact saviour      # 交給壓縮模型
/fast-compact status       # 當前設置與可用性

官方 @deepseek-ai/dsh-compaction 沒有 undo/revert,摺頁後 UI 上不能「展開還原」;但 compaction/summary 的 shadowedSeqs 記錄了被替換的事件序號,原文仍在只追加的會話日誌中,可按 seq 從日誌文件讀取。

設置頁:壓縮管理

路徑:設置 → 壓縮管理,四個 tab:

  1. 模型 — 壓縮方式、救援前失敗次數、備用模型 1 與 2;底部可對兩個備用模型各發一次與真實壓縮同形狀的連通性測試(可選輸入檔位 200 / 2k / 100k / 300k / 900k 字符量級)。
  2. 自動壓縮 — 引擎、thresholdOverride、觸發線比例(默認語境下與 compaction-basic 一致)、headroom(默認 65536)、retain;頁面向 Host 查詢算出的實際觸發點,保證與引擎一致。
  3. 機械 — 工具結果定形閾值、密圖預算與節省比例、摺頁二次確認。
  4. 診斷 — 模型壓縮 / 非模型壓縮兩組累計計數(本進程內,宿主重啓歸零)及命令提示。

改動無保存按鈕,約 250ms 防抖後自動寫入;Host 拒絕時會顯示紅色「未保存」條。

入境定形只裁當前回合、緊鄰上一步且尚未發送的大 tool_result;已發出去的節點不改寫,以免破壞 provider 緩存前綴。

安裝與啓用

安裝命令(須與資料原文一致):

dsh plugin add dsh-compact-manager

從本地源碼鏈接:

dsh plugin --profile <名稱> add link:/path/to/dsh-compact-manager

裝好後在 設置 → 壓縮管理 配置。不要卸載 compaction-basic — 官方事務標記、surface op 與穩定性校驗仍來自該包。

運行環境(package.json):Node >=24;DSH 版本需滿足 >=0.2.0-rc.1 等 peer 約束,並與 @deepseek-ai/dsh-compaction、dsh-agent 等配套包版本區間一致。插件以當前 DSH 進程權限運行,安裝前請自行審閱源碼與 MIT/NOTICE 中的第三方聲明。

適用場景與注意

適合需要在同一 Host 裏切換模型摘要與零 token 摺頁、爲自動壓縮配置雙模型回退或 rescue/direct 策略、並在壓測長上下文前用分級連通性測試驗證備用模型的開發者。

注意:

  • 引擎選擇會同步寫入 replaceDefault 與 engine,避免自相矛盾;半套備用模型(有 provider 無 model)在保存時會被拒絕。
  • 保留比例若接近觸發線,頁面可能自動下調 retain,否則 selectCompactableRange 可能永遠找不到可壓區域。
  • SkillHub 目錄爲社區插件索引,與 DeepSeek / 幻方無官方從屬關係;星標等元數據以目錄頁爲準(資料中 GitHub stars:1)。

結尾

dsh-compact-manager 把 DSH 上下文壓縮從「單一路徑」擴展爲可配置的模型 + 機械雙引擎,並在日誌語義上與官方 compaction 對齊,便於歷史 UI 與診斷。進一步瞭解可訪問 SkillHub 目錄頁 與 GitHub 倉庫。

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

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

小夜