每日开源 · 110 期

2026-07-25 · 早间篇

🗺️

code-review-graph

by tirth8205

AI 代码审查的「导航卫星」:用 Tree-sitter 把代码库解析成持久知识图谱,节点是函数/类/导入,边是调用/继承/测试覆盖。AI 编码工具不再全量扫描,而是通过 MCP 只读取「影响半径」内的精准上下文。中位数 Token 降低 82 倍,增量更新 < 2 秒,28+ 语言,MIT 开源。

19.8k**+663**

Stars

714

Commits

104

Pull Requests

MIT

License

PythonTree-sitterMCP ProtocolKnowledge GraphLocal-first

⚠️ 本文基于公开仓库信息与官方文档整理,仅供技术学习参考。

🎯 一句话定位

code-review-graph 是一个本地优先的代码智能图谱引擎。它用 Tree-sitter 解析你的代码库,构建一张持久的图:函数、类、导入是节点,调用关系、继承链、测试覆盖是边。当 AI 编码工具(Claude Code、Cursor、Codex、Copilot 等)需要做代码审查或回答架构问题时,不再盲目读取整个代码库,而是通过 MCP 协议查询这张图,只获取「影响半径」内的精准上下文。实测 Token 消耗中位数降低 82 倍

🔥 核心机制:从全量扫描到精准导航

1. 三步建图

  • 🌳

    Tree-sitter 解析:代码 → AST,提取函数、类、导入、调用点

  • 🕸️

    图存储:节点(函数/类/导入)+ 边(调用/继承/测试覆盖),存为 SQLite

  • 🔄

    增量更新:文件保存或 git 提交触发,仅重新解析变更文件,2,900 文件项目 < 2 秒

2. 影响半径分析(Blast-radius)

当某个文件发生变更时,图引擎会沿着调用链反向追踪:谁调用了这个函数?哪些测试覆盖了它?哪些类继承了它?这就是变更的**「影响半径」**。AI 只需读取这十几个文件,而非扫描整个项目。

Monorepo 实战数据:某 27,700+ 文件的项目中,图引擎排除了 27,700+ 个无关文件,仅让 AI 读取约 15 个真正相关的文件。

3. MCP 精准投喂

图构建完成后,code-review-graph 通过 MCP 协议向 AI 助手暴露 30 个工具。AI 不再需要「打开整个文件夹」,而是按需调用工具:

get_minimal_context_tool

超紧凑上下文(~100 tokens),首选调用

get_impact_radius_tool

变更文件的影响半径

get_review_context_tool

Token 优化的审查上下文

query_graph_tool

查询调用者、被调用者、测试、继承

traverse_graph_tool

BFS/DFS 遍历,可设 token 预算

semantic_search_nodes_tool

语义搜索代码实体

get_hub_nodes_tool

查找架构热点(连接最多)

get_bridge_nodes_tool

通过介数中心性找架构瓶颈

detect_changes_tool

风险评分的变更影响分析

refactor_tool

重命名预览、死代码检测

📊 基准测试:Token 效率

针对 6 个真实开源仓库(13 次提交)的自动化评估,测量「全量读取」vs「图查询」的 Token 消耗:

仓库 全量 Token 图查询 Token 降低倍数
fastapi
951,071
2,169
528.4x
code-review-graph 自身
208,821
2,495
93.0x
gin
166,868
1,990
91.8x
flask
125,022
1,986
71.4x
express
135,955
3,465
40.6x
httpx
89,492
2,438
38.0x

中位数降低 ~82 倍(范围 38x – 528x)。所有配置固定上游 SHA、Leiden 社区检测器使用固定种子、CPU 上嵌入确定性——不同机器运行结果完全一致。完整复现指南见 docs/REPRODUCING.md

🛠️ 功能全景

能力 说明
增量更新
仅重新解析变更文件,后续更新 < 2 秒
广泛语言覆盖
Python, JS/TS/TSX, Go, Rust, Java, C/C++, C#, Ruby, Kotlin, Swift, PHP, Scala, Solidity, Dart, R, Perl, Lua, Elixir, Zig, PowerShell, Julia, Vue/Svelte SFC, Astro, Jupyter (.ipynb) 等 28+
自定义语言
无需 fork,languages.toml 配置即可添加 Tree-sitter 支持的任何语言
语义搜索
向量嵌入(sentence-transformers / Gemini / OpenAI 兼容端点)
社区检测
Leiden 算法自动聚类,过大社区递归分割
交互式可视化
D3.js 力导向图,支持搜索、社区切换
Hub / Bridge 检测
架构热点与瓶颈识别(介数中心性)
异常评分
检测跨社区、跨语言的意外耦合
知识缺口
孤立节点、未测试热点、薄弱社区
执行流追踪
从入口点追踪调用链,按关键度排序
风险评分审查
PR 级变更映射到受影响函数、测试缺口
图差异
比较不同时间的图快照
导出格式
GraphML (Gephi/yEd)、Neo4j Cypher、Obsidian Wiki、SVG
记忆循环
问答结果持久化为 Markdown,图从查询中不断成长
Wiki 生成
从社区结构自动生成 Markdown Wiki
多仓库注册
跨仓库搜索与管理
CI / GitHub Action
风险评分 PR 审查,本地运行,源码不外出

⚡ 快速开始

# 1. 安装(Python 3.10+) pip install code-review-graph # 或: pipx install code-review-graph# 2. 自动检测并配置所有支持的 AI 平台 code-review-graph install # 3. 解析代码库(500 文件约 10 秒) code-review-graph build # 4. 然后向 AI 助手提问# “Build the code review graph for this project”# 常用命令 code-review-graph update # 增量更新 code-review-graph watch # 监听模式,文件变更自动更新 code-review-graph visualize # 交互式 HTML 可视化 code-review-graph detect-changes # 风险评分变更分析 code-review-graph eval # 运行基准测试

支持平台自动检测:Codex、Claude Code、Cursor、Windsurf、Zed、Continue、OpenCode、Antigravity、Gemini CLI、Qwen、Kiro、Qoder、GitHub Copilot(VS Code + CLI)。

🏗️ 技术栈

层级 技术选型
语言
Python 3.10+
解析器
Tree-sitter(AST 提取)+ tree_sitter_language_pack
图存储
SQLite(本地 .code-review-graph/ 目录,无需外部数据库)
图算法
Leiden 社区检测、介数中心性、BFS/DFS 遍历
向量嵌入
sentence-transformers / Google Gemini / OpenAI 兼容端点
搜索
FTS5 混合搜索(关键词 + 向量相似度)
可视化
D3.js 力导向图
协议
MCP(Model Context Protocol)
CI
Composite GitHub Action
包管理
uv / pip / pipx 均支持

💡 三个使用场景

  • 🔍

    架构探索:新入职开发者问「认证系统怎么工作的?」图查询返回调用链、关键函数和社区边界,AI 用 2,000 tokens 回答,而非读取 200 个文件

  • 📝

    PR 审查:提交一个 3 文件变更,图引擎计算影响半径,发现 2 个未覆盖的调用点和 1 个跨社区耦合,AI 精准指出风险

  • 🧹

    重构决策:想重命名一个核心函数,refactor_tool 预览所有受影响位置,避免遗漏

优势

  • Token 效率惊人:中位数 82 倍降低,fastapi 项目最佳 case 达 528 倍——直接降低 AI 编程工具的 API 成本

  • 本地优先:SQLite 存储在项目目录,源码不外出,GitHub Action 也在 CI runner 本地运行

  • 28+ 语言支持几乎覆盖所有主流编程语言,还可通过 languages.toml 自定义添加

  • MCP 原生:30 个工具通过标准 MCP 协议暴露,兼容 Claude Code / Cursor / Codex / Copilot 等所有主流平台

  • 增量更新 < 2 秒:大型项目持续索引无压力,watch 模式自动跟踪变更

  • 工程成熟度高:714 commits、104 PRs、多语言 README、完整文档(USAGE / COMMANDS / FAQ / TROUBLESHOOTING / ROADMAP)、可复现基准测试

  • 丰富的分析能力:影响半径、Hub/Bridge 检测、社区聚类、知识缺口、异常评分、执行流追踪——不仅是「少读」,更是「读懂」

  • MIT 开源:完全免费,可商用

**

⚠️

劣势与注意事项

  • 仅支持已跟踪文件:git 仓库中只索引 git ls-files 的文件,未跟踪文件被忽略;非 git 环境需手动管理

  • 嵌入仅到函数签名:当前只嵌入函数签名(~10 tokens/节点),body/docstring 嵌入已列为后续任务

  • Python 运行时依赖:需要 Python 3.10+,对纯前端/Node 团队不够友好

  • 首次构建有开销:500 文件约 10 秒,大型 monorepo 首次索引可能需要数分钟

  • GraphRAG 竞品涌现:CocoIndex、CodeGraph、GitNexus 等也在做代码知识图谱,差异化竞争加剧

🎯 适合谁用

  • 💰

    AI 编程工具重度用户:每天烧大量 Token 做代码审查或架构探索的团队,想显著降低 API 账单

  • 🏢

    Monorepo 维护者:大型代码库中,AI 全量扫描太慢、Token 太贵,需要精准上下文

  • 🔧

    代码审查流程团队:希望在 CI 中自动运行风险评分审查,作为合并门禁

  • 🏗️

    架构师:需要 Hub/Bridge 检测、社区聚类、知识缺口分析来理解系统演化

  • 🔒

    隐私敏感团队:源码不能上传外部服务,需要完全本地运行的代码智能方案

⭐ 去 GitHub 点亮 Star

📎 信息来源

  1. GitHub 仓库主页:tirth8205/code-review-graph(Stars 19,762,Forks 2,107,MIT License)

  2. GitHub API 确认:api.github.com/repos/tirth8205/code-review-graph(Python,714 Commits,created 2026-02-26)

  3. 官方 README 与中文翻译 README.zh-CN.md

  4. 基准测试文档:docs/REPRODUCING.md

  5. 使用文档:docs/USAGE.md、docs/COMMANDS.md、docs/FAQ.md、docs/GITHUB_ACTION.md

  6. GitHub Trending 今日榜单(2026-07-25):github.com/trending

  7. 腾讯云开发者社区技术解读

每日开源 · 第 110 期 · 2026-07-25

本文基于公开仓库信息与官方文档整理,仅供技术学习参考

**

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐