コンテキストやコストを失わずに、AIエージェントを大規模なレガシーコードベースで動作させる方法
身に覚えはないだろうか? 古プロジェクトのロジックをClaudeやChatGPTに尋ねると、「幻覚」を起こしたり、grepで何百ものファイルを読もうとしてトークン上限を消費し尽くしたりし始める。Claude Codeのような最新のエージェントでさえ、サービス間の深い繋がりや複雑な呼び出しチェーンになると、盲目な子猫のように振舞うことが多い。
こないだ、codebase-emory-mcpリポジトリを見つけた。MCP(Model Context Protocol)サーバーで、コードを構造化されたナレッジグラフに変換する。ニューラルネットワークに生のテキストを与える代わりに、このツールは関数、クラス、依存関係のマッピングを構築し、AIがわずかなヒントで理解できる。
通常の検索の何が悪いのか
AIエージェントがコードを理解しようとするとき、通常は力任せの方法を取る。文字列検索を実行し、ファイルを1つずつ開き、すべてを頭の中に入れようとする。問題はコンテキストウィンドウが無限ではないことだ。プロジェクトが大きいと、エージェントは呼び出しチェーンの始まりをすぐに忘れてしまい、異なるモジュールの似たメソッドを混同し始める。
DeusDataの開発者は印象的な数字を主張している:グラフを使用することでトークン消費が120分の1に減る。通常のエージェントが400,000トークンを処理する必要があるところで、このツールは3,000〜4,000トークンだけで済む。これはAPI呼び出しのコストを節約するだけでなく、主に回答の正確性に関わる。
このエンジンのできること
このプロジェクトは「純粋な」Cで書かれており、データストレージにSQLiteを使用している。これにより信じられないほどの速度が実現している。Linuxカーネル(2,800万行のコード)のインデックス作成はわずか3分。DjangoやReactなどの一般的なプロジェクトは数秒で「飲み込まれる」。
注目したい機能がいくつかある:
- アーキテクチャの理解。このツールはテキストだけでなく、構造を見る。APIエンドポイントを区別し、どの関数がどの関数を呼び出すかを理解 し、使われていない「デッド」コードさえ見つける。
- 66言語のサポート。tree-sitterのおかげで、このエンジンはPythonやTypeScriptからRustやCOBOLまでほぼすべてを理解できる。さらに、C、C++、GoではLSPスタイルの型推論が可能。
- 可視化。(オプションの)3Dグラフビジュアライザーが付属している。ブラウザでプロジェクトを回転させて、モジュールがどのように接続されているかを視覚的に確認できる。
- エージェント統合。1つのコマンドで、Claude Code、Zed、Aider、その他の一般的なツール向けに自動的に設定される。
ブラウザで回転できるあの3Dグラフ
内部での動作仕組み
興味深いことに、作者たちはクエリをデータベースコマンドに変換するために独自のLLMを埋め込まないことを決めた。賢明な考えとして、スマートエージェント(Claude 3.5 Sonnetなど)と既に会話しているのだから、翻訳はそのエージェントに任せようということだ。
「誰かがメソッドProcessOrderを呼び出すか?」と尋ねると、エージェントは意図を理解してツールtrace_call_pathを呼び出す。エンジンはミリ秒単位でグラフを走査し、構造化されたレスポンスを返す。結果として、AIは間接的な手がかりから推測しようとする代わりに、明確なチェーンを見ることができる。
ストレージにはWALモードのSQLiteが使用され、データはLZ4アルゴリズムで圧縮される。これにより、非常に大きなプロジェクトのインデックスさえ、ディスクに負荷をかけずに動作中にメモリに直接保持できる。
開発者への実用的なメリット
最も明白なユースケースは、新しいプロジェクトへのオンボーディングや古いプロジェクトのリファクタリングだ。頭の中で手動でダイアグラムを構築する代わりに、エージェントにcodebase-emory-mcpへのアクセスを与える。
例えば、「UserIDを受け入れるが、アクセス権限をチェックしないすべてのエンドポイントを見つけて」と尋ねられる。通常のテキスト検索では見落とされるHTTPルートとバリデーションメソッド間の接続を、このツールが見つけてくれる。
もう1つの素晴らしい機能はcodebase-emory-mcpだ。現在のgit diffを分析し、「ブラスト半径」(変更が影響する関数やモジュール)を表示する。コミット前の素晴らしい保険になる。
試す方法
インストールはできるだけシンプルに——Dockerや追加の依存関係なし。macOSとLinuxでは、ターミナルで1つのコマンドを実行するだけ:
curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash
すぐに可視化したい場合は、フラグを追加する。インストール後、AIエージェントを再起動して「プロジェクトをインデックス化しろ」と言うだけだ。
それだけの価値はあるか
このプロジェクトは非常に有望に見える。特に気に入っているのは、クラウドサービスではなくローカルユーティリティだということだ。コードはすべてマシン上に残り、インデックス作成のために外部サーバーにデータが送信されない。
もちろん、ニュアンスはある。Haskellなどの一部の言語の分析品質は、主流のPythonやGoほどはまだ高くない。しかし、サポートされている技術のリストと処理速度は、これらの粗さを十分に補っている。
毎日の開発でAIを активно 使用しており、複雑なタスクで「行き詰まり」を感じ始めているなら、このツールが必要なリンクになれるかもしれない。少なくとも、3Dグラフでプロジェクトを確認できる機能は、インストールに10分かける価値はある。
関連プロジェクト