主题
07 - 技术原理对比与选型建议
本章整理 5 个项目的横向对比表和选型决策树,帮助你 5 分钟内选定方案。
1. 五大项目一句话总览
| 项目 | 一句话定位 |
|---|---|
| code-review-graph | 23 语言、28 MCP 工具的本地代码图谱,PR 评审 token 减 6.8×,日常编码减 49× |
| GitNexus | 浏览器 + Claude Code 全套生态:MCP + 7 Skills + Hooks + Web UI 的 KuzuDB 图谱 |
| code-graph-rag-mcp | 给 Codex / Claude Code 加 11 种语言的"图 + 语义"双索引,5.5× 比原生快 |
| Semble | CPU 上 250ms 建库 1.5ms 查询的代码搜索引擎,比 grep+read 省 98% token |
| BitFun (flashgrep) | 用 trigram 倒排索引把 grep 提速 36.1 倍,攻克 Chromium 级巨型仓库 |
2. 完整对比矩阵
2.1 技术架构
| 维度 | code-review-graph | GitNexus | code-graph-rag-mcp | Semble | BitFun (flashgrep) |
|---|---|---|---|---|---|
| 流派 | 图谱 | 图谱 | 图谱 + RAG | 语义+词法 | Grep 加速 |
| 解析器 | Tree-sitter | Tree-sitter | Tree-sitter | Tree-sitter | trigram(字节级) |
| 存储 | SQLite + FTS5 | KuzuDB | better-sqlite3 + sqlite-vec | 内存/文件 | mmap 倒排索引 |
| 嵌入 | 可选(OpenAI 兼容等) | transformers.js | 多 provider(memory/transformers/ollama/openai/cloudru) | Model2Vec 静态嵌入 | — |
| 检索算法 | 图查询 + FTS5 + 向量 | 图查询(Cypher) + BM25 + 向量 | 图查询 + 向量 + JSCPD | BM25 + Model2Vec + RRF + 代码重排 | trigram posting list 交集 |
| 语言 | 主语言 Python | Node.js | Node.js (24+) | Python | Rust |
2.2 性能
| 维度 | code-review-graph | GitNexus | code-graph-rag-mcp | Semble | BitFun |
|---|---|---|---|---|---|
| 索引速度 | 500 文件 ~10s,2,900 文件增量 <2s | 中等仓库分钟级 | 100+ 文件/秒 | 250ms / 整库 | Chromium 79s |
| 查询延迟 | 0.4–1.5ms | ~ms(KuzuDB) | <100ms | 1.5ms | 亚秒级 |
| Token 节省 | 8.2× 平均,最高 16.4× | 未公开 | 5.5× 比原生快 | ~98%(45,692→566) | 不直接节省 |
| 超大仓库(Chromium) | 一般 | 一般 | 中(batch_index) | 中 | 极佳(36.1× 加速) |
| 资源占用 | 中 | 中 | 65MB 级 | 极轻 | 索引占源码 58% |
| CPU only | ✅ | ✅ | ✅ | ✅✅ | ✅ |
2.3 语言与场景覆盖
| 维度 | code-review-graph | GitNexus | code-graph-rag-mcp | Semble | BitFun |
|---|---|---|---|---|---|
| 语言数 | 23+ + Jupyter Notebook | 11 | 11 | 通用 | 全文本(字节级) |
| 结构查询 | ✅✅✅(28 工具) | ✅✅✅(含 Cypher) | ✅✅ | ❌ | ❌ |
| 语义搜索 | ✅ | ✅ | ✅✅ | ✅✅✅ | ❌ |
| 影响分析 | ✅✅✅(爆炸半径 + 风险评分) | ✅✅✅(impact) | ✅✅ | ❌ | ❌ |
| 重构辅助 | ✅✅(refactor_tool) | ✅✅(rename) | ✅(ai_refactoring) | ❌ | ❌ |
| PR 审查 | ✅✅✅(slash 命令 + Hook) | ✅✅✅(专用 Skill) | ✅ | ❌ | ❌ |
| 多仓库 | ✅(crg-daemon) | ✅(registry) | ✅(多 MCP server) | ✅ | ✅ |
| 可视化 | D3.js + GraphML / Cypher / Obsidian / SVG | Web UI(在线 + 本地 Bridge) | — | — | — |
| 克隆检测 | — | — | JSCPD + 嵌入双引擎 | — | — |
2.4 集成与生态
| 维度 | code-review-graph | GitNexus | code-graph-rag-mcp | Semble | BitFun |
|---|---|---|---|---|---|
| MCP 工具数 | 28 + 5 prompt 模板 | 7 + Resources | 26 | 少(聚焦 search) | — |
| Claude Code | ✅✅✅(深度集成) | ✅✅✅(Skills + Hooks) | ✅(需配置 warmup=0) | ✅ | 间接 |
| Codex | ✅ | ✅ | ✅✅✅(首选) | ✅ | 间接 |
| Cursor | ✅ | ✅ | ✅ | ✅ | 间接 |
| 其他 | Windsurf/Zed/Continue/OpenCode/Antigravity/Qwen/Qoder/Kiro | Windsurf/OpenCode | Gemini CLI/Claude Desktop | OpenCode | BitFun 自家 ADE |
| Skills | — | 7 个专项 Skills | — | semble init 模板 | BitFun 内置 |
| Hooks | Git hook 增量 | PreToolUse + PostToolUse | — | — | — |
2.5 安装与运维
| 维度 | code-review-graph | GitNexus | code-graph-rag-mcp | Semble | BitFun |
|---|---|---|---|---|---|
| 安装难度 | ⭐⭐(pip 一行) | ⭐⭐⭐(npm + onnxruntime 易踩坑) | ⭐⭐⭐(tgz + Node 24+) | ⭐(pip 一行) | ⭐⭐(桌面端下载即用 / 源码 Rust+Tauri) |
| 运行环境 | Python 3.10+ | Node.js ≥18 | Node.js 24+ | Python | Rust 工具链(源码构建时) |
| 首次配置 | code-review-graph install 自动配 | gitnexus setup 自动配 | 各客户端手动 mcp add | claude mcp add semble | 桌面端图形配置 |
| 常见坑 | Windows 路径 / fastmcp 版本 | onnxruntime-node 重定向 / LadybugDB / tree-sitter rebuild | Claude Code 15s timeout / stdio 严格 | 几乎无 | OpenSSL 自动下载 |
3. 选型决策树
┌──────────────────────────────────────────┐
│ 你最关心什么? │
└──────────────────────────────────────────┘
│
┌──────────────┼─────────────────┐
▼ ▼ ▼
省 Token 理解结构 搜超大仓库
│ │ │
▼ ▼ ▼
Semble 图谱方案 BitFun
│ flashgrep
┌──────┼──────┐
▼ ▼ ▼
语言广 生态全 多语言
23+ Skills + 多 Codex
下载即用 Web UI + 克隆检测
│ │ │
▼ ▼ ▼
code- GitNexus code-graph-
review- rag-mcp
graph3.1 按使用场景选
| 场景 | 推荐 |
|---|---|
| 我用 Claude Code,做 PR 评审为主 | code-review-graph + GitNexus 二选一 |
| 我用 Claude Code,想要图 + Web UI + Skills 完整体验 | GitNexus |
| 我用 Codex 为主 | code-graph-rag-mcp + Semble |
| 我用 Cursor + 需要语义搜索 | Semble(极简) + 可选 code-review-graph |
| 我做的是 Chromium / Android AOSP / 千万行级 Monorepo | BitFun flashgrep + 上层任选 |
| 我用纯 Python 项目 + 团队规模化 | code-review-graph(语言支持最广) |
| 我用 Lerna Monorepo(JS/TS) | code-graph-rag-mcp(自带 lerna_project_graph) |
| 我用容器 / CI,要求轻量 | Semble(CPU 250ms 建库) |
| 我想要"图谱 + 跨语言克隆检测" | code-graph-rag-mcp |
| 我想要"代码改了影响哪里" | code-review-graph / GitNexus(爆炸半径) |
| 我有内网 / 安全合规要求,不能用云 API | Semble(完全本地 CPU) + code-review-graph(可选 sentence-transformers 本地嵌入) |
3.2 按团队画像选
| 团队类型 | 推荐组合 |
|---|---|
| 小团队,单语言(Python 居多) | code-review-graph + Semble |
| 小团队,TS 全栈 | GitNexus 或 code-graph-rag-mcp |
| 中型团队,Monorepo | code-graph-rag-mcp + Semble |
| 大型团队,多语言巨型仓库 | flashgrep + code-review-graph + Semble |
| 个人开发者 | Semble(单纯省钱)或 code-review-graph(功能全) |
4. 最佳组合实践
4.1 三派组合:互补到位
┌────────────────────────────────────────────────┐
│ AI Coding Agent │
│ (Claude Code / Codex / Cursor) │
└────────────────────────┬────────────────────────┘
│ MCP
┌────────────────┼────────────────┐
▼ ▼ ▼
图谱派 语义检索 Grep 加速
──────── ──────── ────────
code-review-graph Semble flashgrep
或 GitNexus 或 code-graph- (BitFun)
或 code-graph-rag rag-mcp
│ │ │
▼ ▼ ▼
"改这个谁受影响" "认证流程在哪" "找字符串/常量"
"PR 安全吗" "类似的函数" "全仓库 grep"
"架构热点是什么" "按意图找代码" "Chromium 级搜索"4.2 三个实操配置示例
配置 A:Claude Code 全栈用户(中型 TS 项目)
bash
# 1. 主图谱:GitNexus(含 Skills + Hooks + Web UI)
npm install -g gitnexus
gitnexus setup
cd /path/to/project && gitnexus analyze --embeddings
# 2. 极速语义搜索补充:Semble
claude mcp add semble -s user -- uvx --from "semble[mcp]" semble
# 3. 重启 Claude Code配置 B:Codex 用户(多语言 Monorepo)
bash
# 1. 主索引:code-graph-rag-mcp(11 语言 + 26 工具 + Lerna 支持)
npm install -g ./er77-code-graph-rag-mcp-2.7.12.tgz
codex mcp add code-graph-rag -- code-graph-rag-mcp
# 2. 极速搜索补充:Semble
codex mcp add semble -- uvx --from "semble[mcp]" semble
# 3. (可选)大仓库再叠 flashgrep
# 使用 BitFun 桌面端,或自行编译 flashgrep crate配置 C:超大仓库(Chromium / Android AOSP)
bash
# 1. 主搜索:BitFun (flashgrep)
# 下载 BitFun 桌面端:https://github.com/GCWing/BitFun/releases
# 2. 结构理解:code-review-graph(23 语言支持,对 C/C++/Java/Rust/Kotlin 都好)
pip install code-review-graph
code-review-graph install --platform claude-code
cd /path/to/aosp && code-review-graph build
# 注意:超大仓库建议先 .code-review-graphignore 排除 build 产物
# 3. (可选)语义补充:Semble
claude mcp add semble -s user -- uvx --from "semble[mcp]" semble5. 通用风险与陷阱
5.1 通用风险
| 风险 | 影响项目 | 缓解 |
|---|---|---|
| 本地索引膨胀 | 全部(特别是 BitFun 58%) | 加 .gitignore、限制 --max-file-size |
| 嵌入 API 费用 | 用云嵌入的 code-review-graph / code-graph-rag-mcp | 选自托管 vLLM / Ollama / Model2Vec |
| 索引过期 | 全部 | 用 hooks / daemon / watcher 自动增量 |
| 多人共享索引冲突 | 全部 | 推荐每人本地索引;不要把 .gitnexus/ / .code-review-graph/ 提交 git |
| 跨平台兼容 | GitNexus(onnxruntime)/ code-graph-rag-mcp(better-sqlite3) | 按各项目 troubleshooting 文档预先处理 |
| MCP 客户端 timeout | code-graph-rag-mcp 在 Claude Code(15s 硬限制) | 用 MCP_SEMANTIC_WARMUP_LIMIT=0 |
| stdio 严格性 | code-graph-rag-mcp 在 Codex | 升级到 v2.7.12+,避免 stdout 日志 |
5.2 数据隐私
| 项目 | 数据流向 |
|---|---|
| code-review-graph | 默认全本地;启用云嵌入时只发送函数签名(约 10 token/节点) |
| GitNexus | 默认全本地(transformers.js);Web UI 在线版数据不上传 |
| code-graph-rag-mcp | 启用 OpenAI/Gemini provider 时会出云;可切到本地 transformers/ollama |
| Semble | 完全本地 |
| BitFun (flashgrep) | 完全本地 |
企业内网首选:Semble + BitFun + code-review-graph(用自托管嵌入)
6. 路线图与未来
6.1 五大项目近期方向
| 项目 | 方向 |
|---|---|
| code-review-graph | 函数体嵌入(不只是签名)、改进 JS/Go flow detection |
| GitNexus | 更多 Skills、更轻量化嵌入 |
| code-graph-rag-mcp | 更稳的 Codex/Claude Code stdio 兼容、更多语言 |
| Semble | 模型迭代(potion-code-32M 等)、增量更新 |
| BitFun | 独立 flashgrep CLI、跨仓库共享索引 |
6.2 行业趋势观察
- MCP 成为事实标准:所有项目都聚焦 MCP 而非各自封闭协议
- 图 + 向量混合:单纯图或单纯向量都不够,混合是默认范式
- 静态嵌入兴起:Model2Vec 这类"无 Transformer 嵌入"让本地 RAG 跑得起
- Skills + Hooks 双轮驱动:MCP 工具 + 自动注入 + 自定义工作流
- 场景细分:评审、调试、重构、影响分析独立 Skill 化
7. 给读者的一份"5 分钟决定"
如果你只想看一句话答案:
| 你的情况 | 直接选 |
|---|---|
| 我是 Claude Code 用户,想要"省钱 + 评审好用",能装 Python | code-review-graph |
| 我是 Claude Code 用户,想要"图 + 浏览器可视化 + Skills" | GitNexus |
| 我是 Codex / 多 AI 工具用户,想要"图 + 语义 + 克隆检测"一站式 | code-graph-rag-mcp |
| 我想要"最小阻力 + 最大 token 节省 + CPU only"的代码搜索 | Semble |
| 我的仓库千万行级,grep 已经卡死 | BitFun flashgrep |
| 我都要 | 看 §4 最佳组合实践 |
8. 参考链接
- code-review-graph: https://github.com/tirth8205/code-review-graph
- GitNexus: https://github.com/abhigyanpatwari/GitNexus
- code-graph-rag-mcp: https://github.com/er77/code-graph-rag-mcp
- Semble: https://github.com/MinishLab/semble
- BitFun: https://github.com/GCWing/BitFun
- MCP 协议规范: https://modelcontextprotocol.io/