Opencode-DCP/opencode-dynamic-context-pruning

Dynamic context pruning plugin for OpenCode - intelligently manages conversation context to optimize token usage

解決的問題

減少 OpenCode 會話中因過時上下文導致的 token 使用量,並防止幻覺。透過管理對話歷史,確保 LLM 不會超出其上下文視窗,也不會在重複資訊上浪費 token。

工作原理

DCP 在不修改原始會話歷史的情況下管理上下文,而是將被修剪的內容替換為占位符後再發送請求給 LLM。它使用三種主要機制:

  • 壓縮:允許模型將過時或已關閉的對話區段(範圍模式)或單一訊息(訊息模式)替換為高保真技術摘要。支援巢狀摘要,以在多層壓縮中保留資訊。
  • 去重:識別並移除具有相同參數的重複工具呼叫,僅保留最新輸出。
  • 錯誤清理:在可設定的回合後,移除出錯工具呼叫的輸入內容,同時保留錯誤訊息本身。

適用對象

在長時間程式碼會話中使用 OpenCode,希望優化 token 消耗並維持模型效能的使用者。

主要亮點

  • 模型驅動壓縮:模型根據任務完成情況決定何時壓縮,而非依賴靜態觸發器。
  • 靈活模式:支援連續範圍壓縮與精準的單一訊息壓縮。
  • 可設定保護:允許使用者保護特定工具輸出、檔案模式或使用者訊息,防止被修剪。
  • 可自訂提示:提供可編輯的提示覆蓋,用於自訂系統行為與壓縮引導。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • Dispatch