前言¶
Long DSH sessions eventually fail because every request re-uploads the whole conversation. 隨着對話長度增加,每次請求都重新上傳完整歷史會導致上下文限制或傳輸失敗。dsh-hypercompact 通過本地壓縮解決這一問題:當會話超過字節限制時,它在本地毫秒級壓縮舊歷史,且不調用 LLM,保證請求體保持在合理大小。
插件簡介¶
這是 DeepSeek Harness (DSH) 的一個插件,由 mrbeandev 維護,開源協議爲 MIT。
它提供確定性的、零 LLM 的字節預算上下文壓縮功能。核心價值在於“字節級精確召回”:經過壓縮的歷史內容,agent 可以通過 recall 工具逐字還原,無需重新生成。
核心功能¶
- Deterministic, zero-LLM, byte-budget context compaction:基於確定性的規則進行壓縮,不消耗 LLM 資源。
- Byte-exact recall of compacted history:壓縮後的歷史可以精確還原,保證上下文信息不丟失。
- Locally compacts old history in milliseconds:本地執行壓縮,速度極快。
- Keeps request small when session grows past a byte limit:自動控制請求大小,防止超限。
安裝與啓用¶
安裝需要三步:添加包、創建預設、重啓並選擇預設。
1. 添加插件包¶
在目標 profile 下添加插件:
dsh plugin --profile web add dsh-hypercompact
2. 創建 Hypercompact 預設¶
運行預設創建腳本。該腳本會複製 DSH 內置的 standard 預設,並將壓縮引擎替換爲 dsh-hypercompact:
node ~/.dsh/profiles/web/node_modules/dsh-hypercompact/scripts/create-preset.mjs
腳本會根據 DSH 版本自動處理預設路徑(如 ~/.dsh/hypercompact/preset-hypercompact/ 或 ~/.dsh/.agent-presets/hypercompact/)。
3. 重啓並使用¶
- 重啓 DSH (
dsh web)。 - 新建會話,在預設選擇器中選擇 Hypercompact (standard)。
- 在會話中輸入
/hypercompact查看狀態,或輸入/compact手動觸發壓縮。
兼容性與注意事項¶
DSH 版本要求¶
- 支持範圍:DSH
>=0.1.5-rc.2且<0.3.0。 - 0.3.0 及以上:插件啓動時會拒絕加載,除非在配置中設置
allowUntestedHarness: true。 - 0.1.5-rc.1 及以下:不支持。
Node.js 版本¶
插件需要 Node.js ^22.19.0 或 >=24.0.0。
總結¶
dsh-hypercompact 解決了長會話上下文管理難題,通過本地、確定性的字節級壓縮,在不犧牲信息完整性的前提下控制了請求體大小。適合需要在 DSH 中進行長時間對話或處理大量歷史記錄的開發者使用。