PR を適切なコンテキストでレビューするため、Kodus はリポジトリ全体を AST グラフ(ノード + エッジ)にパースし、cross-file コンテキスト 取得、提案の検証、エージェントへの入力に使用します。パーサーは サンドボックス内で実行され、Documentation Index
Fetch the complete documentation index at: https://docs.kodus.io/llms.txt
Use this file to discover all available pages before exploring further.
git clone、依存関係のインストール、
CLI の実行を API プロセスから分離して行います。
このページでは、選択できるサンドボックスモード、AST グラフとは何か、
そしてキャッシュが PR レベルのレビューを高速に保つ仕組みを説明します。
AST グラフの仕組み
Kodus は@kodus/kodus-graph
を使用します。これはリポジトリを走査して JSON グラフ(関数、クラス、
ファイル、import、call)を出力する CLI です。CLI は worker イメージ
(kodus-ai-worker)にプリインストールされているため、local モード
では追加のセットアップは不要です。
ライフサイクル:
- リポジトリを選択したとき(セットアップ時、または後で UI で
リポジトリを追加するとき) — Kodus は
AstGraphBuildジョブを キューに入れ、デフォルトブランチに対してkodus-graph parse --allを実行し、結果を Postgres(ast_graph_*テーブル)に永続化し、 リポジトリをインデックス済みとマークします。これはバックグラウンド で実行されるため、PR を開く前に完了を待つ必要はありません。 - PR がデフォルトブランチにマージされたとき — webhook ハンドラー が増分リビルドをキューに入れ、変更されたファイルのみを再パース して差分をキャッシュされたグラフにマージします。フルリビルドなし でキャッシュが新鮮に保たれます。
- すべての PR レビュー時 — Kodus はキャッシュされたグラフを ロードし、PR で触れられたファイルのみをパースし、エージェントに 絞ったサブグラフを入力します。これがホットパスで、リポジトリ全体 を再パースすることはありません。
サンドボックスモード
サンドボックスは.env の SANDBOX_PROVIDER で選択します:
| モード | 動作 | トレードオフ |
|---|---|---|
local (インストーラーのデフォルト) | kodus-graph を worker コンテナ内で実行。Bun と CLI がプリインストール済み。 | 外部依存なし。大規模リポジトリでは worker のメモリが必要。 |
e2b | ジョブごとにリモートの E2B サンドボックスを起動。API_E2B_KEY が必要。 | 強力な分離、巨大リポジトリにスケール。有料の第三者サービス。 |
auto | API_E2B_KEY が設定されている場合は e2b を使用、それ以外はサンドボックスなしにフォールバック。 | 段階的なロールアウト(例: none から e2b への移行)に便利。 |
none | サンドボックスなし。AST グラフと cross-file コンテキストを無効化。 | レビューはあまり豊かではなくなります(call-graph コンテキストなし、cross-file 解析なし)。 |
モードの選び方
- 始めたばかりで「とにかく動かしたい」 →
local。インストーラーの デフォルトで、外部アカウントは不要です。 - リポジトリが巨大(数百万 LOC)または厳格な分離が必要
→
e2b。e2b.dev でサインアップし、API_E2B_KEYを設定し、SANDBOX_PROVIDER=e2bに切り替えます。 - 明示的にサンドボックスを実行したくない →
none。レビュー エージェントは cross-file コンテキストなしで実行され、提案は機能 しますが情報が少なくなります。
既存のセルフホストインストールの移行
AST グラフ以前のバージョンからアップグレードした場合、すでに選択 されているリポジトリにはまだグラフがありません — ビルドは新しい リポジトリ選択時にのみ自動的にトリガーされます。それらをインデックス するには、インストーラーに同梱されている backfill スクリプトを実行 します:astGraphStatus が
NULL、PENDING、または FAILED である選択されたリポジトリごとに
AstGraphBuild ジョブをキューに入れます。ビルドはバックグラウンドで
実行されるため、完了を待たずに Kodus を使い続けられます。
このスクリプトは冪等です: 再実行すると READY のリポジトリは
スキップされ、BUILDING のジョブは再キューイングされず、自由に停止
および再開できます。
よく使うフラグ:
設定
.env に貼り付けてスタックを再起動してください。
どこで何が動くか
リソースのサイジング
local サンドボックスは worker コンテナ内で git clone と
kodus-graph parse を実行するため、worker の RAM 余裕が重要です:
- 小〜中規模リポジトリ(< 100k LOC) — デフォルトの 8GB ホストで十分。
- 大規模リポジトリ(100k〜1M LOC) — worker コンテナに通常使用に 加えて 4〜8GB の RAM を割り当て、ホスト合計で 16GB の RAM を検討。
- 巨大モノレポ(> 1M LOC) — パースをホスト外で行うため
e2bに 切り替えます。
トラブルシューティング
レビューに cross-file コンテキストが含まれない(local モード):
worker のログで kodus-graph のインストールまたはパースのエラーを
確認します:
e2b ジョブがハングするか起動しない:
API_E2B_KEY が設定されており有効であることを確認します:
SANDBOX_PROVIDER=none を設定して worker を再起動します。レビューは
グラフステージをスキップし、LLM の素の差分ビューで実行されます。