Opencode-DCP/opencode-dynamic-context-pruning

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

何を解決するか

OpenCodeセッションにおける古くなったコンテキストによるトークン消費の削減と幻覚の防止を実現します。会話履歴を管理することで、LLMがコンテキストウィンドウを超えることや、重複する情報にトークンを無駄に使わないようにします。

動作方法

DCPは元のセッション履歴を変更せずにコンテキストを管理します。代わりに、削除されたコンテンツをプレースホルダーに置き換えた上でLLMにリクエストを送信します。主に以下の3つのメカニズムを使用します:

  • 圧縮:モデルが古くなったまたは閉じられた会話の範囲(範囲モード)または個々のメッセージ(メッセージモード)を高忠実度の技術的要約に置き換えるツール。複数の圧縮レイヤーにわたって情報を保持できるネスト可能な要約が可能。
  • 重複削除:同じ引数を持つ繰り返しのツール呼び出しを識別し、最新の出力のみを保持して削除。
  • エラーの削除:設定可能なターン数後に、エラーが発生したツール呼び出しの入力内容を削除しつつ、エラーメッセージ自体は保持。

対象ユーザー

長時間のコーディングセッションを実施し、トークン消費を最適化し、モデルのパフォーマンスを維持したいOpenCodeユーザー。

特徴

  • モデル駆動の圧縮:タスクの完了に基づいてモデルがいつ圧縮するかを決定し、静的トリガーに依存しない。
  • 柔軟なモード:連続した範囲の圧縮と、個々のメッセージに対する精密な圧縮の両方をサポート。
  • 設定可能な保護:特定のツール出力、ファイルパターン、またはユーザーのメッセージを削除から保護できる。
  • カスタマイズ可能なプロンプト:システム動作や圧縮の促しを編集可能なプロンプトオーバーライドを提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch