AI News HubLIVE
站内改写

Memgraph Ingester:AIエージェントを高速化

Memgraph Ingester は、Java コードベースの構造とエンジニアリングコンテキストを Memgraph に取り込み、クエリ可能な知識グラフとして提供します。AIエージェントはテキスト検索ではなくグラフクエリを通じてコードとプロジェクト知識を推論でき、精度向上、コスト削減、分析高速化を実現します。並列取り込み、ウォッチモード、Claude・Codex・Gemini・GitHub Copilot との連携をサポートします。

記事インテリジェンス

エンジニア中級

要点

  • コードグラフ(ソース構造)とメモリグラフ(エンジニアリングコンテキスト)をプロジェクト単位で作成。
  • JavaParser による Java 25 構文対応、クラスパス指定でシンボル解決を強化。
  • 4~8スレッドの並列取り込みと、ソース変更を自動検出するウォッチモードを提供。
  • Claude、Codex、Gemini、GitHub Copilot との統合スクリプトを同梱。

重要な理由

このニュースが重要なのは、コードグラフ(ソース構造)とメモリグラフ(エンジニアリングコンテキスト)をプロジェクト単位で作成ためです。

技術的影響

モデル選定、推論コスト、プロダクト能力、評価基準に影響する可能性があります。

Memgraph Ingester は、Java コードベースの構造モデルを Memgraph グラフデータベースに取り込み、コードと記憶の知識グラフを構築するオープンソースツールです。このツールは2つの主要なグラフで構成されます。コードグラフ(パッケージ、ファイル、クラス、メソッド、フィールド、継承、コール関係を格納)とメモリグラフ(決定、ADR、ルール、タスク、リスク、質問などのエンジニアリングコンテキストを格納)です。各ノードはプロジェクトプロパティでスコープされるため、複数のJavaコードベースが同じMemgraphインスタンスを共有しても競合しません。

このツールは JavaParser を使用して構文解析を行い、Java 25 構文に対応しています。以前のバージョンのJavaコードもほとんど処理できますが、JavaParser は javac の代替ではないため、一部のエッジケースを見逃す可能性があります。オプションのクラスパスパラメータにより、シンボル解決の精度を大幅に向上させ、型とコール関係の認識を改善できます。

クイックスタートでは、最新のJARをダウンロードし、Memgraphインスタンスを実行し、コマンドラインでソースディレクトリ、Bolt接続、プロジェクト名を指定するだけで取り込みが完了します。オプションには、プロジェクトコードグラフの消去、プロジェクトメモリグラフの消去、スキーマ適用、インクリメンタル取り込み、ウォッチモードが含まれます。ウォッチモードは Java の WatchService を利用してファイル変更を効率的に監視し、IDE保存などによる複数回の書き込みに備えてデバウンス遅延を備えています。

並列取り込み機能は、複数の解析スレッドを使用して大規模コードベースの取り込みを高速化します。実際のテストでは、4~8スレッドがほとんどのマシンで最適であり、CPUコア数を超えても効果はほとんどありません。Memgraph Community は書き込みを直列化するため、書き込みパスがボトルネックとなり、スケーリングは線形ではありません。

このツールの特筆すべき機能は、複数のAIエージェントとのシームレスな統合です。プロジェクトには初期化スクリプト(init-memgraph-claude.sh、init-memgraph-codex.sh、init-memgraph-gemini.sh、init-memgraph-github.sh)が用意されており、GitHubからテンプレートを取得し、プロジェクト名を置換して、結果を対応するエージェント設定ファイル(CLAUDE.md、AGENTS.mdなど)に追加します。これらのファイルをコミットすると、エージェントはセッション開始時に設定を読み取り、テキスト検索ではなくグラフクエリを通じてコードベースを理解するようになります。

さらに、ユーザーは mgconsole ツールを使って直接グラフをクエリしたり、Memgraph MCPサーバーを設定してAIエージェントがグラフクエリでコードと記憶を推論できるようにすることもできます。このアプローチはテキスト検索と比較して、精度の向上、トークン消費の削減、分析の高速化を実現します。

Memgraph Ingester は、AIによるコード理解が必要なあらゆるJavaプロジェクト、特に大規模コードベースや永続的なエンジニアリング知識が必要なチームに適しています。