vitali87/code-graph-rag
The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs
解決する課題
Code-Graph-RAGは、ソースコードを検索可能な知識グラフに変換することで、開発者が大規模な多言語コードベースを理解、クエリ、および修正するのを支援します。これは、リポジトリ全体における関数、クラス、モジュールの関係性に関する構造的な認識が不足しがちな、従来のテキストベースの検索や単純なRAGの問題を解決します。
仕組み
システムは主に2つのコンポーネントで構成されています:
- 多言語パーサー: Tree-sitterを使用してソースコードを分析し、構造的要素(関数、クラス、メソッド、モジュール)とその関係性を抽出します。このデータは、言語に依存しないスキーマを使用してMemgraphデータベースに保存されます。
- RAGシステム: 自然言語のクエリをCypherクエリに変換し、グラフから正確なコード構造を取得するインタラクティブなCLIです。取得された構造は、AIによる回答、編集、および最適化の根拠として使用されます。
対象ユーザー
複雑なモノレポや多言語プロジェクトに携わり、構造的な検索、デッドコードの特定、またはAIを使用したコードリファクタリングの自動化を必要とするソフトウェアエンジニアおよびアーキテクト。
ハイライト
- 幅広い言語サポート: Python, TypeScript, Rust, Go, Java, C, C++, C#, PHP, Lua, Dartをサポートし、ast-grepを介してRubyの構造的サポートも提供します。
- ASTベースの編集: 正規表現の代わりにASTパターンを使用して、精密なコードパッチ適用や構造的な検索・置換を可能にします。
- データフローの追跡: C#, Java, C, Goにおける代入と関数呼び出しを通じた値の移動を追跡します。
- MCPサーバー: Model Context Protocolサーバーとして統合されており、Claude CodeのようなAIクライアントがコードベースと直接対話できるようにします。
- デッドコード検出: エントリポイントからの呼び出しおよび参照エッジを辿ることで、未使用のコードを特定します。