Ctxpact: ローカルLLM向けコンテキスト圧縮プロキシ

✍️ OpenClawRadar📅 公開日: April 13, 2026🔗 Source
Ctxpact: ローカルLLM向けコンテキスト圧縮プロキシ
Ad

Ctxpactは、軽量なOpenAI互換プロキシで、AIエージェントとローカルLLMの間に配置され、限られたコンテキストウィンドウを持つモデルに到達する前に、過大な入力をインテリジェントに圧縮します。OpenClawやHermesのようなエージェントワークフロー向けに設計されており、16kコンテキストウィンドウしかないモデルに100k以上のトークンペイロードを送信する場合、切り捨てでは重要な情報が失われる問題を解決します。

仕組み

このシステムは3段階の圧縮パイプラインを使用します:

  • DCP(動的コンテキスト剪定):ツール呼び出しの重複を排除し、置き換えられたファイル書き込みを削除し、エラースタックトレースを切り詰めます。LLM呼び出しは不要で、純粋に構造的な処理です。
  • 要約:古い会話ターンを削除し、LLM生成の要約で置き換えます。最近のターンのスライディングウィンドウはそのまま保持します。
  • 抽出:入力が依然として大きすぎる場合(110kの小説など)、16の抽出戦略のいずれかを使用して、トークン予算内で最も関連性の高いコンテンツを抽出します。

抽出戦略

抽出段階では、以下のような16の戦略を実装しています:

  • LLM呼び出し0回:埋め込み類似性(ChromaDB)、セクションヘッダー、ヒューリスティックなキーワードgrep、LLMLingua圧縮
  • LLM呼び出し1回:LLMが検索語を生成し、IDF加重単語レベルマッチングでコンテキストを組み立てる
  • LLM呼び出し2回(最高精度):readagent — 埋め込み + BM25 + RRF融合、デュアルLLM用語拡張、位置認識抜粋
  • LLM呼び出しN回:マルチターンツール呼び出しループ、DSPyコード生成、マップリデュースチャンキング

ベンチマーク結果

合計331のGGUFモデルに対して、2モデル(LFM2-8B-A1BとQwen3.5-9B)で12戦略をテスト:

  • Frankensteinテスト:110kトークンが12kトークンに圧縮、読解問題8問;8/8正解、3回連続実行で決定論的、0%分散
  • LoCoMo-MC10:マルチセッション会話QA、10選択肢、ランダムベースラインは10%;readagent + Qwen3.5-9Bは15/20(75%)スコア
  • 総合性能:readagent + Qwen3.5-9Bは87.5%、rlm + Qwen3.5-9Bは80.0%を達成
Ad

主な発見

  • 戦略選択よりモデル選択が重要:LFM2からQwen3.5に切り替えると、すべての戦略で+25-50パーセントポイント向上。中央値の戦略は、モデル変更だけで5/8から7/8に改善。
  • NR-MMLUがコンテキストエンジニアリング性能を予測:LFM2の47% NR-MMLU対Qwen3.5の65%が、精度の差に直接対応。
  • LLM抽出呼び出し2回が最適点:0から1回への増加は有意な向上をもたらし、1から2回でピーク精度に到達。2回を超えると精度が低下。
  • readagentとrlmは画期的な戦略:両方ともFrankensteinで8/8を達成。Q4(アイルランド問題)を解決する唯一の戦略。readagentはクロスドメインで75% LoCoMo、rlmは60%でリード。

技術詳細

  • アーキテクチャ:スタンドアロンプロキシ(LiteLLMプラグインやサイドカープロセスも検討)を採用。画期的な戦略にはパイプライン中間でのLLM呼び出しが必要なため。
  • 実装:約11k行のPython、FastAPIサーバー、3エンドポイント、OpenAI互換、重いフレームワーク不使用
  • 互換性:任意のllama-server / Ollama / vLLMバックエンドの前に配置可能。APIキー不要、クラウド不要、すべてユーザーのハードウェアで実行

コンテキストウィンドウを超えるエージェントワークフローでローカルLLMを実行する開発者にとって、Ctxpactは情報の完全性を維持しつつ、ハードウェア制約内に収まる実用的なソリューションを提供します。

📖 Read the full source: r/LocalLLaMA

Ad

👀 See Also