code-review-graph:基于代码知识图谱的AI代码评审上下文优化工具

AI新闻 97ai
60

一、code-review-graph 是什么

code-review-graph 是一款开源、本地优先构建代码知识图谱的工具,依托 Tree-sitter 解析代码抽象语法树(AST),自动梳理项目内代码依赖关系。

核心目标解决 Cursor、Claude Code、Copilot 等AI编程工具痛点:传统模式直接加载整个仓库代码造成大量Token浪费,评审效率低下。

工具会分析代码变更爆炸半径,筛选变更真正关联的最小代码片段,向AI提供精准上下文,降低Token消耗,同时提升代码审查、重构、架构分析质量。项目采用MIT开源协议,基于Python开发,所有图谱数据本地存储,默认不上传源码至第三方服务器。

code-review-graph(图1)

二、功能特色

  1. 变更影响范围分析(爆炸半径计算)
    修改文件后自动追溯直接、间接代码依赖,筛选最小关联文件集合,剔除无关代码,大幅减少送入大模型的上下文。

  2. 多语言AST解析
    原生支持Python、JavaScript/TypeScript、Go、Rust、Java、C/C++、PHP、Terraform等主流编程语言,支持通过languages.toml配置扩展新语言,针对PHP提供Laravel框架专项语义解析。

  3. 增量图谱构建
    首次执行全库索引,文件变更、Git提交触发增量更新,无需重复解析整个项目,千文件级别项目增量更新耗时通常低于2秒。

  4. 混合检索系统
    融合FTS5全文关键词检索 + 向量嵌入语义检索;兼容OpenAI、Gemini、Voyage、本地sentence-transformers向量模型,按需选用。

  5. 架构可视化与分析
    使用Leiden算法实现模块社区聚类,自动识别系统架构枢纽、代码耦合问题、缺乏测试的热点代码;支持导出D3交互式图谱、GraphML、SVG、Cypher脚本,兼容Obsidian知识库导入。

  6. MCP协议原生支持
    内置MCP服务,可无缝对接Cursor、Claude Code、Windsurf、Zed等主流AI编辑器,编辑器内直接调用图谱数据完成智能代码评审。

  7. 自动化CI集成
    提供GitHub Action,支持在PR阶段自动执行代码风险检测,生成评审意见,可配置高风险变更阻断合并流程。

  8. 辅助代码重构
    实现死代码扫描、函数/类重命名影响预览,辅助开发者安全开展代码重构工作。

  9. 过滤机制
    支持.code-review-graphignore配置文件自定义忽略目录,自动跳过Git ignore内文件,减少无效索引。

三、技术细节

  1. 底层解析引擎:Tree-sitter,生成代码AST,提取类、函数、导入语句作为图谱节点;函数调用、类继承、模块依赖作为图谱边。

  2. 数据存储:本地SQLite数据库graph.db持久化存储图谱,无需部署外部数据库,开箱即用。

  3. 核心算法

    • 图遍历算法:实现依赖正向、反向链路检索,计算变更爆炸半径;

    • Leiden社区检测算法:用于代码模块聚类,识别架构边界;

    • FTS5内置全文检索,向量嵌入为可选模块。

  4. 通信协议:MCP(Model Context Protocol),作为AI编辑器与图谱引擎中间通信标准。

  5. 运行模式

    • CLI模式:手动执行构建、检索、可视化命令;

    • Daemon守护进程:后台常驻,同时监控多个代码仓库,持续维护最新图谱;

  6. 项目技术栈:主体Python,配套少量TypeScript辅助前端可视化组件。

code-review-graph(图2)

四、应用场景

  • AI代码评审:Cursor、Claude Code本地开发,优化上下文,降低Token开销,提升评审准确度;

  • 大型单体项目架构梳理:新人快速熟悉模块依赖,识别不合理耦合;

  • Pull Request风险评估:CI流水线自动分析改动波及范围,预判潜在缺陷;

  • 代码重构前期调研:查询函数/类修改带来的连锁影响;

  • 项目技术债务排查:定位无测试覆盖的核心代码、冗余死代码;

  • 知识库沉淀:导出图谱数据导入Obsidian,搭建项目代码文档。

五、使用方法

1. 安装

# 基础安装
pip install code-review-graph
# 如需向量检索完整功能
pip install code-review-graph[embeddings]
# 全功能安装
pip install code-review-graph[all]

2. 基础命令

# 自动识别编辑器并配置MCP接入
code-review-graph install
# 在项目根目录构建代码图谱
code-review-graph build
# 监听文件变化,自动增量更新图谱
code-review-graph watch
# 启动可视化图谱页面
code-review-graph visualize
# 分析当前代码变更影响范围
code-review-graph detect-changes

3. 基础流程

  1. 项目根目录执行build初始化图谱;

  2. 编辑器运行install完成MCP对接;

  3. 日常开发开启watch保持图谱实时更新;

  4. 发起代码评审时,AI工具自动调用图谱获取关联代码。

六、竞品对比

选取2款同赛道代码上下文/代码图谱工具进行横向对比

工具名称 code-review-graph Aider Code Map Sourcegraph OSS
核心定位 面向AI代码评审,精简LLM上下文 通用AI编程辅助代码索引 全局代码语义搜索平台
部署方式 本地单机运行,SQLite内置存储 本地运行,轻量索引文件 需要独立服务部署,资源占用高
原生MCP支持 ✅ 内置MCP协议 ❌ 无原生MCP ❌ 需要额外API封装
变更爆炸半径分析 ✅ 核心内置能力 ❌ 仅基础文件检索 ❌ 不支持自动影响范围推演
适用场景 Cursor/Claude本地开发、PR评审 轻量AI代码补全辅助 团队大规模代码检索、企业搜索
资源开销 低,增量更新机制 较高,长期占用服务器资源
开源协议 MIT MIT Apache 2.0

code-review-graph(图3)

七、常见问题解答

Q:小型项目(几百行代码)使用code-review-graph能获得收益吗?

A:极小单文件项目优势不明显,图谱元数据会小幅增加Token;更适合多文件、存在复杂依赖的中小型、大型项目。

Q:工具是否会自动上传我的源代码到外部服务器?

A:默认所有图谱数据与源码解析过程完全本地执行,不存在后台上传行为;仅当手动启用云端向量嵌入服务时,才会向对应大模型服务商发送向量文本,可关闭向量功能做到完全离线。

Q:支持Windows系统使用吗?会出现MCP连接失败问题如何处理?

A:支持Windows系统;出现连接报错,需要设置完整程序路径并开启系统UTF-8编码环境变量。

Q:代码依赖分析结果出现多余无关文件(假阳性),怎么解决?

A:图遍历策略优先保证不漏掉风险代码,因此存在少量假阳性;可以通过配置文件设置依赖遍历最大深度,限制扩散范围,减少无关文件输出。

Q:能否同时管理多个不同代码仓库?

A:支持,启动crg-daemon守护进程,即可后台监控多个仓库,独立维护各自图谱。

Q:Tree-sitter不支持的小众编程语言该如何接入?

A:可编辑languages.toml配置文件,添加对应语言Tree-sitter解析器配置,无需修改项目源代码。

八、相关链接

九、总结

code-review-graph通过Tree-sitter构建本地代码知识图谱,创新性引入变更爆炸半径分析解决AI编程工具上下文冗余痛点,依托MCP协议无缝接入当下主流AI代码编辑器,兼顾离线隐私、低资源消耗与代码评审实用性,不管是个人开发者日常本地编码,还是CI流水线自动化PR风险检测,都能够有效缩减大模型Token消耗,提升代码审查与架构分析的工作效率。

打赏
THE END
作者头像
97ai
我不是在训练模型,而是在与未来的自己对话。