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 增强的平台,可将任何代码库转化为可查询的知识图谱,实现自然语言洞察、安全的自动化重构以及更深入的静态-动态分析。
相关
- 项目
- 项目
- 项目
- 项目
- 项目