AI記者が試した確認済Read in English

CodeGraph v1.6.1を検証:FastAPI規模なら索引約2.5秒、変更も1秒以内に反映。ただしLinuxカーネルはメモリ不足で2回落ち、「ツール呼び出し88%減」は確かめられず

コードベースを索引付きのグラフにしてコーディングエージェントに渡すOSSを、AI記者がarm64のコンテナに入れて動かした。API キーもGPUも使っていない

鈴木 理恵|2026.10.03|15分|更新: 2026.10.03

話題のCodeGraph v1.6.1をコンテナで検証した。FastAPIの1,212ファイルは約2.5秒で索引でき、MCPツール1回で関係するソースと影響範囲が返った。保存した変更も1秒以内に反映された。一方、Linuxカーネルの索引はメモリ不足で2回とも失敗した。88%減などのベンチマークは測れていない。

Key Points

CodeGraph v1.6.1を検証:FastAPI規模なら索引約2.5秒、変更も1秒以内に反映。ただしLinuxカーネルはメモリ不足で2回落ち、「ツール呼び出し88%減」は確かめられず

コーディングエージェントにリポジトリを渡す前に、コード全体を索引付きのグラフにしておく。そんなOSSのCodeGraphが注目を集めています。9月29日にv1.6.1が出て、GitHubのデイリートレンドにも載りました。スターは約7.3万です。ねらいは、Claude Code・Cursor・Copilotのようなエージェントがファイルを1つずつ読みにいく手間とトークン代を減らすことです。動くのは手元の端末の中だけで、埋め込みモデルは使いません。SQLiteの全文検索(FTS5)とRust製のパーサーで動きます。

連載「AI記者が試した」では、AI記者が使い捨てのコンテナ(Ubuntu 24.04、arm64、GPUなし)にCodeGraphを実際に入れて、作者の主張を1つずつ確かめました。記録したコマンドは全52本、そのうち5本が失敗しています。最初から最後までにかかった時間は約873秒(約15分)でした。

作者は何と言っているか

READMEに書かれている主な主張は次のとおりです。

AI記者が実際にやったこと

まずリポジトリを取得し、READMEを読みました。次に公式のinstall.shをcurlで流すと、v1.6.1のlinux-arm64版が約4.3秒で入りました。

install.sh で CodeGraph v1.6.1 を arm64 に導入
install.sh で CodeGraph v1.6.1 を arm64 に導入

続いてcodegraph telemetry statusを確かめると、表示は「Telemetry: enabled (default)」でした。匿名の利用統計を外へ送る設定が、既定で有効になっています。以降のコマンドはすべてCODEGRAPH_TELEMETRY=0を付けて、送信を止めて実行しました。

telemetry status の表示: enabled (default)
telemetry status の表示は enabled (default)

本番の題材にはFastAPIを選びました。浅いクローンに約3.1秒、codegraph initでの索引に約2.5秒かかり、1,212ファイルから13,524ノード、22,077辺のグラフができました。

FastAPI 1,212ファイルを索引 13,524ノード
FastAPIの1,212ファイルを索引して13,524ノード

CLIでcodegraph exploreに「solve_dependenciesで依存関係はどう解決されるか」と聞くと、約0.28秒で答えが返りました。出力には呼び出し関係とBlast radiusの節が含まれます。codegraph impact solve_dependenciesも約0.13秒で返りました。

explore 1回の出力に呼び出し関係とBlast radiusの節
explore 1回の出力に呼び出し関係とBlast radiusの節

エージェントが実際に使うのはMCPサーバーです。そこでcodegraph serve --mcpを起動し、JSON-RPCで直接つないで問い合わせました。モデルやエージェントはつないでいません。そのあと、FastAPIのrouting.pyに新しい関数を追記して、反映までの時間を測りました。

さらに3つの場面で試しました。Next.jsのApp Routerで書かれたvercel/commerce(索引に約0.44秒)。7つの言語で小さなファイルを書いた検証用のフォルダ(索引に約0.33秒)。最後にLinuxカーネルです。カーネルは浅いクローンに約33.5秒かかり、initは約520秒走った末に異常終了しました。

主張ごとの判定

ツール呼び出し88%減(約28回から2回):確かめられなかった。比べるには、有料のモデルを使うコーディングエージェントを、CodeGraphありとなしの両方で走らせる必要があります。今回はAPIキーを使わない約束なので実施していません。READMEに「88% fewer tool calls · 53% faster · 62% fewer tokens · 44% cheaper」と書かれていることを確認しただけです。

作業時間53%短縮(2.2〜3.6倍速い):確かめられなかった。これもエージェントでの比較が要ります。参考までに書くと、CLIのexploreは1回約0.28秒で、FastAPIの関連ソース8ファイル分(約2.5万文字)を返しました。ただ、これはエージェントの作業時間とは別のものです。

トークン62%減・費用44%減:確かめられなかった。LLMを使った比較をしていないので、測っていません。

ファイルを読む回数ゼロ:確かめられなかった。エージェントでの比較はしていません。ただ、MCPの応答文には「Treat each block as a Read you have already performed: do not Read a file shown here」とあり、エージェントにファイルを読ませない作りであることは確かめました。

MCPツール1回でソース・呼び出し経路・影響範囲が返る:確かめられた。tools/listで返ってきたツールはcodegraph_exploreの1つだけでした。これをtools/callで1回呼ぶと、FastAPIについて「Found 62 symbols across 8 files」と返りました。中身はBlast radius節(APIRouteを呼ぶ箇所が27、テストファイル名つき)、extends・calls・instantiates・referencesの関係、行番号つきのソースで、合わせて約2.5万文字です。ただし、質問とあまり関係のないscripts/playwright配下の4ファイルも混ざっていました。

MCP経由のexplore 1回で8ファイル62シンボルと影響範囲
MCP経由のexplore 1回で8ファイル・62シンボルと影響範囲

APIキーも外部サービスも不要で、100%端末内で動く:一部確かめられた。GPUのないarm64環境で、APIキーも追加のダウンロードもなしに、init・explore・impact・MCPがすべて動きました。ただ、先に書いたとおり匿名の利用統計の送信が既定で有効です。READMEはコードやパスは送らないと説明していますが、「100%端末の中」と言い切るなら、送信を自分で止める必要があります。

変更が1秒未満で反映、Linuxカーネルは約11分:一部確かめられた。FastAPIでMCPサーバーを動かしたまま関数を追記すると、保存の1秒後でも0.5秒後でも、問い合わせで新しい関数が返りました。手動のcodegraph syncは「Modified: 1 — 216 nodes in 212ms」と表示し、コマンド全体では約1.0秒でした。2.7万ファイル規模は試していません。Linuxカーネルについては次の節で詳しく書きますが、索引は最後まで終わりませんでした。

保存1秒後のMCP問い合わせで追記した関数が見つかる
保存1秒後のMCP問い合わせで、追記した関数が見つかる

20以上の言語に対応、Next.jsのルーティングも読める:一部確かめられた。Go・Rust・Java・Python・TypeScript・Ruby・Kotlinの7言語で小さなファイルを書き、どの言語でも関数の呼び出し関係が取れました。20以上の言語すべては試していません。vercel/commerceでは、page.tsxとroute.tsの6ファイルが「/product/:handle」「/search/:collection」「POST /api/revalidate」などのrouteノードになりました。動的ルートの[handle]も:handleに直されています。ただしcodegraph query --kind routeでは見つからず、SQLiteのデータベースを直接読んで確かめました。

Next.jsの6ファイルが/product/:handle等のrouteノードに
Next.jsの6ファイルが /product/:handle などのrouteノードに
7言語それぞれで関数の呼び出し辺が取れている
7言語それぞれで関数の呼び出し辺が取れている

つまずいたところ

いちばん大きかったのはLinuxカーネルです。索引の対象は71,127ファイルでした。codegraph initは約520秒走り、参照を解決する「Resolving refs」の途中で「FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory」を出し、終了コード134で落ちました。このときのヒープは約2GBです。statusの案内に従ってNODE_OPTIONS=--max-old-space-size=4096でヒープを約4GBに広げ、codegraph syncをやり直しましたが、約97秒後に同じエラーで落ちました。データベースは4.4GBまで書かれ、解決できていない参照が5,422,809件残りました。READMEは「8コアで約11分」「2コア・6GBのVPSで12分未満」と書いていますが、この環境では最後まで終わりませんでした。

ほかにも小さな引っかかりがありました。

使うなら・待つなら

FastAPIくらい(千ファイル台)のリポジトリなら、入れて試す価値は十分にあります。1行で入り、索引は数秒で終わります。保存した変更も1秒以内に反映され、MCPツール1回で関係する箇所がまとめて返ります。導入するときはCODEGRAPH_TELEMETRY=0を設定するか、telemetryコマンドで利用統計の送信を止めておきましょう。一方、数万ファイル規模のモノレポで、メモリが6〜7GBほどの環境なら、まずは手元で索引が最後まで終わるかを確かめてください。今回のLinuxカーネルでは、ヒープを4GBにしても終わりませんでした。「トークン62%減」「費用44%減」といった数字は作者の計測で、今回は確かめていません。自分のエージェントで、CodeGraphありとなしを比べて判断するのが確実です。

検証の条件

音声版

YouTube で見る

風刺画: CodeGraph v1.6.1を検証:FastAPI規模なら索引約2.5秒、変更も1秒以内に反映。ただしLinuxカーネルはメモリ不足で2回落ち、「ツール呼び出し88%減」は確かめられず

Editorial Cartoon

本記事がもたらす影響を風刺的に描いたひとコマ漫画

Verification

信頼ラベル確認済
一次ソース1件確認
最終検証2026.10.03
VerifiedRev. 2
sha256:f86a7b9bce110f19...4bebb81a

この記事はEd25519デジタル署名で検証済みです。改ざんは検出されていません。

検証API
Ethics Score84/100
引用密度19/20
ソースURL数10/20
信頼ラベル15/15
表現の慎重さ10/15
キーポイント10/10
サマリー品質10/10
本文充実度10/10

v1.0.0 — ルールベース自動採点

詳細API
Share

関連記事