redcon について
redconは、コーディングエージェント向けにリポジトリのコンテキストを選別・圧縮し、トークン予算内にまとめるローカル優先のMCPサーバー兼コマンドラインツールです。埋め込み表現を使わない決定的な処理に加え、コマンド出力も圧縮できます。
主な機能
- 01タスクに基づく決定的なファイル順位付け
- 02言語に応じたコード圧縮
- 03トークン予算内のコンテキスト作成
- 04コマンド出力の圧縮
- 05複数リポジトリのワークスペース
- 06CI向け品質チェックとレポート
活用シーン
- 01コーディングタスクに関連するファイルの選定
- 02エージェントのトークン予算に合わせたコンテキスト作成
- 03テストやコマンド出力のエージェント向け圧縮
- 04CIでのコンテキスト変化と品質の追跡
MCP 対応
ランキング、検索、圧縮、予算計画、圧縮したコマンド実行など、リポジトリ調査とコンテキスト管理のツールをMCPクライアントに公開します。エージェントは一括のコンテキストを受け取るのではなく、必要に応じてツールを呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| repo | string | いいえ | リポジトリのパス(デフォルト:現在のディレクトリ) |
| task | string | はい | 作業内容の説明 |
| top_k | integer | いいえ | 返す上位ファイル数 |
詳細
Redcon
AI コーディングエージェントのための決定論的なコンテキスト予算管理
不要なコードに 200k トークンを費やしてエージェントに送るのはやめましょう。Redcon はリポジトリのコンテキストをスコアリング、圧縮、パッキングし、エージェントが本当に必要とする情報を提供します。
問題
AI コーディングエージェントは、関係のないコンテキストにトークンを浪費します。方法はどちらかです。
- リポジトリ全体を渡し、リクエストごとに 200k の入力トークン分を支払う
- エージェントに手当たり次第 grep させ、調べる場所を見つけるためにツール呼び出しを無駄にする
Redcon はその両方を解決します。タスクとの関連性に基づいてファイルをランク付けし、言語を考慮した方法(全体、スニペット、シンボル抽出、要約)で圧縮して、指定したトークン予算内に結果を収めます。決定論的で、ローカルファースト、埋め込みなしです。1 つの MCP サーバーで Claude Code、Cursor、Windsurf、Cline、Zed に対応し、通常の CLI で CI にも対応します。このリポジトリでの測定では、タスクの網羅率を維持したまま入力トークンを 83% 超削減しています(測定方法)。
契約プラン以上の成果を
Claude Pro/Max、Cursor、GitHub Copilot のような定額制では、痛手となるのはトークン料金ではなく、使用量の上限です。Redcon は各タスクで必要なトークンを減らすため、週ごとの上限に達する前に、同じプランでもっと多くの作業をこなせます。同じサブスクリプションで、より長く使えます。
すでに支払っている予算を最大限に活用し、どれだけ節約できたかを正確にレポートします。
インストール
オプション 1:VS Code 拡張機能(最も簡単)
- マーケットプレイスから Redcon - Context Budget をインストールします
- Redcon のサイドバーを開き、Install & Set Up をクリックします
- ウィンドウを再読み込みします。これで完了です。
この拡張機能は pip 経由で CLI をインストールし、Claude Code、Cursor、Windsurf 用の MCP サーバーを登録します。また、予算分析、ファイルランキング、圧縮ダッシュボードを備えたサイドバーも利用できます。
オプション 2:CLI + MCP サーバー
pip install "redcon[mcp]"
redcon init # creates redcon.toml + registers MCP
init コマンドは、Claude Code、Cursor、Windsurf に加え、検出された場合は VS Code、Codex CLI、Gemini CLI、Junie CLI、Cline、Zed 用の MCP を自動設定します。これにより、AI エージェントは redcon_rank、redcon_search、redcon_compress、redcon_budget をネイティブツールとして呼び出せます。また、エージェントにコンテキストの選定でこれらのツールを優先するよう伝える、短い AGENTS.md セクションも書き込みます。
オプション 3:CLI のみ
pip install redcon
redcon init --no-mcp
クイックスタート
# Rank files relevant to a task
redcon plan "add rate limiting to auth API" --repo .
# Pack context under a token budget
redcon pack "refactor payment flow" --repo . --max-tokens 30000
# Compare compression strategies
redcon benchmark "add caching" --repo .
# Audit a PR for context growth
redcon pr-audit --repo . --base origin/main --head HEAD
出力は run.json(機械可読)と run.md(人間が読みやすい形式)に保存されます。CI で使用するか、圧縮したコンテキストをエージェントに直接渡してください。
現実的なサービスリポジトリでの、プランニング、パッキング、検証を含む決定論的な出力のエンドツーエンドの手順については、examples/service-repo をご覧ください。
仕組み
task: "add rate limiting to auth"
|
v
[1] scan - incremental scan of repo files (cached)
|
v
[2] rank - score each file: keyword match, imports, file role, git history
|
v
[3] compress - per-file strategy: full / snippet / symbol extraction / summary
|
v
[4] pack - fit top-N compressed files under token budget, drop the rest
|
v
run.json + run.md + compressed_context ready for your agent
すべての手順は決定論的です。同じ入力なら、同じ出力になります。埋め込みもランダムなチャンク分割もありません。
ベンチマーク:context-eval
選択品質は主張ではなく、測定によって評価されます。context-eval/
はコンテキスト選択ツール向けのオープンベンチマークです。タスクには実際の git
コミットが使われ、正解データは各コミットで実際に変更されたファイルであり、すべての
ツールが同じトークン予算内で処理します。現在の結果(33 タスク、予算 24k):
| ツール | 平均カバレッジ | カバレッジ 1 ポイントあたりのトークン数 |
|---|---|---|
redcon | 43.8% | 306.8 |
keyword-topk(ベースライン) | 29.8% | 538.9 |
aider-repomap(実際の aider) | 15.3% | 533.3 |
pagerank(ベースライン) | 11.4% | 720.0 |
任意のリポジトリで再実行できます:python context-eval/run.py --repo /path/to/repo。
手法、制限事項、独自のツールの追加方法については、
context-eval/README.md をご覧ください。
MCP 統合(プルモデル)
mcp-name: io.github.natiixnt/redcon
エージェントに 30k トークンのデータを一括で渡す代わりに、Redcon はエージェントが必要に応じて呼び出す 9 つの MCP ツールを提供します。
| ツール | 機能 |
|---|---|
redcon_rank | スコアと理由付きで上位 K 件のファイルを表示します。最初に呼び出してください |
redcon_overview | ディレクトリ別にまとめた軽量なリポジトリマップ |
redcon_repo_map | ランク上位のファイルとコードシグネチャを、トークン予算内に収めて表示します |
redcon_compress | 低コストで確認できる、単一ファイルの圧縮ビュー |
redcon_search | ランク上位のファイルまたはリポジトリ全体を対象にした正規表現検索 |
redcon_structural_search | ast-grep による構造検索。パターンはテキストではなく AST に一致します |
redcon_budget | トークン予算内に収まるファイルを計画します |
redcon_run | シェルコマンドを実行し、出力を圧縮して返します |
redcon_quality_check | コマンドを実行し、圧縮された出力を品質ハーネスで検証します |
一般的なエージェントのフローでは、データを一括で渡す場合の 30k トークンに代わり、探索に約 5k トークンを使います。何を全文読むかは、エージェント自身が判断します。
設定は次の場所に自動的に書き込まれます:
.mcp.json(Claude Code).cursor/mcp.json(Cursor)~/.codeium/windsurf/mcp_config.json(Windsurf)
コマンド出力の圧縮
肥大化の原因はソースファイルだけではありません。もう半分はコマンド出力です:git diff、pytest、cargo test、grep、ls -R。Redcon の redcon_run MCP ツール(および redcon run CLI)は呼び出しをラップし、出力を解析して、エージェントが実際に必要とする事実をすべて保持しながら、予算を考慮して圧縮したビューを返します。
代表的な入力での主な削減率:
| コンプレッサー | フィクスチャ | 生トークン数 | コンパクト | ウルトラ |
|---|---|---|---|---|
git diff | 12 ファイル、240 ハンク | 8,078 | 97.0% | 99.5% |
pytest | 30 件の失敗 + 200 件の成功 | 2,555 | 73.8% | 99.2% |
grep/rg | 50 ファイルにわたる 600 件の一致 | 7,015 | 76.9% | 99.9% |
find | 500 パス | 3,398 | 81.3% | 99.8% |
ls -R | 30 ディレクトリ x 15 ファイル | 1,543 | 33.5% | 99.0% |
kubectl events | 200 行の CrashLoopBackOff | ~5,000 | 91.5% | 99.5% |
py-spy collapsed | 200 スタック | 2,385 | 90.0% | 99.0% |
json-line log | 200 件の NDJSON レコード | 6,038 | 91.1% | 98.0% |
coverage report | 50 ファイルのグリッド | 738 | 73.2% | 95.0% |
psql EXPLAIN ANALYZE | 11 ノードの Postgres プラン | 435 | 71.3% | 93.3% |
品質は個別に担保されます。各コンプレッサーは must_preserve_patterns を宣言します(diff 内のファイルパス、pytest 内の失敗したテスト名、git status 内のブランチ名、EXPLAIN 内の最も遅いノード演算子など)。M8 品質ハーネスは、コンパクト出力から生の入力に含まれる事実を削除するコンプレッサーをすべて拒否します。CI ステップとして次のように実行します:
redcon cmd-quality # exits non-zero if any compressor regressed
redcon cmd-bench # markdown table; --json for CI baselines
redcon run "git diff" --quality-floor compact --max-output-tokens 4000
現在、20 種類のコンプレッサーが含まれています:git_diff、git_status、git_log、pytest、cargo_test、npm_test(vitest+jest)、go_test、grep、ls、tree、find、lint(ruff+mypy)、docker、pkg_install(pip+npm+yarn)、kubectl_get/kubectl_events、profiler(py-spy+perf)、json_log、coverage、sql_explain(Postgres+MySQL TREE)、bundle_stats(webpack + esbuild metafiles)。スキーマ別ベンチマークの全一覧: docs/benchmarks/cmd/。
呼び出し間の次元
呼び出しごとの圧縮に加えて、エージェントのセッション全体で4つのレイヤーが連携します。
- パスエイリアス(V41):
redcon/cmd/pipeline.pyのような繰り返し出現するパスは、2回目以降の言及でf001に置き換えられます。初回使用時に遅延適用され、適用によってサイズが増えることはありません。 - コンテンツ参照台帳(V43):6 cl100k トークンを超える段落形式のブロックには、2回目以降の出現時にセッション内で安定した
{ref:001}エイリアスが割り当てられます。実測では、セッション出力の23%にブロックレベルの重複がありました。 - シンボルエイリアス(V49):CamelCase の型や複数語からなる snake_case 識別子(8文字以上)は、パスと同じ方法で
c001エイリアスに置き換えられます。実測では、異なるシンボルの72%が1セッション内で2回以上再出現します。 - 前回の呼び出しとの差分スナップショット(V47):同じ argv が2回実行された場合、差分のみを送信します。
pytest(失敗名の集合差分)、git_diff(ファイル集合とファイルごとの +/- 件数)、coverage(ファイルごとの pp の増減)向けのスキーマ認識型レンダラーは、汎用の行差分よりも大幅に効果的です。常にmin(cost_delta, cost_abs)を選ぶため、設計上、圧縮によってコストが増えることはありません。 - 不変条件証明書(V93):すべての COMPACT/VERBOSE 出力には、raw から抽出した
(pattern, capture)のソート済み多重集合に対するmp_sha=<16hex>が付与されます。監査担当者は、圧縮テキストに対して証明書を再計算し、根拠のない追加やキャプチャの欠落を検出できます。既存の保持必須ブール値を集合の等価性へと強化します。
5つのエージェントセッションをシミュレーションした実測(benchmarks/measure_sessions.py)では、呼び出し間の各レイヤーによって、呼び出しごとの圧縮に加え、セッション全体で**+8.3%の削減が得られました。重複の多いセッション(デバッグ、検索と編集)では+15%**、コンテンツが異なるセッションではほぼゼロです。V85 の敵対的 GA ファザーは、20個すべてのスキーマに対してラチェットを適用し、CI の必須ゲートとします(REDCON_V85_ENFORCE=1)。
VS Code 拡張機能
インストールすると、次の機能を利用できます。
- サイドバーチャット:タスクを入力して送信し、パックの実行状況をリアルタイムで確認できます
- ダッシュボード:予算、戦略、ファイルごとのトークンへの影響をドーナツチャート/円グラフ/棒グラフで表示します
- ステータスバー:リスクインジケーター付きで現在の予算使用量を表示します
- CodeLens:各ファイルの上に圧縮戦略とトークン数を表示します
- ファイル装飾:エクスプローラー内のファイルに関連性スコアのバッジを表示します
- 履歴:過去の実行を確認し、差分を比較してクリップボードにエクスポートできます
ブランディング:赤からネイビーへのグラデーション、トリプルシェブロンのマーク、ガラス風の UI。
ワークスペース(複数リポジトリ)
1つのタスクを複数のリポジトリにまたがって実行できます。すべてのリポジトリを含むフォルダー(モノレポのルートや共通の親ディレクトリ)にワークスペース TOML を配置します。リポジトリのパスはそのフォルダー内に解決される必要があるため、ワークスペースファイルから自身より上の階層にはアクセスできません。
name = "backend-services"
[scan]
include_globs = ["**/*.py", "**/*.ts"]
[budget]
max_tokens = 28000
top_files = 24
[[repos]]
label = "auth-service"
path = "auth-service"
[[repos]]
label = "billing-service"
path = "billing-service"
ignore_globs = ["tests/fixtures/**"]
生成物には workspace、scanned_repos、selected_repos、および auth-service:src/auth.py のようなリポジトリ名付きパスが含まれます。
docs/workspace.mdを参照してください。
Python API
from redcon import RedconEngine
engine = RedconEngine()
# Rank files
plan = engine.plan(task="add user auth", repo=".", top_files=15)
# Pack context
result = engine.pack(
task="add user auth",
repo=".",
max_tokens=30000,
top_files=25,
)
print(f"Used {result['budget']['estimated_input_tokens']} of {result['max_tokens']} tokens")
print(f"Risk: {result['budget']['quality_risk_estimate']}")
for file in result["compressed_context"]:
print(f"{file['path']}: {file['strategy']} ({file['compressed_tokens']} tokens)")
詳細なリファレンス:docs/python-api.md。
特長
- 決定論的なスコアリング:キーワードの一致、インポートグラフ、ファイルの役割(テスト/ドキュメント/本番)、Git の履歴
- 言語を考慮した圧縮:Python、TypeScript、JavaScript、Go、Rust、Java などに対応
- コマンド出力の圧縮:git、テストランナー、grep/rg、一覧表示、lint、docker、パッケージインストール、kubectl、プロファイラー、JSON ログ、カバレッジ、SQL EXPLAIN、バンドル統計を対象とする 20 種類の圧縮機能。compact レベルで 70〜99%削減
- 増分スキャン:Git を考慮した変更検出機能を備えたファイルメタデータのキャッシュ
- マルチリポジトリのワークスペース:単一のタスク、複数のリポジトリ、共有設定
- 予算ポリシー:CI で最大トークン数、品質リスクレベル、ファイル数を適用
- 品質ハーネス:各圧縮機能の保持必須箇所を正規表現で検証。決定論的で、切り捨てられた入力やバイナリ入力にも堅牢
- ストリーミングランナー:メモリ使用量を制限したチャンク単位の Popen リーダー。出力上限に達すると早期に SIGTERM/SIGKILL を送信
- 実行履歴:ファイルパックとコマンド実行の両方に対応した SQLite ベースのアーティファクトストア。差分/ヒートマップ/ドリフト分析
- コスト分析:GPT-4o、Claude などのモデルのトークンコストを推定
- PR 監査:プルリクエスト内のコンテキスト増加を検出
- プラグインシステム:カスタムスコアラー、圧縮機能、トークン推定器、要約機能
- キャッシュバックエンド:インメモリ、ローカルファイル、Redis
- Doctor コマンド:環境、Python のバージョン、ディスク容量、Git の利用可否を診断
ドキュメント
- はじめに - 60 秒で最初のパックを作成
- CLI リファレンス - すべてのコマンドとフラグ
- MCP とフック - エージェント連携、ツール一覧、決定論的なコンテキスト注入
- 設定 - redcon.toml のフィールド
- ワークスペース - マルチリポジトリの設定
- Python API - プログラムからの使用方法
- エージェント連携 - ミドルウェアレイヤー
- プラグイン - カスタム拡張機能
- アーキテクチャ - 全体の仕組み
- 移行に関する注意事項 - バージョン間のアップグレード
ライセンス
このリポジトリ内のすべてのものは、 Functional Source License, FSL-1.1-MIT に基づいてライセンスされています。競合する商用製品またはサービスの構築を除き、あらゆる目的で自由に使用できます。各リリースは公開から 2 年後に自動的に MIT ライセンスになります。
ホスト型の Redcon Cloud コントロールプレーン(組織、クォータ、使用量計測、請求、チームダッシュボード)は、別個の商用ソフトウェアであり、非公開リポジトリで保守されています。
商用ライセンスに関するお問い合わせ:[email protected]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。