AI编程工具的"第二大脑":两个知识图谱开源项目实测对比
一个 5.3 万 Star,一个 4.2 万 Star,都在做同一件事:给 AI 编程助手装个"预读大脑"
先说结论
当 Claude Code、Codex、Cursor 这些 AI 编程工具面对一个大型代码库时,它们会怎么做?
先是无数轮 grep、find、read——一个个文件翻过去,到处找上下文。大项目里,三分之一以上的 token 花在了"搞清这个文件是干什么的"上。
知识图谱方案干的活很简单:先给你的代码库建一个索引图,然后 AI 直接查图,不用去翻文件了。
目前这个方向有两个主角——Understand Anything(53k stars)和 CodeGraph(42k stars)。两个都在做"代码→知识图谱"这件事,但思路完全不一样。
先说大方向:
你想可视化浏览代码结构、给新成员做入职引导 → Understand Anything 你想让 AI 编程助手少花 token、提效省成本 → CodeGraph 日常开发两者不冲突,可以一起用
下面把两个拆开说清楚。
一、为什么需要"第二大脑"
先讲一个场景。
你刚加入一个团队,代码库 20 万行。Claude Code 启动后,它要做的事情和你一样——先搞清楚项目结构、了解业务逻辑、找到入口在哪。
它怎么做的?find . -name "*.ts" 得到文件列表,然后挨个 read 文件头,再 grep 找引用关系。每做一个操作就要走一遍从调用到返回的完整推理循环,都是钱。
一个真实的基准数据:在 VS Code(约 1 万文件)上跑一次架构问答,没有知识图谱的 Agent 读了 9 个文件、执行了 11 次 grep,总计 21 次工具调用,花了 1.79M tokens。
21 次调用 vs 4 次,1.79M vs 0.64M ——这就是知识图谱带来的差距。
道理很简单:与其每次从头找,不如建一次索引反复查。
二、Understand Anything:给代码库装个"交互地图"
项目地址:github.com/Lum1104/Understand-Anything[1]Star:53k+ | 协议:MIT
它是干什么的
Understand Anything 的定位很清晰:把你的代码库变成一个可交互的知识图谱。不是给 AI 看的,是给你(和人)看的——虽然它也能给 AI 当插件用。
它原本是 Claude Code 的一个插件,现在支持 Codex、Cursor、Copilot、Gemini CLI、OpenCode 等几乎所有主流 AI 编程工具。
核心能力
1. 结构图浏览 每个文件、函数、类都是一个可点击的节点,可以在浏览器里拖拽、缩放、搜索。选中一个节点能看到它和其它节点的关系——谁调用了它、它依赖谁、它属于哪个架构层。
2. 业务域视图 把代码映射到真实业务逻辑——领域、流程、步骤以水平图表展开。这个对接手遗留系统特别有用。
3. 引导导览 自动生成的架构漫游,按依赖关系排序。新成员加入项目时,可以按它设计的路线逐步学习。
4. 变更影响分析 在 git diff 之后运行,能看到你的改动会影响系统的哪些部分——提交前帮你发现风险。
5. 多角色界面 同一个图,初级开发者看到的是"这是什么",PM 看到的是"这个模块和业务的关系",高级工程师看到的是"架构设计和耦合度"。
安装使用
# 作为 Claude Code 插件安装/plugin marketplace add Lum1104/Understand-Anything/plugin install understand-anything# 分析项目/understand# 启动仪表盘/understand-dashboard# 对话式查询/understand-chat How does auth flow work?支持中文输出:
/understand --language zh
首跑会调用一个多 Agent 流水线扫描项目,提取每个文件的函数、类、依赖关系,生成知识图谱存到 .understand-anything/knowledge-graph.json。后续运行是增量模式——只分析变更的文件。
三、CodeGraph:给 AI 的"预读大脑"
项目地址:github.com/colbymchenry/codegraph[2]Star:42k+ | 协议:MIT
它是干什么的
CodeGraph 是另一种哲学:不是给人看的仪表盘,而是给 AI Agent 用的 MCP 服务器。
它在代码库上建一个 SQLite 索引,然后以 MCP 协议的形式暴露给 Claude Code、Cursor、Codex、OpenCode、Hermes Agent、Gemini CLI 等工具。当 Agent 需要理解代码结构时,直接查索引,不用去读文件。
核心差异
实测效果
CodeGraph 在 7 个真实开源项目上做了对比测试,核心数据:
平均结果:16% 更便宜、47% 更少 token 消耗、22% 更快、58% 更少工具调用。
传统模式 CodeGraph模式 ┌───────────────────┐ ┌───────────────────┐ │ Agent 接到问题 │ │ Agent 接到问题 │ │ ↓ │ │ ↓ │ │ grep 搜索关键词 │ ❌ │ codegraph_explore │ ✅ │ find 列文件 │ ❌ │ (一次查询直接返回) │ ✅ │ read 逐文件读取 │ ❌ │ ↓ │ │ 提取函数+类+关系 │ ❌ │ 综合信息给LLM推理 │ ✅ │ ↓ │ │ ↓ │ │ 综合判断给出答案 │ │ 综合判断给出答案 │ └───────────────────┘ └───────────────────┘ 4-21 次工具调用 2-4 次工具调用安装使用
# 安装 CLI(不需要 Node.js)curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh# 或通过 npmnpm i -g @colbymchenry/codegraph# 配置到 AI 工具codegraph install# 初始化项目索引cd your-projectcodegraph init -i安装后,AI Agent 会多出一个 codegraph_explore 工具,每次需要理解代码结构时直接调用它查索引。
四、两套思路的深层对比
虽然都叫"代码知识图谱",但两套系统在最底层的假设上就有分歧:
哲学分歧:人 vs 机器
Understand Anything 假设:"最终需要理解代码的是人,AI 只是辅助工具"所以它花大量精力在交互仪表盘、可视化、导览体验上。
CodeGraph 假设:"最终需要理解代码的是 AI Agent,人是让 Agent 代劳的"所以它完全不做 UI,专注给 Agent 提供高效的查询接口。
这个差异在所有设计决策上都能看到。
索引深度的差异
Understand Anything 的索引包含:
文件和目录结构 函数、类定义 依赖关系(调用链) 业务域映射(domain → flow → step) 架构分层
CodeGraph 的索引包含:
文件和符号关系 调用图 代码结构关系 SQLite 全索引,查询即答
差异不大,但 Understand Anything 多了一层"业务域"的抽象——把代码往业务需求上映射。这是一个维度上的不同。
运行效率
CodeGraph 因为用 SQLite 本地索引,查询响应是毫秒级的。Understand Anything 的图谱查询也很快,但它的多 Agent 分析流水线在首跑时会稍重一些。
两者在增量更新上都做了优化——只重新索引变动的文件。
适用边界
五、开源项目生态怎么看
B 站「神秘的鱼仔」这个系列的视频,其实切中了当前 AI 编程一个核心痛点:工具越来越好用,但代码库越来越大了。
有意思的是,这两个项目在 GitHub 上都是今年爆发式的增长——Understand Anything 从零到 53k star,CodeGraph 从零到 42k star,都是在不到一年内完成的。说明需求是真实的、广泛的。
但也要说几点现实:
知识图谱不是银弹。对于 100 文件以下的小项目,建索引的收益很有限——Agent 直接读文件也就几秒钟的事。 首跑有成本。两套系统都需要先做一次完整的项目扫描。大项目(万级文件)首跑可能需要几分钟。 增量更新够用但不是实时的。如果你在频繁地创建和修改代码,索引的更新速度和准确度取决于你设置的触发频率。 不是所有 Agent 都原生支持。虽然两套系统都号称兼容 x、y、z,但实际操作上,Claude Code 的插件生态最成熟,其他工具的集成需要一些手动配置。
六、所以到底装哪个
如果你只能选一个:
日常开发主力工具是 Claude Code,且在意 token 费用 → CodeGraph 最直接。装好就见效,省多少钱能看到量化数据。 你是团队引入者、架构师,或经常接手新系统 → Understand Anything 的仪表盘和导览功能更有价值。 不差钱、不介意多装一个插件 → 两个都装,互为补充。
两个项目都是 MIT 协议,完全本地运行,没有数据隐私问题——这也是它们受欢迎的核心原因。
最后说一句:当你的 AI 编程助手花一个季度 token 来理解你的代码库时,给它预设一个"知识大脑",可能是今年最值得做的配置调整。
有什么想法可以随时留言沟通
引用链接
[1]github.com/Lum1104/Understand-Anything: https://github.com/Lum1104/Understand-Anything
[2]github.com/colbymchenry/codegraph: https://github.com/colbymchenry/codegraph
夜雨聆风