code-review-graph:AI 代码审查的「导航卫星」|SSP Github Daily
每日开源 · 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
📎 信息来源
-
GitHub 仓库主页:tirth8205/code-review-graph(Stars 19,762,Forks 2,107,MIT License)
-
GitHub API 确认:api.github.com/repos/tirth8205/code-review-graph(Python,714 Commits,created 2026-02-26)
-
官方 README 与中文翻译 README.zh-CN.md
-
基准测试文档:docs/REPRODUCING.md
-
使用文档:docs/USAGE.md、docs/COMMANDS.md、docs/FAQ.md、docs/GITHUB_ACTION.md
-
GitHub Trending 今日榜单(2026-07-25):github.com/trending
-
腾讯云开发者社区技术解读
每日开源 · 第 110 期 · 2026-07-25
本文基于公开仓库信息与官方文档整理,仅供技术学习参考
**
更多推荐



所有评论(0)