你的代码库缺的不是文档,是一张交互式地图
— — —
入职第一天,leader 把你拉进仓库,说了句”代码在这,有问题随时问”,然后就消失了。
你打开项目——200 个文件夹,几千个文件,README 写着”请参考 docs/”,docs/ 里三篇两年前的文档,其中两篇已经和代码对不上了。
你开始一个文件一个文件地翻,从main.ts跳到router.ts,再跳到middleware/auth.ts,跳了 40 分钟,发现自己已经忘了最初在找什么。
这些场景你一定不陌生:
1. 新人入职面对 20 万行代码,不知道从哪读起
2. 改一个函数不确定会影响哪些模块,只能全局搜索祈祷
3. 架构知识只存在于三个老员工的脑子里,他们一离职就全没了
4. 写了 PR 没人 review 得动,因为”只有张三懂这块”
问题的本质是什么?代码库缺的从来不是文档——缺的是一张让你一眼看清全貌的地图。
Understand Anything是一个开源工具(MIT 协议),它用 AI 多智能体 + 静态分析,自动把你的代码库变成一张可交互的知识图谱——每个文件、每个函数、每个类都是图上的一个节点,你可以点击、搜索、沿着依赖关系一路追踪。
不需要你写一行注释,不需要维护额外文档。跑一条命令,等几分钟,打开浏览器——整个代码库的骨架就在你眼前。
“The goal isn’t a graph that wows you with how complex your codebase is — it’s a graph that quietly teaches you how every piece fits together.”
|
传统方式 盲人摸象 逐个文件阅读,拼凑全貌 ~grep 全局搜索碰运气 ~问老员工(如果他还在) ~翻过期文档猜测 ~改代码后祈祷不出事 |
|
Understand Anything 上帝视角 一张图看清全局架构 !交互式知识图谱,点击即导航 !每个节点自带自然语言解释 !自动生成学习路径 !改代码前先看影响范围 |
整个流程极其简单。以 Claude Code 为例:
# 1. 安装插件
/plugin marketplace add Lum1104/Understand-Anything
/plugin install understand-anything
# 2. 分析你的代码库(自动执行 Multi-Agent Pipeline)
/understand
# 3. 打开交互式仪表盘
/understand-dashboard
跑完/understand后,项目根目录会生成.understand-anything/knowledge-graph.json——这就是你代码库的知识图谱。提交到 Git,队友直接/understand-dashboard就能看,无需重新跑分析。
支持 14+ 平台,不限于 Claude Code
Cursor、VS Code Copilot、Codex、Gemini CLI、OpenCode、Cline、Trae… 一行脚本搞定安装:curl -fsSL https://raw.githubusercontent.com/.../install.sh | bash
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
还支持/understand --language zh生成中文内容,节点描述和 UI 全部中文化。
— — —
你可能会想:直接让 ChatGPT 读代码不就行了?区别在于——Understand Anything 的结构信息是确定性的,不是 LLM 猜的。
它采用Tree-sitter + LLM 混合架构,让各自做擅长的事:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这个设计让图谱在结构侧可复现(相同代码永远生成相同的边),在语义侧有智慧(知道一个文件”是干什么的”,而不只是”import 了什么”)。
/understand命令背后是 5 个专业 Agent 分工协作,每个只做一件事:
| Multi-Agent Pipeline 执行流程 | |
| project-scanner |
|
|
|
|
| file-analyzer |
(并行执行,每批 20-30 文件,最多 5 并发) |
|
|
|
| architecture-analyzer |
|
|
|
|
| tour-builder |
|
|
|
|
| graph-reviewer |
|
|
|
|
| .understand-anything/knowledge-graph.json
|
关键设计:支持增量更新。第二次跑/understand时,它会用 fingerprint 检测哪些文件改了,只重新分析变化的部分。还能配合--auto-update自动注册 post-commit hook,每次提交自动更新图谱。
打开/understand-dashboard后,你会看到一个暗色主题的交互式图谱界面:
|
知识图谱 |
语义搜索 |
学习路径 |
|
架构分层 |
Persona 适配 |
代码查看器 |
说完优点,也说说边界——工具不是万能的。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
项目本身是 pnpm monorepo 结构:
understand-anything-plugin/
├── packages/core/ # 共享引擎:Tree-sitter + 搜索 + Schema + 指纹
├── packages/dashboard/ # React 仪表盘(React Flow + Zustand + TailwindCSS v4)
├── src/ # Skill 实现(chat/diff/explain/onboard)
├── skills/ # 8 个 Skill 定义(Markdown Prompt)
├── agents/ # 9 个 Agent 定义
└── hooks/ # post-commit 自动更新钩子
几个值得关注的技术选择:
web-tree-sitter 而非 native tree-sitter
用 WASM 版本避免 native binding 在不同平台的编译问题。代价是性能略低,但对于分析场景够用。
Fingerprint-based 增量更新
每个文件计算 structural fingerprint,只有结构变化才重新分析。改注释不会触发重跑。
Agent 不返回结果到上下文
中间结果写到.understand-anything/intermediate/,不占用 LLM 上下文窗口。分析完成后自动清理。
— — —
如果你的团队有超过 3 个人在维护一个超过 5 万行的代码库,Understand Anything 能把”代码理解”这件事从个人经验变成团队基础设施——一次分析,全员可用,增量维护,永不过期。
GitHub: github.com/Lum1104/Understand-Anything
夜雨聆风