开源项目

code-graph-rag

code-graph-rag

将 Tree-sitter 解析出的多语言代码结构存入 Memgraph 知识图谱,用自然语言查询、理解并编辑代码的 RAG 工具。亮点:统一图 schema 覆盖 Python/TS/Rust 等 14 种语言,支持 AST 精确保修改写、死代码检测、数据流追踪,还能以 MCP Server 方式接入 Claude Code 等客户端。MIT 许可。

README

Code-Graph-RAG Logo

CI Codecov Quality Gate Status Enterprise Support PyPI Version PyPI Downloads SkillsLLM Security Check OpenSSF Scorecard OpenSSF Best Practices

Code-Graph-RAG

Code-Graph-RAG 使用 Tree-sitter 解析多语言代码库,在 Memgraph 中构建其结构的知识图谱,并允许你用自然语言对代码进行查询、编辑和优化。它能够在一个统一的图模型(graph schema)下处理由多种语言混合组成的 monorepo。

demo

最新动态 🔥

  • Ruby 支持:Ruby 通过一个可插拔的 ast-grep 层加入图谱,该层使用单个 YAML 模式文件即可追加一种语言,无需手写解析器即可生成 Module、Function、Class 节点以及 import 边。
  • 结构化搜索与替换:使用 ast-grep 按 AST 模式查找并重写代码,作为 agent 工具暴露,让你能够跨整个代码库进行结构匹配与转换,而不再依赖文本或正则表达式。
  • 数据流追踪:新增的 FLOWS_TO 污点(taint)边跟踪值在赋值、函数调用和 I/O 汇聚点之间的流动,覆盖 C#、Java、C 和 Go。

完整历史记录见 NEWS.md。

功能简介

将 Code-Graph-RAG 指向一个仓库,它会读取所有源文件,提取函数、类、方法、模块以及它们之间的关联,并将结果存储为一张相互关联的图。图建立后,你可以:

  • 用自然语言询问代码库相关问题,并获得基于真实结构、有依据的回答。
  • 按名称或意图检索任何函数、类或方法的实际源代码。
  • 通过 agent 基于 AST 进行外科手术式精准修补来编辑代码,任何改动前都有 diff 预览。
  • 针对语言最佳实践或你自己的编码规范来优化代码。
  • 通过从入口点沿调用边和引用边遍历,找出死代码。
  • 使用 ast-grep 按 AST 模式进行结构化搜索和重写。

工作原理

系统包含两个组件:

  1. 多语言解析器。 基于 Tree-sitter 的解析器读取代码库,将函数、类、方法、模块及它们之间的关系导入 Memgraph,并使用一套与语言无关的 schema。
  2. RAG 系统(codebase_rag/)。一个交互式 CLI,将自然语言转换为 Cypher 查询、检索匹配的代码,并驱动 AI 辅助的编辑与优化。
Source Code -> Tree-sitter Parser -> AST Analysis -> Memgraph Knowledge Graph
                                                             |
User Query -> AI Model (Cypher Gen) -> Cypher Query -> Graph Results -> Response

完整的架构图见 架构总览 和 图模型。

支持的语言

Python、TypeScript、TSX、JavaScript、Rust、Go、Java、C、C++、C#、PHP、Lua 和 Dart 均得到完整支持。Scala 正在开发中,Ruby 通过可插拔的 ast-grep 层获得结构化支持(模块、函数、类和导入)。每种语言的能力矩阵见 语言支持。

安装

cgr 发布在 PyPI 上。使用 treesitter-full(所有语言)和 semantic(向量搜索)附加组件进行全系统安装:

# with uv (recommended)
uv tool install "code-graph-rag[treesitter-full,semantic]"

# or with pipx
pipx install "code-graph-rag[treesitter-full,semantic]"

你还需要 Docker(用于 Memgraph)、cmake 和 ripgrep。完整的先决条件、源码安装和环境设置见 安装指南。

快速开始

# 启动打包好的 Memgraph + Qdrant 栈(无需 compose 文件)
cgr daemon up

# 将一个仓库解析到图中,然后查询
cgr start --repo-path /path/to/repo --update-graph
cgr start --repo-path /path/to/repo

每个需要索引的仓库重复第一条命令;图是共享的,同步一个项目不会影响其他项目。若要从空图重新开始,加上 --clean —— 它会删除共享图中的所有项目,而不仅仅是当前这一个,并且当其他项目将被销毁时会先请求确认。

快速入门 指南会在五分钟内带你完成解析、查询和导出。

MCP 服务器

Code-Graph-RAG 可作为一个 MCP 服务器运行,这样 Claude Code 和其他 MCP 客户端可以直接查询和编辑你的代码库。设置方法见 MCP Server 指南。

文档

入门

用户指南

架构

Python SDK

高级

企业服务

Code-Graph-RAG 是开源且免费使用的。对于需要更多支持的组织,我们提供全托管的云托管解决方案和本地部署:

  • 云托管部署:托管云基础设施,涵盖图数据库和 AI agent 连接。零基础设施负担,我们负责扩展、更新和可用性,你的团队专注于开发。
  • 本地与隔离网部署:将 Code-Graph-RAG 完全部署在你自己的环境中,包括隔离网络。为受监管行业和安全敏感型组织提供完全的数据主权。

我们还提供定制开发、集成咨询、技术支持合同和团队培训。

在 code-graph-rag.com 查看方案与定价

贡献

贡献指南请见 CONTRIBUTING.md。好的首个 PR 来自 TODO 问题清单。

支持

如有问题或疑问,请先查看 故障排查 指南,然后提交 issue。

许可证

MIT。见 LICENSE。

开源项目vitali872026-08-09原文

相关内容