在使用 DeepSeek Harness(DSH)進行長上下文模型推理時,通用壓縮往往難以滿足特定需求。手動修剪對話既繁瑣又容易出錯。ya8d/dsh-directive-compact 插件提供了一種基於自然語言的壓縮方案,允許你通過指令精確控制上下文的保留與修剪,有時甚至能用來修復配置錯誤的上下文。
插件是什麼¶
這是一個自定義的自然語言壓縮插件,由 ya8D 維護。它不修改上游的 ctx.compaction,是一個純增量插件。其核心價值在於允許開發者以自然語言指令(如“保留錯誤日誌,壓縮中間過程”)來精確修剪上下文,甚至修復上下文配置錯誤。
核心功能¶
插件提供兩個核心命令,通過自然語言指令執行不同的壓縮邏輯。
1. /compact-directive:壓縮中間部分¶
該命令壓縮對話的中間部分。它會保留頭部(前3個用戶回合 + 固定骨架)和最近的回合,僅對中間內容進行壓縮。
2. /trim-directive:修剪整個對話¶
該命令修剪整個對話。此命令無區域保護,理論上可以刪除頭部、注入的骨架以及任何內容,實現更激進的壓縮。
3. 指令支持¶
支持通過自然語言執行以下操作:
* delete:刪除節點
* delete-text:刪除文本片段
* rewrite:重寫節點
* summarize:摘要替換
4. 純增量實現¶
插件爲純增量,不影響上游 ctx.compaction。原始對話保留在 UI 中,僅模型可見的上下文被壓縮。
安裝與啓用¶
通過 DSH CLI 安裝插件。安裝命令中的 <name> 需要用戶自行指定(如 web、headless)。
dsh plugin --profile <name> add @ya8d/dsh-directive-compact@rc
典型用法¶
在對話中使用自然語言指令調用命令。
壓縮中間部分:
/compact-directive keep the login-related errors, compress the rest of the middle process
修剪整個對話:
/trim-directive delete all git-operation records, keep the user's original instructions and the plugin-development goal
適用場景與注意¶
破壞性操作¶
操作具有破壞性,永久移除內容。建議在執行前分叉會話。如果沒有內容可刪除,會返回 <<NO_CHANGE>>,這是正常結果而非報錯。
參數限制¶
/compact-directive 的指令參數不能爲空,否則會報錯。
性能注意¶
/trim-directive 可能需要較長時間(幾分鐘),因爲模型需要推理如何根據指令進行修剪。如果對話規模較大(如 180K+ tokens),處理時間可能長達 5-10 分鐘。
環境依賴¶
插件依賴 Node.js 版本 ^22.19.0 || >=24.0.0。