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 驅動的程式碼編輯、最佳化、無用程式碼偵測與執行時追蹤疊加。
運作方式
- 解析 – Tree‑sitter 遍歷每個原始碼檔案(Python、TS/JS、Rust、Go、Java、C/C++、C#、PHP、Lua、Dart 等),建立 AST。
- 圖譜載入 – AST 被轉換為語言無關的架構並載入至 Memgraph。
- RAG 迴圈 – CLI(
cgr)透過 LLM 將使用者的英文問題轉換為 Cypher 查詢,對圖譜執行查詢並回傳有根據的答案。相同迴圈也可產生用於編輯的 AST 基礎補丁。
核心功能
- 對整個程式碼庫進行自然語言問答,結果與真實符號關聯。
- 依據名稱或意圖進行原始碼檢索。
- AI 驅動編輯:在套用前以差異(diff)形式預覽外科式 AST 補丁。
- 基於最佳實務規則或自訂標準進行程式碼最佳化。
- 透過遍歷呼叫/參考邊進行無用程式碼偵測。
- 使用
ast‑grep模式進行結構化搜尋與重寫。 - 動態追蹤:將 eBPF 或測試執行的呼叫圖合併至靜態圖中,揭露執行時分派行為。
- MCP 伺服器相容性,使 Claude Code 等工具可直接查詢/編輯圖譜。
安裝與使用
- 透過 PyPI 安裝
cgrCLI,包含完整的 Tree‑sitter 與語意擴充(使用pipx或uv)。 - 使用
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 增強的平台,可將任何程式碼庫轉化為可查詢的知識圖譜,實現自然語言洞察、安全的自動化重構以及更深入的靜態-動態分析。
相關
- 專案
- 專案
- 專案
- 專案
- 專案