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 的問題,後者通常缺乏對儲存庫中函數、類別與模組之間關係的結構化感知。

工作原理

該系統由兩個主要組件組成:

  1. 多語言解析器:使用 Tree-sitter 分析原始碼並提取結構化元素(函數、類別、方法、模組)及其關係。這些數據使用語言無關的模式儲存在 Memgraph 資料庫中。

  2. RAG 系統:一個互動式 CLI,可將自然語言查詢轉換為 Cypher 查詢,從圖中檢索精確的程式碼結構,隨後用於為 AI 驅動的回答、編輯與優化提供依據。

適用對象

需要對複雜的單體儲存庫(monorepos)或多語言專案進行結構化搜尋、尋找死碼或使用 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 用戶端直接與程式碼庫互動。
  • 死碼檢測:透過從進入點遍歷呼叫與引用邊來識別未使用程式碼。