C
ChaoBro

Codegraph:Claude Code にローカル知識グラフを構築、token とツール呼び出しを両方削減

Codegraph:Claude Code にローカル知識グラフを構築、token とツール呼び出しを両方削減

Claude Code 在大規模プロジェクトには長年の問題がある:ファイルツリーのスキャン、ファイル内容の読み取り、コード参照の検索を何度も繰り返す。会話ごとに token が水道水の如く流れていく。

Codegraph の思路は直接的——プロジェクト構造を事前に知識グラフとして構築し、ローカルに保存しておき、Claude は毎回読み直すのではなく直接クエリする。

コア思路

従来の Claude Code ワークフロー:

  1. 質問を受け取る
  2. ディレクトリ構造を読む
  3. ディレクトリに基づいてどのファイルを読むか決定
  4. 特定のシンボル参照を検索
  5. 繰り返し迭代

Codegraph はこれをこう変える:

  1. プロジェクト初期化時にインデックスを構築(一度だけ)
  2. Claude がグラフを直接クエリ、ファイル関係とシンボル参照を取得
  3. 繰り返しスキャンと検索をスキップ

最近のコミットが面白い:「refactor: Remove semantic search and vector embedding functionality」。著者はセマンティック検索とベクトル埋め込みを削除し、純粋な構造化知識グラフへ移行した。この選択は検討に値する。

セマンティック検索は聞こえはいいが、コードシナリオでは実際的ではない。コードの関係は決定的だ——関数 A が関数 B を呼び出す、クラス C がクラス D を継承する。これらの関係に「セマンティック類似度」で判断する必要はない——グラフを直接クエリすればいい。ベクトル検索を削除することで、複雑さとメンテナンスコストを削減し、token 消費も下げた。

実測データ

プロジェクトドキュメントの主な收益:

  • より少ない token:モデルにファイル内容を繰り返し送信する必要なし
  • より少ないツール呼び出し:グラフクエリで一度到位、多ラウンド検索不要
  • 100% ローカル:すべてのインデックスデータはローカルに保存、外部サービス不使用

256 回のコミット、18 時間前も更新あり。最近 Rust resolver の workspace crate resolution サポートを追加中、言語カバレッジの拡大を示す。現在サポートされている言語は一つ以上(CLAUDE.md に Svelte language support が言及されている)。

適用シナリオ

特に適す:

  • 大規模コードベース(数千ファイル以上)
  • Claude Code で頻繁にクロスファイル分析が必要なシナリオ
  • API 呼び出しコストに敏感なチーム

あまり必要ない:

  • 小規模プロジェクト(数十〜数百ファイル——Claude Code ネイティブのツール呼び出しで十分速い)
  • プロジェクト構造が極端に頻繁に変化するシナリオ(インデックス再構築が必要)

他方案との比較

Cline にも独自のコンテキスト管理メカニズムがあるが、それは汎用的で、コード構造に特化した最適化はない。Codegraph の差別化はここにある——一つのことだけやる:コード構造をグラフに変え、Agent のクエリを速くする。

この思路は正しいか?大方向は問題ないと思う。コード理解の核心は関係を理解すること、「セマンティクス」を理解することではない。知識グラフは関係の表現に天然的に適している——汎用テキストよりコードシナリオでの使用の方が合理的だ。

1300 以上の star、11 件の open issues、29 件の PR。プロジェクトは活発な開発期にあるが、安定リリース段階にはまだ至っていない。使いたいなら、まず小規模プロジェクトで試してみるのがいい。

主要ソース: