
code-review-graph 实战指南用 Tree-sitter AST 图谱与 MCP 让 AI 代码审查省下 80% Token【免费下载链接】ag-kit项目地址: https://gitcode.com/GitHub_Trending/an/ag-kit本文基于 AG Kit 仓库中的 code-review-graph 技能文档v1.0.0完整讲解如何在大型代码库上构建「Tree-sitter 解析 SQLite 图存储 BFS 爆炸半径计算 MCP 服务」四层管线让 AI 助手只读取改动真正影响到的文件而非通读整个仓库。读完你将掌握该工具的安装配置、六大核心工作流、与 AG Kit 技能体系的组合用法以及它的边界与替代方案。为什么大型代码库会让 AI 审查既慢又贵当 AI 助手在一个 500 文件的仓库里做代码审查时默认策略是把目录里所有文件都读一遍。假设改动只涉及一个中间件文件AI 却可能为了理解上下文而读取 200 多个文件消耗 8,200 tokens——其中绝大多数与本次改动无关。这就是code-review-graph要解决的问题与其让 AI 读整个代码库不如先给它一张结构地图让它只读改动爆炸半径blast radius内的文件。从仓库结构看该技能被收纳在 AG Kit 的 .agents/skills/ 目录 下与context-compression、verify-changes等技能同属于Orchestration Memory类别见 skills.json并在官方文档站的 Skills 页面 中对外展示。它的定位不是替代代码审查而是在审查开始前先替 AI 完成哪些文件值得读的判定。Token 收益节省幅度随代码库规模放大原文档给出的 Token 影响是示意性的illustrative实际收益因代码库而异代码库类型收益模式大型 monorepo10K 文件收益最大——图谱只读取其中极小一部分文件中型应用1–5K 文件多文件改动时收益明显小型项目200 文件收益甚微——图谱自身开销可能超过节省值得强调的一点把 AI 的视野限制在爆炸半径内不仅省钱还会减少噪声、提升审查聚焦度。但仓库 CHANGELOG 中明确记录了该技能的审计过程——stripped fabricated benchmarks删除了编造的基准数据因此不要迷信任何固定的倍数请在自己仓库上实测一周再下结论见 CHANGELOG.md。Bootstrap 协议先探测再决定是否启用code-review-graph是一个**opt-in可选启用**的 MCP 服务器。在/plan流程或中型以上项目的日常使用中调用方应先执行如下探测协议确认图分析可用后再依赖它Step 1 — 检查工具是否安装Windows 用Get-Command code-review-graphmacOS/Linux 用which code-review-graphStep 2 — 检查工作区是否存在.code-review-graph/目录即索引是否已构建Step 3 — 已安装但索引缺失构建命令会扫描整个项目必须先征得用户同意才能执行code-review-graph buildStep 4 — 未安装且项目较大主动询问用户 Would you like topip install code-review-graphand build a local map to cut token usage for this project?——未经确认绝不安装或构建。这套先探测后启用的协议与 AG Kit 一贯的运行时工具只做窄策略检查、不替代用户授权的安全边界一致参见 .agents/README.md 中对 hooks 安全策略的说明。什么时候该装、什么时候该跳过原文档给出了非常明确的使用边界这里完整保留该装✅代码库500 文件频繁做跨模块依赖的多文件改动每月在 AI 助手 token 上花费$20使用monorepo、微服务或跨包 TypeScript除了省钱还希望提升审查质量跳过❌代码库200 文件以内且改动是孤立的单文件重度使用动态模式反射、运行时代码生成、动态 import追求零维护——图谱需要与代码保持同步团队尚未统一 AI 编码工具先评估再决定⚠️代码库处于200–500 文件区间——先做基准测试再投入静态与动态模式混合——在代表性提交上先试验工作原理四层管线Layer 1: PARSE → Tree-sitter 为 19 种语言构建 AST Layer 2: STORE → 节点与边写入 SQLite 图 Layer 3: TRACE → BFS 计算改动的爆炸半径 Layer 4: SERVE → MCP 将图暴露给 AI 助手图里存了什么节点Nodes文件、函数、方法、类、import、测试边EdgesA 调用 B、X import Y、TestZ 覆盖 FunctionW、ClassA 继承 ClassB元数据Metadata每个节点的名称、类型、文件路径、行号区间隐私Privacy图中只存结构元数据不存任何源代码内容支持的 19 种语言Python、TypeScript、JavaScript、Go、Rust、Java、C#、Ruby、Kotlin、Swift、PHP、C/C、Vue SFC、Solidity、Dart、R、Perl、Lua、Jupyter/Databricks notebooks。安装从 pip 包到 MCP 客户端集成前置条件Python 3.9python3 --version确认已安装 pip 或 pipx一个 MCP 兼容的 AI 客户端AG Kit、Claude Code、Cursor、Windsurf、ZedGit 管理的代码库用于增量更新Step 1安装包# 推荐隔离环境 pipx install code-review-graph # 备选最快无需永久安装 uvx code-review-graph install # 备选全局 pip pip install code-review-graphStep 2配置 MCP 客户端# 自动探测所有受支持的工具 code-review-graph install # 或指定某个平台 code-review-graph install --platform claude-code code-review-graph install --platform cursor code-review-graph install --platform windsurf此步之后务必重启编辑器——MCP 服务器在重启后才激活。Step 3构建初始图谱cd /your/project code-review-graph build代码库规模预期构建耗时500 文件10–30 秒5,000 文件2–5 分钟27,000 文件5–10 分钟Step 4开启 watch 模式推荐# 边写代码边保持图谱最新 code-review-graph watch增量更新通常2 秒内完成。若偏好手动更新code-review-graph updateStep 5验证集成打开 AI 客户端检查 MCP 连接。以 Claude Code 为例运行/mcp确认出现code-review-graph。配置ignore 文件与多仓库忽略文件.code-review-graphignore在项目根目录创建语法与.gitignore一致# 构建产物 dist/** .next/** build/** # 依赖 node_modules/** vendor/** # 生成文件 generated/** *.generated.ts *.min.js # 测试夹具若体积过大 __fixtures__/**排除生成文件和构建产物至关重要——它们会给图谱灌入大量无意义节点。多仓库设置针对微服务架构可以注册多个仓库MCP 服务器会跨所有已注册仓库提供上下文# 注册其他仓库 code-review-graph register /path/to/other/repo # 列出所有已注册仓库 code-review-graph repos六大核心工作流1. 爆炸半径分析主要用途MCP 服务器激活后这是自动发生的AI 助手在读取文件前先查询图谱只拿到受影响文件。无图谱: 改动 auth/middleware.py → AI 读取 200 文件 → 8,200 tokens 有图谱: 改动 auth/middleware.py → 图谱返回 12 个受影响文件 → 1,000 tokens2. 风险评分式改动分析code-review-graph detect-changes对每个未提交改动按风险等级打分依据包括依赖者数量dependents测试覆盖缺口改动函数是否处于关键路径高风险改动在你请求审查之前就被标记出来3. 死代码检测图谱能找出**没有入边incoming edges**的节点——没有调用者、没有 import 者、没有测试覆盖# 暴露可删除的函数/类候选 # 对成熟代码库清理冗余非常有价值4. 重构预览code-review-graph rename preview --from OldClassName --to NewClassName展示一次重命名影响到的所有文件并标记静态分析无法捕获的边界情况如动态字符串引用。5. 架构可视化code-review-graph visualize基于社区检测Leiden 算法生成交互式可视化展示模块聚类。适用场景新贡献者入职引导识别架构漂移发现耦合过度的模块6. Wiki 生成code-review-graph wiki生成代码库结构的 Markdown wiki——每个模块、公共 API、依赖关系与测试覆盖。已知局限与缓解措施局限影响缓解动态 importrequire(variable)、import(buildPath())解析器看不到依赖关系在.code-review-graphignore中手动注明或接受过度预测基于反射的调用Django signals、getattr()、Java 反射图谱中边缺失这类代码库更适合 Serena基于 LSP运行时生成代码eval、模板引擎静态阶段无法解析接受局限或从图谱中排除跨语言边界Python 调用 TypeScript API语言运行时之间没有边用多仓库注册做部分缓解图谱过期未开 watch 模式Claude 查询到过时关系任务前总是运行code-review-graph update或使用 watch 模式TypeScript 路径别名/components/...可能需要 tsconfig 解析配置检查tsconfig_resolver.py是否支持你的配置替代方案对比工具方案优点缺点最适合code-review-graphTree-sitter SQLite快、19 种语言、本地、无依赖仅静态分析通用场景、大型代码库ClaudetteGo 重写单二进制、无需 Python语言支持更少、更简单排斥 Python 的团队Serena基于 LSP语义精度深、类型解析强配置重、较慢多态密集型代码库code-graph-ragRAG 向量检索支持自然语言查询配置复杂代码库探索原生 IDE 上下文编辑器内置零配置无显式爆炸半径简单项目与 AG Kit 的集成技能互补与推荐会话架构互补技能AG Kit 技能互补方式context-compression图谱压缩输入上下文压缩技能降低输出冗长度coordinator-mode图感知的工作进程可携带精确文件清单分派verify-changes图驱动的审查之后用实际执行验证改动batch-operations图谱的爆炸半径指示哪些文件需要批量更新推荐会话架构1. 每个独立任务开启全新会话 2. 图谱预过滤上下文 → AI 只读爆炸半径 3. 上下文压缩对已完成阶段做摘要 4. 记忆系统保存关键决策供下个会话使用 5. 结果最少 token最高质量从仓库实现看AG Kit 的会话编排正是围绕这套短会话 渐进式上下文加载设计的——.agents/skills/下的技能按需渐进加载参见 .agents/README.md 对运行时发现机制的描述code-review-graph在其中扮演上下文预过滤器的角色。此外AG Kit 仓库自带的 mcp_config.json 展示了 MCP 服务器接入方式以 context7 为例code-review-graph install的原理与此一致向客户端配置文件写入mcpServers条目。最佳实践清单开发期始终开启 watch 模式——过期图谱 过期上下文排除生成文件——它们会给图谱灌入噪声先做基准测试——无图谱用 1 周、有图谱用 1 周对比 token 用量配合输出约束——图谱降低输入量提示词工程降低输出量两者叠加善用.code-review-graphignore——排除构建产物、node_modules、dist/保持会话简短——新会话 图谱 最优 token 效率微服务架构用多仓库注册。结语code-review-graph的核心哲学很朴素AI 不需要读完整个代码库才能审查一次改动。通过 Tree-sitter 解析、SQLite 图存储、BFS 爆炸半径计算和 MCP 服务四层管线它把读哪些文件的决策从 AI 的暴力搜索变成一次结构查询。它并不适合所有项目——200 文件以内的小项目、重度动态语言的代码库应该跳过——但在大型 monorepo、微服务或多包 TypeScript 项目中它是当前 AG Kit 技能体系中性价比最高的上下文优化手段之一。完整技能定义可在仓库 .agents/skills/code-review-graph/SKILL.md 中查阅其分类与描述见 skills.json。【免费下载链接】ag-kit项目地址: https://gitcode.com/GitHub_Trending/an/ag-kit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考