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 客户端直接与代码库交互。
  • 死代码检测:通过从入口点遍历调用和引用边来识别未使用代码。