前言¶
在開發 DeepSeek Harness (DSH) 預設時,長會話中工具結果往往體積龐大,容易導致上下文溢出。現有的壓縮方式有時難以兼顧壓縮力度與歷史恢復能力。dsh-context-guard 旨在通過修剪過大的工具結果來控制上下文增長,同時保留持久會話歷史以供針對性恢復。
是什麼¶
這是一個由 kpl0111 維護的 DSH 預設插件,專注於解決長智能體會話中的 Token 消耗問題。它通過策略管理工具結果的保留與修剪,不引入額外的 LLM 調用。
核心功能¶
插件通過以下機制控制 Token 消耗:
- 超限修剪與預覽:在下一次模型請求前,插件會將過大的普通工具結果替換爲 2.3K 字符的預覽(保留開頭 1792 字符和末尾 448 字符)。
- 會話歷史保留:原始工具輸出存儲在 DSH 的追加式會話歷史中,插件本身不會刪除原始數據,僅修剪預覽。
- 特定策略:搜索結果遵循正常修剪策略;回憶結果僅保留完整內容供緊接的下一步使用,之後再次進入修剪隊列。
安裝與啓用¶
使用官方命令安裝插件:
dsh plugin --profile web add github:kpl0111/dsh-context-guard#v0.2.0
若需要有界搜索和回憶恢復,需安裝配套包:
dsh plugin --profile web add github:KitDoesIt/dsh-compaction-instant
在使用修剪後的輸出時,需在 persona/system prompt 中添加提示,指導模型優先使用文件路徑或窄範圍搜索,僅在必要時使用回憶。
安裝或更新後,必須重啓 DSH 並創建新會話。
驗證¶
- 在新會話中運行產生大量輸出的工具(如 PowerShell)。
- 檢查會話事件日誌或上下文視圖,確認模型接收的是約 2.3K 字符的預覽而非完整結果。
- 使用搜索定位已知值,然後執行回憶以驗證完整內容。
兼容性與注意事項¶
- 版本要求:需要
@deepseek-ai/dsh-*0.1.0-rc.6 及以上兼容版本。 - 內置組件:與內置的
@deepseek-ai/dsh-compaction-tool-result-pruner配合工作。 - 閾值設置:
thresholdRatio: 0.001觸發閾值接近即時,但仍會檢查上下文窗口;若偏好延遲修剪可設爲0.20。 - 數據安全:插件不會刪除原始工具輸出(僅修剪預覽)。
- 互斥性:與
presets/standard-lite.fragment.yml互斥,不可同時啓用。
結尾¶
該插件通過策略級控制優化了 DSH 會話的 Token 利用率。更多細節請參考項目目錄或源碼。