vitali87/code-graph-rag

GitHub Trending (daily) 工具

摘要

Code-Graph-RAG 是一个开源工具,使用 Tree-sitter 解析多语言代码库,在 Memgraph 中构建知识图谱,并让你用自然语言查询、编辑和优化代码。它支持在统一图模式下的混合语言 monorepo。

为你的 monorepo 打造的终极 RAG。借助 AI 和知识图谱的力量,查询、理解并编辑多语言代码库。
查看原文
查看缓存全文

缓存时间: 2026/08/09 13:54

vitali87/code-graph-rag 源码:https://github.com/vitali87/code-graph-rag

Code-Graph-RAG

Code-Graph-RAG 使用 Tree-sitter 解析多语言代码库,在 Memgraph 中构建其结构的知识图谱,并允许你用自然语言查询、编辑和优化这些代码。它能在统一图 Schema 下跨混合语言的 monorepo 工作。

最新动态 🔥

  • Ruby 支持:Ruby 通过新的可插拔 ast-grep 层加入图谱,该层仅需一个 YAML 模式文件即可添加一种语言,无需手写解析器即可生成 ModuleFunctionClass 节点以及导入边。
  • 结构化搜索与替换:通过 ast-grep 按 AST 模式查找和重写代码,并作为代理工具暴露,使你能够基于结构在整个代码库中匹配和转换,而不依赖于文本或正则表达式。
  • 数据流追踪:新增的 FLOWS_TO 污点边可追踪值在赋值、函数调用和 I/O 汇聚点之间的流动,已覆盖 C#、Java、C 和 Go。完整历史参见 NEWS.md

它能做什么

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

  • 用自然语言询问代码库相关问题,并获取基于真实结构的答案。
  • 按名称或意图检索任何函数、类或方法的实际源码。
  • 通过代理使用基于 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

完整细节请参阅 架构概览图 Schema

支持的语言

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

安装

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

``bash

使用 uv(推荐)

uv tool install “code-graph-rag[treesitter-full,semantic]”

或使用 pipx

pipx install “code-graph-rag[treesitter-full,semantic]” ``

你还需要 Docker(用于 Memgraph)、cmakeripgrep。完整的前置要求、源码安装和环境配置请参阅 安装 指南。

快速开始

``bash

启动打包的 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 (https://modelcontextprotocol.io) 服务器运行,使 Claude Code 和其他 MCP 客户端可以直接查询和编辑你的代码库。设置方法请参阅 MCP 服务器 指南。

文档

入门指南

用户指南

架构

Python SDK

进阶

企业服务

Code-Graph-RAG 是开源且免费使用的。对于有更高需求的组织,我们提供完全托管的云托管解决方案本地部署

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

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

在 code-graph-rag.com (https://code-graph-rag.com/enterprise) 查看方案与定价

贡献指南

请参阅 CONTRIBUTING.md 了解贡献指南。适合新手的好 PR 来自 TODO issues。

支持

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

许可证

MIT。参见 LICENSE

相似文章

colbymchenry/codegraph

GitHub Trending (daily)

CodeGraph 是一个开源工具,为代码库创建预索引的知识图谱,使 Claude Code 的探索代理能够即时查询符号关系和调用图,将工具调用次数减少高达 96%,探索时间减少 77%。

Graphify-Labs/graphify

GitHub Trending (daily)

Graphify将整个项目(代码、文档、PDF、图片、视频)映射成一个知识图谱,可通过AI编码助手进行查询,并利用tree-sitter AST进行本地代码解析。

tirth8205/code-review-graph

GitHub Trending (daily)

code-review-graph是一个Python工具,使用Tree-sitter构建代码的结构化地图,追踪增量变更,并通过MCP为AI编码助手提供精确上下文,从而在代码审查任务中显著减少令牌使用量。