刚入职一家公司,打开仓库一看,20 万行代码摆在面前,完全不知道从哪下手——这几乎是每个程序员都经历过的场景。
现在有人把这个痛点做成了一个开源工具,叫 Understand Anything。它最初由开发者 Lum1104 创建,目前由 Egonex 团队维护,使用 MIT 协议开源。
核心思路:用多智能体流水线构建代码知识图谱

它的做法是用多智能体流水线分析整个项目,把每一个文件、函数、类和它们之间的依赖关系都提取出来,构建成一张知识图谱,再给出一个可交互的可视化面板。把代码库当成一张地图来探索,而不是一行一行硬啃。
打开知识图谱面板后,代码库里的每个文件、函数、类都会变成图上的一个节点,可以点击、搜索、展开。选中任意节点,会看到这部分代码用大白话写成的功能说明,以及它和其他模块之间的关系,还有引导式的学习路径。
苏米注:这个设计目标很实在——让人安静地看懂每个部分是怎么拼在一起的。
除了结构图,还有业务视图
面板里还有一个业务视图,把代码映射到真实的业务流程上,用一张横向展开的图展示各个业务域、流程和具体步骤。适合想搞清楚系统到底在做什么业务逻辑的人。
其他值得关注的功能:
- 引导式导览:按依赖关系自动排好顺序,帮你按正确路径学习代码库
- 模糊搜索和语义搜索:可以直接搜"哪部分代码负责登录鉴权",而不只是按文件名查找
- 改动影响分析:提交代码前就能看到这次修改会波及系统的哪些地方
- 角色自适应界面:面板会根据使用者是初级开发者、产品经理还是资深工程师,调整展示细节
- 按架构层自动分组:API 层、服务层、数据层、UI 层、工具层用颜色区分,配有图例
- 内置编程概念讲解:泛型、闭包、装饰器等,会在代码出现这些写法的地方给出上下文解释
安装与使用
在 Claude Code 里安装非常简单:
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
如果出于隐私或企业部署考虑想用本地模型,可以接入 Ollama 这类本地模型服务来替换默认的模型提供方。
安装完成后,运行 /understand 命令,多智能体流水线就会开始扫描整个项目,提取文件、函数、类和依赖关系,结果保存成 knowledge-graph.json。
苏米注:首次运行会分析整个代码库,在大型项目上可能消耗较多 token,官方建议用订阅制套餐或本地模型来跑首次初始化。后续运行默认是增量更新,只重新分析改动过的文件,token 消耗会少很多。
支持的命令一览
/understand:扫描代码库,构建知识图谱(默认增量)/understand-dashboard:打开可交互的网页面板/understand-chat:问代码库里的任何问题/understand-diff:分析当前改动的影响范围/understand-explain:深入解读某个具体文件或函数/understand-onboard:生成给新人看的上手指南/understand-domain:提取业务域、流程和步骤/understand-knowledge:分析 wiki 知识库/understand --auto-update:配合提交钩子,每次提交后自动更新图谱
工具还支持多语言输出,加 --language 参数即可生成中文简体、繁体、日语、韩语、俄语等内容。首次运行会自动识别当前对话使用的语言并保存。
不只是 Claude Code 能用
虽然名字带着 Claude Code 插件的标签,但 Understand Anything 实际支持的平台范围相当广:
- Claude Code:原生支持
- Cursor / VS Code + Copilot:自动发现机制直接识别,克隆仓库即可使用
- Codex、OpenCode、Gemini CLI、Vibe CLI、Cline、Trae、Kiro 等十几个平台:提供一条命令的安装脚本
macOS/Linux 用 curl 拉取脚本执行即可,Windows 用 PowerShell 完成安装。脚本会自动克隆仓库并根据平台创建符号链接。
图谱可以提交进仓库,团队一起用
生成的知识图谱本质上是一份 JSON 文件,可以直接提交进版本库。团队成员拉取代码后不用重新跑分析流水线就能直接用,对新人入职、代码评审、文档维护都很有帮助。
需要提交的是 .understand-anything 目录下除了 intermediate 文件夹和 diff-overlay.json 之外的所有内容。如果图谱文件超过 10MB,官方建议用 git-lfs 来管理。
背后的技术思路
Understand Anything 的核心做法是把静态分析和大语言模型结合起来,让两者各自做擅长的事:
- Tree-sitter 负责确定性部分:解析源码成抽象语法树,提取导入导出关系、函数和类的定义、调用位置、继承关系等。同样的输入永远得到同样的输出,这部分支撑了基于指纹比对的增量更新机制
- LLM 负责语义部分:在拿到结构信息后,生成大白话的功能总结、标签、架构层归属判断、业务域映射等
苏米注:这种分工很巧妙——图谱在结构层面是可复现的,同时又能在语义层面捕捉到代码的意图,而不仅是它引用了什么。
整个 /understand 命令背后由五个专门的智能体协同完成,文件分析智能体会并行运行(最多同时 5 个,每批 20-30 个文件),支持增量更新。