tirth8205/code-review-graph
Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.
code‑review‑graph – 用于 AI 辅助代码审查的本地代码知识图谱
这是什么 – 一个 Python 包,使用 Tree‑sitter 解析仓库,将生成的抽象语法树信息存储在 SQLite 图数据库中,并向任何支持 模型上下文协议 (MCP) 的 AI 编程助手提供该图的一个极小、聚焦相关性的子集。目标是用 影响范围 查询替代“读取整个代码库”的简单方法,仅返回可能受变更影响的文件、函数和测试。
为何重要 – 大型项目可能包含数十万源代码标记。将整个代码库输入大语言模型(LLM)每次请求需消耗数千个标记,拖慢审查流程。通过仅用数千个标记(典型仓库约减少 65 倍)回答相同问题,助手运行更快、成本更低,且幻觉风险更小。
核心理念
| 步骤 | 发生了什么 |
|---|---|
| 解析 | 工具为每种受支持的语言(Python、JS/TS、Go、Rust、Java、C/C++……以及笔记本)运行 Tree‑sitter 解析器。提取函数、类、导入、调用点和测试定义等节点,并将其作为图节点和边(调用、继承、导入关系)写入。 |
| 存储 | 所有节点/边均保存在本地 SQLite 数据库中。可选添加向量嵌入(sentence‑transformers、Gemini、MiniMax、Voyage AI,或任何 OpenAI 兼容端点),用于语义搜索。 |
| 更新 | 通过预提交钩子、监听模式守护进程或手动运行 code-review-graph build 命令,仅对 SHA‑256 哈希值发生变化的文件进行增量重新解析,然后更新受影响的子图。 |
| 查询 | 当 AI 工具请求审查上下文时,MCP 服务器执行 影响范围 查询:从变更的文件开始,沿调用/导入边遍历,添加依赖文件和相关测试,返回最小的源码片段集合以及少量结构化元数据。 |
快速入门(来自 README)
pip install code-review-graph # 或 pipx install
code-review-graph install # 自动检测你的 AI 编程工具,写入 MCP 配置,安装钩子/技能
code-review-graph build # 初始解析仓库
install 会检测大量支持的平台(Codex、Claude Code、Cursor、Zed、Continue、GitHub Copilot、Gemini CLI 等),并注入相应的 MCP 配置,使助手能自动使用该图。
你也可以干净地卸载:
code-review-graph uninstall --dry-run # 预览
code-review-graph uninstall --yes # 无需提示直接应用
主要功能(如 README 所列)
- 增量更新 – 仅重新解析已更改的文件;在 3 k 文件仓库中修改两个文件耗时约 2.5 秒。
- 广泛的语言支持 – 支持 30+ 种语言,包括 Jupyter/Databricks 笔记本;对 PHP/Laravel 和 Java/Spring 提供框架感知解析。
- 框架感知边 – Laravel 路由、Blade 模板、Spring DI 调用、WebFlux 路由、Temporal 工作流等。
- 影响范围分析 – 返回受变更可能影响的最小文件/函数/测试集合。
- MCP 兼容服务器 – 可与任何理解模型上下文协议的助手协同工作。
- GitHub Action – 在 CI 中运行相同分析,以风险评分形式在 PR 中发布固定评论,并可通过
fail-on-risk阻止合并。 - 语义搜索 – 可选的向量嵌入,来自多种提供方,支持更丰富的关键词查询。
- 自定义语言支持 – 通过添加
languages.toml文件,将未知扩展名映射到现有 Tree‑sitter 语法。
基准测试(来自 README)
- 标记减少 – 在六个开源仓库(fastapi、flask 等)中,平均每问题减少约 63 倍标记数。最佳情况达 358 倍。
- 影响分析质量 – 与图生成的基准数据相比,平均 F1 ≈ 0.69(由于构造方式,召回率恒为 1.0,精确率故意较低以避免遗漏依赖)。
- 构建统计 – 典型仓库(约 6 k 节点,30 k 边)在干净检出状态下构建耗时约 40 秒。
局限性(已承认)
- “召回率 = 1.0” 指标存在循环,因为基准数据源自同一图。
- 对极小、单文件修改,图数据包可能比直接读取文件还大。
- 搜索排序仍需改进;部分查询(如 Express 模块)可能无结果。
- 流分析在 Python 和 PHP/Laravel 上最强;JavaScript 和 Go 仍需优化。
- 分析故意保守,因此在大型依赖图上精确率可能偏低。
谁应该使用它?
- 开发者:依赖基于 LLM 的代码审查助手,希望助手仅看到大型代码库中真正相关的部分。
- 团队:运行 AI 辅助 CI 检查,需要一种确定性、离线方式计算风险评分的审查上下文。
- 工具开发者:构建新的 MCP 兼容代理;可将提供的服务器集成到任何编辑器或 CLI 中。
如何深入了解
- 完整使用指南:
docs/USAGE.md - 命令参考:
docs/COMMANDS.md - GitHub Action 详情:
docs/GITHUB_ACTION.md - 基准测试复现步骤:
docs/REPRODUCING.md - 社区:徽章栏中的 Discord 链接,官网在 code‑review‑graph.com。
总结 – code‑review‑graph 是一个真正的开源 AI 工具项目,构建了一个语言感知、增量更新的代码图谱,并通过 MCP 暴露,使基于 LLM 的审查者能以显著更小、更精确的上下文工作。
相关
- 项目
- 项目
- 项目
- 项目
- 项目