开源工具Understand Anything:"代码透视眼",能把代码库变成可点击、可搜索的知识图谱

工具推荐 1780026308更新

0

你刚加入一个新团队。

代码库有20万行。

你是下午两点入职的。

到五点下班的时候,你可能还在想:这个user-service.ts到底是干嘛的?我要不要动它?动了会不会把登录搞挂?

反正我当时就是这么懵的。

三年前刚入行那会儿,leader丢给我一个GitHub链接,说:喏,这是我们的主项目,你先熟悉熟悉。

我打开一看,200多个文件夹。

然后我对着那个目录结构发了半小时呆。

我不知道从哪里开始。

哪个是入口?哪个是核心业务?哪个是可以随便改的,哪个是一动就要写遗嘱的?

没人告诉我。

当时我就想,要是有一个东西能跟我说:这个项目大概是这样的,有多少个模块,模块之间什么关系,核心流程是什么,就好了。

现在,这个东西,就真的出现了。

它叫Understand Anything, 就是字面意思:理解任何东西。

准确地说,是理解任何代码库。

这个工具是GitHub上的一个开源项目,MIT协议,可以免费用。

github.com/Lum1104/Understand-Anything

它支持挺多AI编程工具的,包括Claude Code、Cursor、VS Code Copilot、Gemini CLI、Trae等等。不同的工具安装方式不太一样,但都不复杂。

装完之后,你会得到一系列新的命令。

最核心的是/understand

你在项目目录里输这个命令,它就会开始分析你的代码。

分析完之后,你得到的是一个知识图谱。

这个图谱里有什么呢?

所有文件,所有函数,所有类,所有依赖关系。

还带解释。

比如一个函数,它会告诉你:这个函数是干嘛的,它依赖什么,它被谁调用。

不再是裸奔的代码了。

是一个你可以点击、可以搜索、可以探索的交互式地图。

你可能会想:这玩意怎么知道代码是干嘛的?

好问题。

它用了两套东西。

第一套叫Tree-sitter。这是一个代码解析器,可以理解各种编程语言的语法。它负责提取那些"死的"信息——import了什么、export了什么、函数在哪、类在哪、继承了什么关系。这些东西不管谁来读都是一样的。

第二套是AI大模型。它负责读那些"活的"信息——这个函数是干嘛的,为什么这样设计,有什么业务含义。

为什么会这么分?

因为,纯AI读代码效率低,而且贵。纯解析器又只能看到结构,看不懂意图。

两个加一起,就是又快又准。

它能分析主流的编程语言。同时,它还能解释12种编程模式,会在上下文里给你解释清楚。

我拿到这个项目的时候,第一反应是:它是怎么把代码变成图的?

看了下文档,大概是这样。

它有一个多代理管道。5个AI agent各司其职,像流水线一样干活。

第一个叫project-scanner,负责扫描项目,发现有哪些文件,用了什么语言和框架。

第二个叫file-analyzer,负责分析每个文件,提取函数、类、import关系,生成图谱的节点和边。

第三个叫architecture-analyzer,负责识别架构层级——哪些是入口,哪些是API层,哪些是数据层,哪些是工具函数。

第四个叫tour-builder,负责生成学习路线。就是告诉你,应该按什么顺序来理解这个项目。

第五个叫graph-reviewer,负责验证图谱的完整性,确保没有遗漏的依赖或错误的引用。

另外还有一个article-analyzer,专门用于分析知识库——当你用/understand-knowledge命令分析一个文档库的时候,它会用这个agent。

说实话,功能挺多的,我挑几个我觉得有意思的说。

导游路线。

就是你刚接手一个项目,不知道从哪开始,它会给你生成一个学习顺序。

告诉你:先看这个入口文件,再看这个核心模块,最后看这个周边工具。按这个顺序走一遍,你对这个项目就有个大概的框架了。

对于我这种刚入行的时候对着目录结构发呆的人来说,这个功能太实用了。

改动影响分析。

你改了一个函数,想知道会不会影响其他地方。运行/understand-diff,它会告诉你:这个函数被哪些地方调用,改了之后哪些地方会受影响。

不是说让你不改,而是让你知道风险在哪。

语义搜索。

支持模糊搜索和语义搜索。不只是按名字搜,还能按意思搜。比如你搜"哪些部分处理身份验证",它会找到所有跟认证相关的代码,哪怕文件名里没有"auth"这个词。

这个在接手新项目的时候特别有用。你不需要知道代码里用什么词来描述这个功能,你只需要说清楚你想找什么。

多语言支持。

可以用中文输出。

运行的时候加个--language zh,生成的图谱描述就是中文的。Dashboard的界面也可以切中文。

对于英文不太好的同学,这个挺贴心的。

怎么安装使用?

不同的AI编程工具,安装方式不一样,我分开说。

Claude Code

在命令行里输这两行:

/plugin marketplace add Lum1104/Understand-Anything/plugin install understand-anything

Cursor等

直接克隆项目到本地,它会自动发现插件。克隆地址:github.com/Lum1104/Understand-Anything

Windows PowerShell等

一行命令搞定:

iwr -useb https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.ps1 | iex

装完之后,在项目目录里运行/understand,然后运行/understand-dashboard,就会打开一个网页,展示交互式知识图谱。

你可以放大缩小,搜索,点击节点看详情。

挺酷的。

写在最后。

三年前我对着那200个文件夹发呆的时候,要是有这个东西,我能少走很多弯路。

当然,不是说没有工具就一定不行。慢慢读,慢慢摸,总能搞懂的。

但问题是时间。

如果能花5分钟搞清楚架构,花10分钟搞清楚核心流程,剩下的时候就可以用来真正写代码,而不是用来发呆和焦虑了。

工具的意义就是这个。

不是替代你思考,而是让你思考的时候有个地图,不至于在迷宫里转圈。

就像这个项目的slogan说的:Stop reading code blind. Start seeing the big picture.

翻译过来就是:别再盲目读代码了,开始看清大局吧。

共勉。

相关链接

项目地址:github.com/Lum1104/Understand-Anything

官方Demo:understand-anything.com/demo/

(可以先点进去看看效果,不用装,直接在浏览器里体验)