AIコーディングエージェントのコンテキストウィンドウは, 思いのほか速く枯渇する.cargo test の全テストパス出力が約4,800トークン, git push が15行の冗長なオブジェクト列挙, npm test が6,000トークンのノイズ——エージェントが必要としているのは「262件パス, 0件失敗」という情報だけだ.この問題に対し, 3つのツールが全く異なるレイヤーから切り込んでいる.
rtk[Rust Token Killer]
概要
rtkはRustで書かれたシングルバイナリのCLIプロキシで, Claude Codeとシェルコマンドの間に座り, ツール出力をコンテキストウィンドウに届く前にインターセプトしてノイズを除去する.ワークフローの変更は不要で, Claude Codeはそこにrtkがいることさえ知らない.
圧縮の仕組み
rtkは4つの戦略を組み合わせてCLI出力を削減する.ノイズ除去[コンフィグファイルのコメント, 空行, 装飾的なセパレータ等], 類似アイテムの集約[47個の .tsx ファイルを components/[47 .tsx files]と1行にまとめる], 重複行の排除, そして関係のない部分の切り捨てがその内容だ.これらはすべてルールベースで実行され, SLMやLLMは一切使わない.
インストール後は rtk init --global の一発で Claude Code の PreToolUse フックに登録され, エージェントが git status を実行すると裏で自動的に rtk git status に書き換わる.エージェント側の変更は一切不要.
実測値と注意点
CLIコマンド出力の大半はLLMにとってノイズであり, それを届く前にフィルタリングすることで膨大なトークンを削減でき, コンテキスト上限やレートキャップを伸ばせる. AI実測では2,900コマンドにわたって平均89%のトークン削減が報告されている.
一方で, issue #582として「rtkのフックがコストを18%増加させる」という報告がある.圧縮された出力に対しClaudeが情報の欠落を補おうとして出力トークンを増やす場合があり, 入力の節約を上回るケースが存在する.採用前に自環境でのモニタリングが推奨される.
OpenWolf
概要
OpenWolfのコンセプトは「Claude Codeへのセカンドブレイン」だ.Claude Codeはファイルの中身を開くまで知ることができず, 50トークンのコンフィグと2,000トークンのモジュールを区別できない.同じファイルを1セッション内で3回読んでも気づかない.OpenWolfはプロジェクトインデックス・学習メモリ・トークンを意識したリード層を提供することで, すべてのセッションを初回から鋭くする.
仕組み
rtkやContext Gatewayとの最大の差異は, 情報を削除するのではなくリード自体を回避するという設計だ.openwolf init を実行すると .wolf/ ディレクトリが作成され, 6つのNode.jsフックがClaude Codeのライフサイクルに登録される.
- anatomy.md:全ファイルのトークン推定値と説明を持つインデックス.Claude Codeはファイルを開く前にこれを参照し, 説明で十分なら全体読み込みをスキップする.
- cerebrum.md:過去のセッションで学習した規約・やってはいけないことのリスト.セッションをまたいで蓄積される.
- buglog.json:バグの遭遇と解決の記録.同じバグの再発見を防ぐ.
6つのフックはすべて純粋なNode.jsファイルI/Oで動作し, ネットワークリクエストも外部APIコールも追加コストも発生しない.OpenWolfは完全にローカルマシン上で動く.
Context Gateway[Compresr AI]
概要
Context Gatewayは, AIエージェント[Claude Code, Cursor等]とLLM APIの間に座るプロキシで, 会話が長くなりすぎると会話履歴をバックグラウンドで圧縮するため, コンパクションを待たされることがない.Compresr AIはYCombinator W26のバックアップを受けたスタートアップで, EPFLのLLMコンテキスト圧縮研究から生まれた.
圧縮の仕組み
rtkとの本質的な違いは, ルールベースではなくSLM[小規模言語モデル]による意味理解を使う点にある.ツールが出力を返すとき, ツール呼び出しの意図を条件に圧縮を行う——エージェントがエラーハンドリングパターンを探して grep を呼んだなら, SLMは関連するマッチを残し残りを除去する.モデルが後で除去した内容を必要とした場合は, expand( ) を呼んで元の出力を取得できる.
また, コンテキストウィンドウが85%に達すると, プロキシはバックグラウンドサマリーを起動し, セッションをブロックしない.これはClaude Codeネイティブの /compact コマンドが約3分間セッションをブロックする点と比較した直接的な優位性だ.
さらに, lazy tool loadingによりエージェントが現在のステップに関連するツールの説明のみを受け取る設計も特徴的.
現実的な圧縮率と注意点
「200x圧縮」という数字は, 最もアグレッシブな圧縮モードを高度に特化したRAGワークロードに適用した場合のもので, 日常のコーディングエージェント使用では得られない.デフォルトのプロキシ圧縮比は0.5固定, つまり1コール当たり50%のトークン削減だ. また, 圧縮はlossyであり, 複雑なエージェントチェーンでは「何が欠けているか」をモデルが自覚できない場合があるという限界も存在する.
コスト面では, Compresr APIへの依存があるため, 純粋なOSSツールとして無料で使い続けることは難しく, 実用的な圧縮率を得るには課金が前提になる点も考慮が必要.
まとめ
CLIコマンドが多いセッション[テスト・git・kubectl多用]でまず始めたいなら rtk. インストールが最も簡単で, Rustバイナリ1つ, 依存ゼロ, MITライセンスで導入リスクが最も低い.rtk gain でどれだけ節約できているかがすぐに見える点も開発者フレンドリーだ.ただし過圧縮による品質低下の可能性は自環境でモニタリングすること.
Claude Codeを継続的に同一プロジェクトで使い込むなら OpenWolf. 規約・バグ・ファイル構造の知識がセッションをまたいで蓄積されるため, 「また同じことを教えなければならない」という摩擦が減る.ネットワーク通信が一切ない完全ローカル動作も安心材料だ.AGPL-3.0であることは商用サービス組み込み時は確認が必要.
コーディング以外のエージェントワークフローやRAGパイプラインにも適用したいなら Context Gateway. SLMによる意味的な圧縮はルールベースでは対応できない多様なツール出力に対応できる点が強みだ.ただし圧縮エンジンはCompresr API依存で実質有償になること, および圧縮のlossiness[情報欠落]は設計上の限界として把握しておく必要がある.
| 項目 | rtk[Rust Token Killer] | OpenWolf | Context Gateway[Compresr AI] |
|---|---|---|---|
| カテゴリ | CLIプロキシ シェル出力をLLMに届く前に圧縮 | プロジェクト記憶層 Claude Code向けフック+ローカルインデックス | LLM APIプロキシ SLMによるコンテキスト圧縮[YC W26] |
| 最適化の対象 | CLIコマンドの出力トークン git, test, ls, grep 等の戻り値 | ファイル読み込みの無駄 重複リード・ブラインドリードを防止 | 会話履歴+ツール出力 コンテキスト全体をSLMで意味圧縮 |
| 圧縮のメカニズム | ルールベース:フィルタ・グルーピング・重複排除・切り捨て。LLM不使用 | ルールベース:ファイルインデックス参照でリード自体をスキップ。LLM不使用 | SLMでツール呼び出し意図を把握し不要部分を削除 |
| 圧縮率[公称] | 60〜90%[コマンド種別による] avg 89%[実測2,900コマンド] | 〜80%[トークン削減] | 50%[デフォルト]〜200x RAGワークロードで最大200x |
| 精度ロスのリスク | 低〜中:情報欠落で出力増加の報告あり | 低:リード回避のみで情報削除なし | 中:lossy圧縮、expandで復元可能 |
| 対象エージェント | Claude Code、Cursor、Gemini CLI、Aider等 | Claude Code専用 | Claude Code、Codex、OpenAI互換等 |
| インストール | Rustバイナリ1つ、brew/cargo | npm install -g openwolf | curl | sh[TUIウィザード] |
| 実装言語 | Rust | Node.js | Go+API |
| 付加機能 | トークン削減可視化 | インデックス・学習規約等 | 支出管理・通知等 |
| ライセンス | MIT | AGPL-3.0 | OSS+有償API |
| 向いているケース | CLI多用環境でコスト削減 | 長期プロジェクト記憶 | RAGや長文圧縮 |
2026-03-23.
