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 – AI 驅動的程式碼庫知識圖譜

是什麼 – 一個開源工具,使用 Tree‑sitter 解析多語言程式碼庫,將提取出的函式、類別、模組及其關係儲存於 Memgraph 知識圖譜中,並允許透過自然語言查詢與該圖譜互動。同時支援 AI 驅動的程式碼編輯、最佳化、無用程式碼偵測與執行時追蹤疊加。

運作方式

  1. 解析 – Tree‑sitter 遍歷每個原始碼檔案(Python、TS/JS、Rust、Go、Java、C/C++、C#、PHP、Lua、Dart 等),建立 AST。
  2. 圖譜載入 – AST 被轉換為語言無關的架構並載入至 Memgraph。
  3. RAG 迴圈 – CLI(cgr)透過 LLM 將使用者的英文問題轉換為 Cypher 查詢,對圖譜執行查詢並回傳有根據的答案。相同迴圈也可產生用於編輯的 AST 基礎補丁。

核心功能

  • 對整個程式碼庫進行自然語言問答,結果與真實符號關聯。
  • 依據名稱或意圖進行原始碼檢索
  • AI 驅動編輯:在套用前以差異(diff)形式預覽外科式 AST 補丁。
  • 基於最佳實務規則或自訂標準進行程式碼最佳化
  • 透過遍歷呼叫/參考邊進行無用程式碼偵測
  • 使用 ast‑grep 模式進行結構化搜尋與重寫
  • 動態追蹤:將 eBPF 或測試執行的呼叫圖合併至靜態圖中,揭露執行時分派行為。
  • MCP 伺服器相容性,使 Claude Code 等工具可直接查詢/編輯圖譜。

安裝與使用

  • 透過 PyPI 安裝 cgr CLI,包含完整的 Tree‑sitter 與語意擴充(使用 pipxuv)。
  • 使用 cgr daemon up 啟動內建的 Memgraph + Qdrant 堆疊(需 Docker)。
  • 索引程式碼庫:cgr start --repo‑path /path/to/repo --update‑graph
  • 透過互動式 CLI 或 Python SDK 進行程式化查詢或編輯。

為何重要

  • 為混合數十種語言的單體程式碼庫提供單一、語言無關的圖譜,這是大多數程式碼搜尋工具所缺乏的。
  • 橋接靜態分析執行時資訊,提供更完整的程式碼實際行為視圖。
  • 使 AI 代理能進行精確的 AST 級變更,而非粗略的文本編輯,降低破壞程式碼的風險。
  • 開源核心,支援可選的企業級托管或離線部署,適用於受監管環境。

資源

  • 詳細文件:安裝、快速入門、CLI 參考、架構、SDK 及進階主題。
  • 社群:CI 狀態徽章、程式碼覆蓋率、SonarCloud 質量門檻、OpenSSF 評分卡。
  • 用於托管雲端或本地部署的企業服務。

總結 – Code‑Graph‑RAG 是一個全棧式、AI 增強的平台,可將任何程式碼庫轉化為可查詢的知識圖譜,實現自然語言洞察、安全的自動化重構以及更深入的靜態-動態分析。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案