code-review-graph:用代码依赖图让 AI 代码审查更精准、更省 Token

发布时间:2026/7/11 15:05:58
code-review-graph:用代码依赖图让 AI 代码审查更精准、更省 Token code-review-graph用代码依赖图让 AI 代码审查更精准、更省 Token一、核心观点停止燃烧 Token开始智能审查。AI 编码工具在执行代码审查任务时往往会重复读取大量无关代码造成严重的 Token 浪费。code-review-graph通过构建代码库的结构化依赖图让 AI 助手只读取真正相关的文件从而大幅降低 Token 消耗提升审查效率。二、关键信息2.1 项目定位属性内容项目名称code-review-graph核心技术Tree-sitterAST 解析 MCP 协议适用场景AI 代码审查、大型仓库/Monorepo、CI/CD 流水线语言要求Python 3.10协议MIT 开源2.2 工作原理代码库文件 ↓ Tree-sitter 解析 AST抽象语法树 ↓ 图结构化 节点函数/类/导入 边调用/继承/测试覆盖 ↓ 审查时查询 最小相关文件集合 → 输出给 AI 助手via MCP三个关键机制爆炸半径分析Blast-radius Analysis文件变更时图追踪所有调用者、依赖项和相关测试AI 只读取这些受影响文件而非扫描整个项目增量更新 2 秒文件保存或 commit hook 触发增量更新通过 SHA-256 哈希差分只重新解析变更文件2,900 个文件的项目重建索引 2 秒Monorepo 漏斗过滤大型 Monorepo 中27,700 文件被排除在审查上下文之外实际只读取约15 个文件2.3 支持平台通过code-review-graph install自动检测并配置以下平台Codex / Cursor / Claude Code / Gemini CLIKiro / GitHub Copilot (VS Code) / GitHub Copilot CLI2.4 语言覆盖范围支持超过 30 种语言/格式包括Python、JavaScript/TypeScript/TSX、Go、Rust、Java、C/C、C#、Ruby、Kotlin、Swift、PHP、Scala、Solidity、Dart、R、Perl、Lua/Luau、Objective-C、Shell、Elixir、Zig、PowerShell、Julia、SQL、Vue/Svelte SFCs、Astro、Jupyter Notebooks.ipynb、Verilog/SystemVerilog 等2.5 性能基准Benchmark核心数据中位数 Token 减少约 82 倍仓库原始 Token 数图查询 Token 数降低倍数fastapi951,0712,169528.4xcode-review-graph208,8212,49593.0xgin166,8681,99091.8xflask125,0221,98671.4xexpress135,9553,46540.6xhttpx89,4922,43838.0x⚠️注意常被引用的528x 是最优单案例fastapi中位数才是 ~82x这是更真实的参考值。典型问题的图返回约2,000–3,500 tokens精准命中内容Token 估算误差在 GPT-4 实际 Token 数的~1% 以内影响精准度平均 F1 0.71Recall 1.0注上界因为 ground truth 来自同一图存在循环验证三、代码 / 示例3.1 快速开始# 安装 pip install code-review-graph # 或使用 pipx pipx install code-review-graph # 自动检测并配置所有支持平台 code-review-graph install # 解析代码库构建图 code-review-graph build3.2 指定平台安装code-review-graph install --platform cursor # 仅配置 Cursor code-review-graph install --platform claude-code # 仅配置 Claude Code code-review-graph install --platform copilot # 仅配置 GitHub Copilot (VS Code)3.3 自定义语言支持无需 Fork在.code-review-graph/languages.toml中添加[languages.erlang] extensions [.erl] grammar erlang function_node_types [function_clause] class_node_types [record_decl] import_node_types [import_attribute] call_node_types [call]3.4 GitHub Action 集成# .github/workflows/code-review-graph.yml on: pull_request: permissions: contents: read pull-requests: write jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - uses: tirth8205/code-review-graphv2.3.6 with: github-token: ${{ secrets.GITHUB_TOKEN }}每次 PR 自动发布风险评分评论含影响函数、执行流、测试缺口支持fail-on-risk参数作为合并门控知识图谱完全在 CI Runner 本地构建源码不发送到任何外部服务四、个人启发只读相关才是 AI 工具集成的正确姿势大多数工具默认给越多上下文越好但本项目证明精准的结构化上下文远优于海量的原始文本。这对所有 RAG 和 AI Agent 工程都有借鉴意义。图结构是代码理解的天然载体函数调用、继承、测试覆盖本质上就是图关系Tree-sitter 图数据库的组合是解析代码语义的强力工具值得在代码智能方向深入探索。本地优先Local-first是企业采用 AI 工具的关键该项目强调图的构建和查询完全在本地/CI Runner 完成源码不离开环境这对安全敏感的企业场景至关重要也是开源工具赢得信任的核心策略。基准测试要诚实项目主动区分最优案例 528x和中位数 82x这种透明度非常值得学习——好的技术文档应该帮助用户建立合理预期而非只展示最好看的数字。五、延伸思考图的更新策略与一致性增量更新在 2 秒内完成但在大型团队并发提交时如何保证图的一致性和并发安全是否需要类似数据库的 MVCC 机制AI 依赖图 vs 传统静态分析工具code-review-graph与 SonarQube、Semgrep 等静态分析工具的定位有何本质区别二者是否可以互补——用静态分析找安全漏洞用依赖图优化 AI 的上下文窗口爆炸半径过度预测的边界在哪里项目刻意选择宁可多报、不漏依赖的策略但在超大型 Monorepo 中过度预测是否会抵消精准查询的收益是否存在一个最优的预测精度与召回率平衡点