news 2026/9/19 5:23:17

code-review-graph 完整指南:代码审查 token 省 65 倍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
code-review-graph 完整指南:代码审查 token 省 65 倍

code-review-graph 完整指南:代码审查 token 省 65 倍

【免费下载链接】code-review-graphLocal-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.项目地址: https://gitcode.com/GitHub_Trending/co/code-review-graph

code-review-graph 是一个本地优先的代码图谱工具:用 Tree-sitter 把代码库解析成持久化结构图,再通过 MCP(一种让 AI 助手调用外部工具的标准协议)和命令行,只喂给 AI 助手最小必要上下文。官方基准里,读完整 flask 仓库要 14 万 token,从图里拿答案只要约 2 千。

AI 代码审查为什么费 token

让 AI 审查一次改动时,它的默认动作是"能读就读"——把可能相关、也可能不相关的文件统统塞进上下文。仓库越大,浪费越狠:token 烧得快、响应变慢,模型注意力还被无关代码稀释。

code-review-graph 的定位就是挡在 AI 前面的过滤器:先算清楚这次改动真正波及哪些文件,再让助手只读这些,其余一概不碰。

三步装完:三分钟跑起来

pip install code-review-graph code-review-graph install code-review-graph build
  • install会自动检测你机器上的 AI 工具(Cursor、Claude Code、Codex、Zed 等十几类),逐个写好 MCP 配置,重启编辑器即可;只想配某一个就加--platform cursor,想先看会改哪些文件就加--dry-run
  • build首次构建看仓库规模,约 3,000 个文件的仓库冷构建约 40 秒,几百文件的小项目 10 秒左右。

之后就不用管图了:开 watch 模式持续监听,或者靠各平台支持的 git 钩子,在文件保存和提交时自动增量更新。

它是怎么做到的:从源码到最小上下文

打个比方:出门前先有一张城市地图,某条路施工了,你只需要看那一带的替代路线,不用重画整张地图。

拆成三步看:

  1. 解析成图。parser 模块 用 Tree-sitter(一个能把源码快速变成语法树的增量解析器)提取每个文件里的函数、类、导入和调用点,边是调用、继承、测试覆盖这些关系。语言映射表EXTENSION_TO_LANGUAGE加四张节点类型表驱动了 30 多种语言的解析——Python、TypeScript、Go、Rust、Java、C/C++ 都在内,连 Jupyter Notebook(.ipynb)也不落下。
  2. 存进 SQLite。节点和边落在本地.code-review-graph/目录的 SQLite 文件里,不依赖云服务,数据不出机器。
  3. 沿边算影响范围。有文件变更时,系统从被改动的函数出发,沿依赖边做 BFS(广度优先搜索,一层层往外扩散),把受影响的调用方、依赖方和测试全部收进来——这就是"影响范围"。AI 拿到的只是这份最小文件集,而不是整个仓库。

增量这条路径值得单独说:incremental.py 先用git diff拿到变更文件,再靠图里现成的导入/调用边找出依赖方,而 SHA-256 哈希没变的文件直接跳过、不重新解析。所以"重新解析数"只跟你改了几个文件有关,跟依赖链有多长无关。

数据说话:65 倍削减怎么来的

数字来自自动评估跑在 6 个真实开源仓库、13 个提交上的结果,code-review-graph eval --all即可复现:

指标数值
token 削减中位数约 65×(区间 36×–376×)
影响精度 F1(精确率与召回率的调和平均)0.693
多跳检索任务均分0.909(11 项任务)
增量更新约 3,000 文件仓库,空更新 1.4 s,改 2 个文件约 2.5 s

两个数字要会读:

  • 影响精度跑的是 graph-derived 模式,真值本身来自同一张图,属于"循环上界"。0.693 应理解为天花板,而不是"答对了 69%"。
  • 系统预测偏多是刻意设计:最坏的一次是 10 个文件的改动被标出 33 个。设计取舍写得很直白——漏掉一个依赖,比让 AI 多读一个文件代价大得多。

能帮你解决哪些事

  • 🔍合并前审查detect-changes(默认对比HEAD~1)把 diff 映射到受影响的函数、执行流和测试缺口,给出带风险评分的报告,--brief只留风险摘要。
  • 架构瓶颈定位:枢纽节点工具找出连接数最多的"热点",桥梁节点按介数中心性找出"断了就断一片"的桥。
  • 单次变更影响面:问一句"改这个文件会波及什么",图直接返回调用方、依赖方与测试清单。
  • 跨仓库搜索register注册多个仓库后,跨仓库工具能一次搜全部。
  • 新人熟悉架构:内置的 5 个 MCP 提示词模板(审查、架构、调试、入职、合并前检查)可以直接基于图结构生成上手材料。

上手前该知道的事

  • 排除规则:在仓库根目录建.code-review-graphignore,写generated/**vendor/**这类模式。注意 git 仓库里只索引被跟踪的文件(git ls-files),gitignore 掉的内容本来就跳过;这个文件管的是"已跟踪但要排除",或 git 不可用的场景。
  • 嵌入搜索怎么配:默认走 FTS5 关键词加混合检索;要语义向量嵌入,选本地 sentence-transformers、Google Gemini、MiniMax 或 OpenAI 兼容端点(vLLM、LocalAI 等)。OpenAI 兼容那类不用装额外依赖,设好CRG_OPENAI_BASE_URLCRG_OPENAI_API_KEYCRG_OPENAI_MODEL三个环境变量,给embed_graphprovider="openai"就行。
  • 模型别选预览版:带-preview/-beta/-exp后缀的嵌入模型可能悄悄改维度或下线,一旦维度变了,所有节点都得重嵌。用 GA 稳定版。
  • 环境:Python 3.10+;装了 uv 的话 MCP 配置会优先用uvx,体验更顺。

它适合谁:大仓库 + AI 审查的组合

如果你的仓库不小、团队又靠 AI 做代码审查,或者经常要回答"改这里会波及什么",它值得直接进日常工具链——本地 SQLite,隐私上也省心。反过来,几十个文件的小项目、或者没在用任何支持 MCP 的 AI 编码工具时,收益就很有限,整库读一遍也不心疼。

收尾

code-review-graph 把 AI 代码审查从"整库重读"拉回"定点阅读",核心动作就三个:建图、增量追踪、只喂最小上下文。想验证它值不值,挑一个真实仓库跑一遍 install,看一次审查的 token 账单就明白了。

仓库内文档延伸阅读:README、使用手册、架构说明。项目采用 MIT 许可。

【免费下载链接】code-review-graphLocal-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.项目地址: https://gitcode.com/GitHub_Trending/co/code-review-graph

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 5:23:07

创意写作AI提示词:从一句话到成稿的3个工作流实战指南

创意写作AI提示词:从一句话到成稿的3个工作流实战指南 【免费下载链接】awesome-prompts Curated list of chatgpt prompts from the top-rated GPTs in the GPTs Store. Prompt Engineering, prompt attack & prompt protect. Advanced Prompt Engineering pap…

作者头像 李华
网站建设 2026/9/19 5:22:27

AI教材写作工具:技术架构与教育内容生产革新

1. 项目背景与核心价值去年帮某高校出版社做教材开发时,编辑部主任给我看了一组数据:传统教材编写平均需要18个月,而市场需求响应周期已缩短到6个月以内。这个矛盾催生了我们今天要讨论的AI教材写作工具——它正在重塑教育内容的生产方式。这…

作者头像 李华
网站建设 2026/9/19 5:21:25

Rust+Vue桌面开发:从224MB到4.7MB的跨平台重构

1. 为什么 Electron 的“224MB”成了行业心病:从安装包体积看跨平台桌面开发的隐性成本你有没有在应用商店里点开一个“轻量级笔记工具”,结果下载进度条卡在 98%、手机提示“存储空间不足”?或者给客户演示一款刚上线的内部管理软件&#xf…

作者头像 李华
网站建设 2026/9/19 5:20:25

图像测量仪如何实现0.001mm级在线测径

1. 为什么发动机活塞销的直径误差0.008mm就足以让整台发动机报废?我第一次在产线现场看到简博斯图像测量仪报出“活塞销径向偏差超差0.008mm”时,车间老师傅直接把刚下线的整批200件活塞销全打回重检。他没看数据,只摸了摸其中一根销子表面—…

作者头像 李华