尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

为 AI 代码审查构建本地代码结构图:code-review-graph 如何省 65 倍 token

为 AI 代码审查构建本地代码结构图:code-review-graph 如何省 65 倍 token 为 AI 代码审查构建本地代码结构图code-review-graph 如何省 65 倍 token【免费下载链接】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 审查一处改动它却先把 14 万 token 的代码库通读一遍才肯开口——这是 AI 代码审查最大的浪费之一。code-review-graph 就是冲着这个问题来的它在本地把代码仓库解析成一张持久化的代码结构图通过 MCP可以理解为让 AI 调用标准工具的插座和命令行把这张图接入 AI 助手让它每次只拿到回答当前问题所需的最小上下文。图始终留在你自己的机器上不经过任何云服务。把代码库变成一张可查询的图核心思路很简单先把代码变成关系。code-review-graph 用 Tree-sitter一个把源码变成结构化语法树的解析器解析每个文件抽出两类东西节点即函数、类、导入语句边即节点之间的调用、继承、测试覆盖等关系。整张图持久化在.code-review-graph/目录下的一个 SQLite 文件里不需要外部数据库也不需要云端服务。解析逻辑在 code_review_graph/parser.py 中覆盖 Python、JavaScript/TypeScript/TSX、Go、Rust、Java、C/C、C#、Ruby、Kotlin、Swift、PHP、Solidity、SQL、shell 脚本等连 Jupyter/Databricks Notebook.ipynb也在支持之列。它优先使用 Tree-sitter必要时回退到专用解析器想支持自己团队的语言还可以走 custom_languages 的扩展机制。有了这张地图之后谁调用了这个函数这个类被哪些测试覆盖就不再是全文检索问题而是一次图查询。AI 助手可以通过 query_graph 工具按需查询调用方、被调用方、测试、导入、继承等关系。装完、建图、问出第一句结论门槛很低Python ≥ 3.10PATH 里有 git。三条命令完成安装和建图pip install code-review-graph code-review-graph install code-review-graph buildinstall会自动检测你在用哪些 AI 编码工具Codex、Claude Code、Cursor、Windsurf、Kiro 等为每一个写入对应的 MCP 配置并把支持图查询的指令注入平台的规则文件一次安装配好所有平台等于直接给你的 AI 助手接上了 MCP 代码智能。安装完成后重启编辑器或工具即可。build负责解析整个代码库约 500 个文件的项目大概 10 秒建完。建好之后在任何接入的 AI 助手里输入这句话触发Build the code review graph for this project从此助手手里有 30 个图工具可以调用从 get_minimal_context 那种约 100 token 的超紧凑上下文起步另外还有 5 个工作流模板审查、架构、调试、入职、合并前检查以 MCP 提示词形式提供。所有工具统一注册在 code_review_graph/main.py。它到底怎么省 token影响范围分析与 2 秒增量索引省 token 靠的是两个机制。影响范围分析Blast Radius某个文件变了图沿依赖边做 BFS 遍历默认深度 2 层、结果带上限把可能受影响的调用方、依赖方和测试一网打尽。AI 不再扫描整个项目只读这些文件。审查 PR 时detect_changes 工具还会把 diff 映射到受影响的函数、执行流和测试缺口并附上风险评分。增量代码索引开启钩子或 watch 模式后保存文件即触发增量更新——先用 git diff 找出变更文件再用图自身的导入/调用边找出依赖方最后只重新解析 SHA-256 哈希确实变化的文件。即便约 2,900 个文件的项目也能在 2 秒内完成重索引。逻辑位于 code_review_graph/incremental.py并行解析的 worker 数默认取 CPU 核数与 8 的较小值。效果摆在这里flask 仓库上通读整个语料要 143,594 个 token而图给出的答案只要 2,196 个——从 143,594 到 2,196约 1/71。项目自身仓库里208,821 个源码 token 会收敛为每次提问约 3,190 个约 1/68。仓库越大这个差距越夸张。 实测6 个真实仓库的可复现数据上面的数字不是宣传口径。项目自带一套自动化评估器code-review-graph eval --all会克隆 6 个真实开源仓库共 13 个提交并把每个基准重跑一遍token 效率用 5 个样本问题比如认证如何工作主入口点是什么在 6 个仓库上取平均削减范围 36×–376×中位数约 65×fastapi 上达到 375.6×即从 948,793 到 2,653约 1/376。影响精度graph-derived 模式下平均 F1 为 0.693。项目明确标注这一口径是循环上界——基准答案本身就来自图应把它当上限看而且过预测是刻意设计漏掉一个依赖比多读一个文件糟糕得多。多跳检索11 个任务平均得分 0.909每个任务都是先用混合搜索找到锚点节点、再沿图走一跳的两跳工具链。估算校准图回答侧采用 chars/4 的近似与 OpenAI 的 cl100k_base 分词器对照后聚合误差在 0.5% 以内222 个文件、2.2 MB 混合源码。装上 tiktoken 后跑code-review-graph detect-changes --brief --verify还能在 Token Savings 面板加一行Verified (tiktoken)对照真实分词。整套流程是钉死的上游仓库锁定固定 SHA社区检测固定随机种子默认 42嵌入走 CPU 推理——两台机器跑出来的结果只会有浮点级差异。完整步骤和捕获环境写在 docs/REPRODUCING.md。 进阶玩法 语义搜索与嵌入后端默认状态下图里已有关键词 FTS5 全文的混合搜索。想要语义搜索装上 embeddings 可选依赖再挑一个后端本地 sentence-transformers默认模型 all-MiniLM-L6-v2全在机器上跑、OpenAI 兼容端点官方 OpenAI、Azure或 vLLM、LiteLLM、LocalAI 这类自建网关设置环境变量后给 embed_graph 传 provideropenai 即可、Google Gemini 或 MiniMax设置对应 API Key。一个提醒目前只嵌入函数签名每节点约 10 个 token函数体还没纳入别指望长上下文模型在这种输入长度上拉开多大差距。图可视化与导出到别的工具code-review-graph visualize生成 D3.js 力导向布局的交互式 HTML 页面支持搜索、社区图例切换、按度数缩放节点。加--format参数还能导出 GraphMLGephi、yEd 可直接打开、SVG 静态图、带 wiki 链接的 Obsidian 库或 Neo4j Cypher。多仓库管理与 watch/钩子自动保鲜register可以把多个仓库放进同一个注册表repos列出它们cross_repo_search 工具跨全部仓库搜索。日常保鲜靠两样watch在你干活时持续更新图git 钩子在每次提交时自动触发更新你基本不用手动想起update。配置要点默认只索引 git 跟踪的文件走 git ls-files被 gitignore 的文件天然跳过。要排除被跟踪的路径在仓库根目录建一个.code-review-graphignoregenerated/** *.generated.ts vendor/** node_modules/**可选依赖按 extras 安装最常用的两行pip install code-review-graph[embeddings] # 本地向量嵌入 (sentence-transformers) pip install code-review-graph[communities] # Leiden 社区检测 (igraph)最常用的三个环境变量CRG_OPENAI_BASE_URLOpenAI 兼容端点地址、CRG_OPENAI_API_KEY密钥、CRG_OPENAI_MODEL模型名。base URL 指向 localhost 时会自动跳过云端出口警告。项目采用 MIT 许可证。适合谁经常让 AI 助手审查较大代码库、需要快速摸清改动影响范围、或受够了 token 账单的开发者可以直接把它纳入日常工具链——装一次钩子保持图新鲜AI 只读该读的切片。谁不需要如果你的仓库只有几十个文件全量上下文的成本本就低图的收益有限如果团队不愿意维护任何本地工具本地优先这套方案的优点也发挥不出来。延伸阅读均为仓库内文档README.md完整功能与基准细节docs/FEATURES.md功能说明docs/USAGE.md使用手册docs/COMMANDS.md命令行参考docs/architecture.md架构文档docs/schema.md数据库模式【免费下载链接】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),仅供参考
返回列表