模型 / 資料集
vitali87/code-graph-rag avatar
vitali87/code-graph-rag

Code-Graph-RAG:让多语言代码庫同時可被图查询與语義檢索

此專案圍繞「The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs.」建置,聚焦實際場景的開源實作,提供可重用的工具鏈與整合方式。

5,134 個 Star675 個 ForkPythonMIT

秒懂

它是什麼?
基于 Tree-sitter、Memgraph 與 Qdrant 的代码知识图谱工具,重点分析索引边界、版本渠道和共享图清理风险。
適合誰用?
它适合需要跨 Python、TypeScript、Rust、Go、Java 等语言理解大型 monorepo,並愿意维护 Memgraph、Qdrant 與 AI 模型配置的团队。不适合只搜索几個文件、不能接受代码進入图數據庫,或把 PyPI 最新版誤当成 main 最新提交的场景。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

項目定位 · vitali87-code-graph-rag-deep-analysis

vitali87/code-graph-rag 的 README 將項目描述為"The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs"。本文只整理倉庫能直接核驗的内容,不把星標、Fork 或宣传语当成質量證明。README 在"Code-Graph-RAG"下的說明是:Code-Graph-RAG parses a multi-language codebase with Tree-sitter, builds a knowledge graph of its structure in Memgraph, and lets you query, edit, and optimise that code in plain English.。這给出的首先是項目边界,而不是已经完成的生產驗證。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。

适用场景 · vitali87-code-graph-rag-deep-analysis

從 README 的"Latest News "和相關条目看,讀者可以先判断它是否解决自己的具體問題:Structural Search & Replace: Find and rewrite code by AST pattern with ast-grep, exposed as agent tools so you can match and transform structure across the whole codebase instead of relying on text or regex.。如果你的目標與這段說明不一致,就不應僅憑項目热度采用它。這里保留原項目名、命令和組件名,方便回到一手來源核对。 README 還列出了另一条可核对的信息:Ruby Support: Ruby joins the graph through a new pluggable ast-grep tier that adds a language from a single YAML pattern file, emitting Module, Function, and Class nodes plus import edges without a hand-written parser.。這類原文条目可以帮助讀者設計試運行步骤,但不能代替自己的環境測試。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。

工作方式 · vitali87-code-graph-rag-deep-analysis

README 把工作方式分散寫在"How It Works"等段落中。可确认的線索包括:1. Multi-language parser. A Tree-sitter based parser reads the codebase and ingests functions, classes, methods, modules, and their relationships into Memgraph under a single language-agnostic schema. 2. RAG system (codebaserag/).。這篇整理没有把未寫出的架構、性能或安全边界补成結论;真正的運行链仍應結合倉庫目录、配置文件和版本標籤檢查。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。

安装與第一次運行 · vitali87-code-graph-rag-deep-analysis

第一次安装應從 README 给出的入口開始。当前可复核的命令是:

README 没有给出可直接复制的安装命令。

如果倉庫没有提供命令,本文不会替它編造安装步骤,而是建议先打開 README 的"Latest News "部分,确认系統依赖、默认端口和首次初始化動作。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。

配置與日常使用 · vitali87-code-graph-rag-deep-analysis

日常使用的细节取决于項目實际文檔。README 的"How It Works"段落提到:See the Architecture Overview for the full picture.。对于配置文件、環境變量、權限和數據目录,当前稿只记录來源明确的部分;未寫明的默认值必须在測試環境中驗證,並保留可回滚的配置副本。 同一部分還提到:Data-Flow Tracing: New FLOWSTO taint edges follow values through assignments, function calls, and I/O sinks, with coverage across C#, Java, C, and Go.。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。

README 能确认的限制 · vitali87-code-graph-rag-deep-analysis

README 能确认的限制比宣传頁面更重要。当前來源没有證明vitali87/code-graph-rag具備固定的兼容矩阵、服務等級、性能基准或長期支持承诺。README 只明确寫到"Python, TypeScript, TSX, JavaScript, Rust, Go, Java, C, C++, C#, PHP, Lua, and Dart are fully supported. Scala is in development, and Ruby has structural support (modules, functions, classes, and imports) through the pluggable ast-grep"。這類未知項應在选型记录里列為待驗證事項,而不是被改寫成肯定句。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。

Code-Graph-RAG 現场核驗边界

Code-Graph-RAG 驗收第1項:輸入樣例必须可重复,保存原始文件、命令輸出和版本信息。

Code-Graph-RAG 驗收第2項:結果观察要落到字段、路径、頁码、任務或请求,而不是只记录成功提示。

Code-Graph-RAG 驗收第3項:出現异常時先缩小到一個組件和一個輸入,再與 README 的明确限制对照。

Code-Graph-RAG 驗收第4項:冷啟動與重复運行應分別记录,因為缓存和持久状態会改變表現。

Code-Graph-RAG 驗收第5項:權限、網络和本地數據目录要单独檢查,功能通過不代表部署边界已经清楚。

Code-Graph-RAG 驗收第6項:升級前复制數據或索引,升級后重跑相同樣例並比较差异。

Code-Graph-RAG 驗收第7項:項目没有說明的默认值不能补成肯定結论,應在自己的環境里留下观測记录。

Code-Graph-RAG 驗收第8項:最終采用范围只覆盖已測試的格式、后端、语言、框架和運行時。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。

Code-Graph-RAG 的部署记录應可回放

Code-Graph-RAG 的部署评估應把事實與判断分開。在正式采用前,先建立一個只包含必要數據的隔离樣例,固定輸入、配置和運行版本。每次只改變一個變量,保存命令、日志和結果截图,把成功、失败、警告與未覆盖的能力分開记录。

Code-Graph-RAG 的功能驗收需要具體观察点。驗收不能只看頁面或命令返回成功。要檢查實际輸出是否包含預期字段、内容、索引、表格、調用边、任務、音频或文件,並确认錯誤發生時不会静默生成錯誤結果。

Code-Graph-RAG 的數據边界需要具體控制。涉及網络、憑證、權限和持久數據時,先使用低權限账號與脱敏文件,确认服務监听地址、缓存目录、備份方式和清理動作。升級前保留可恢复副本,升級后用同一組樣例比较差异。

Code-Graph-RAG 的結论需要限定范围。README 未說明的兼容性、性能和默认值都不能由項目热度推断。結论只适用于已经測過的语言、框架、格式、后端、設備和版本組合,超出范围時應重新建立測試记录。

完成一次完整回放后,再决定是否扩大輸入规模、連接更多來源或開放更多調用入口。若結果發生變化,優先比较版本、配置、缓存和輸入差异,並回到对應的官方 README、倉庫文件與發布记录核对。

Code-Graph-RAG 的結果记录還應包含輸入规模、首次運行與重复運行的差异、失败后的恢复動作,以及最終由谁审核輸出。对于服務類項目,补充监听地址、依赖進程和重啟后的状態;对于庫類項目,补充構建產物、測試框架和索引或缓存的生命周期。对于文檔、代码和數據處理工具,补充原始文件、生成文件和人工比对的位置。這樣的记录让一次試用能够被另一位维护者重新執行,也能明确哪些結论來自 README,哪些結论只來自本地樣例。 Code-Graph-RAG 還要把版本升級、配置變更和數據清理分別演练,确认异常退出后能够恢复,並把未測試的輸入類型明确留在选型记录中。 Code-Graph-RAG 的复核還應檢查日志是否足以定位失败,确认敏感内容没有進入不该保存的位置,並由實际使用者确认輸出满足业務格式。 Code-Graph-RAG 的驗收結论應注明測試日期、使用的文件或倉庫、運行環境和未覆盖的边界,便于后续复查。 這份记录還應随發布版本更新,不能沿用旧環境結果替代新版本檢查。 复核結果需归檔。 留存備查。 完成。 入庫 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。 vitali87-code-graph-rag-deep-analysis 的判斷不能脫離專案本身。應把 README 提到的入口、設定鍵與輸出格式放進最小可行案例,記錄成功與失敗的差異;若文件未說明某項行為,就把它列為未知,而不是推定預設值。這對依賴版本、作業系統、模型、瀏覽器或 Android 執行環境的功能尤其重要。

編輯結論

它适合需要跨 Python、TypeScript、Rust、Go、Java 等语言理解大型 monorepo,並愿意维护 Memgraph、Qdrant 與 AI 模型配置的团队。不适合只搜索几個文件、不能接受代码進入图數據庫,或把 PyPI 最新版誤当成 main 最新提交的场景。先按 README 運行 cgr daemon up,再用 cgr start --repo-path 指向一個可回滚的小倉庫,檢查节点數量、查询結果、diff 預覽和 --clean 的共享图影响。 對 vitali87-code-graph-rag-deep-analysis 而言,先在隔離環境執行 README 指定的安裝或啟動命令,觀察實際輸出、錯誤訊息與設定檔,再決定是否納入正式流程。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記