58000颗星,给代码画一张地图,这事有点意思


原文地址:https://github.com/Egonex-AI/Understand-Anything


GitHub上周涨星涨得特别快的一个项目叫做Understand-Anything,等写完这篇文章的时候它都已经逼近六万了。作为一个TypeScript项目,它做的事情听起来简直简单得离谱,只要你把一段代码丢进去,它就能帮你把所有的文件、函数、类还有依赖关系全部画成一张可以交互的图。你要是点哪个节点,它就会把那个函数的代码、它到底调用了谁、又是谁调用了它全都给你列出来,并且还会配上一段大白话的解释。这东西凭什么能够火成这样,我觉得值得拆开来好好聊聊,因为背后其实藏着一个更大的趋势。

先来说一个几乎每个程序员都亲身经历过的事情。你刚刚入职一家新公司,或者是刚接手一个别人留下来的项目,打开代码库一看,二十万行代码直接铺在那儿。你到底从哪个文件开始看呢?全局搜索关键词,去猜某个函数大概是干什么的,找到调用链然后再一个个去跳转,跳着跳着估计就迷路了。文档永远都是过时的,写文档的人可能三年前就已经离职了。你可能要花上两周甚至更多的时间才能真正搞明白这个项目到底是怎么运转的,这还是在运气好的情况下,要是运气不好你得把坑全都踩完才能理解某些设计为什么要那么去写,就比如某个看似多余的中间层,其实就是两年前为了兼容一个早就已经下线的第三方服务而留下来的。

Understand-Anything就专门解决这一个问题,并且解决得非常彻底。它不会帮你写代码,也不会帮你进行debug,它只是帮你「看见」代码真正在干什么。

从原理上来讲它运用了两层东西。树分析器那层负责处理确定性的事情,把源代码解析成为语法树,提取出函数的定义、类的定义、import语句还有调用关系,这些全都是硬事实,同样的一份代码跑上一万次结果也都是一样的。大模型那层则负责处理模糊的事情,比如这段代码的商业意图到底是什么,它属于哪个架构层,要是用一句话该怎么给人类解释清楚。把这两层拼凑在一起,确定性的事实就构成了图谱的骨架,大模型的理解则给骨架填上了语义。用过AST的同学应该能够感觉出来,这东西就相当于把语法树从抽象的层面给拉回到了人能够理解的层面。

整个分析过程是由五个Agent分工协作来完成的。项目扫描Agent负责发现文件和语言,文件分析Agent并行跑在每一个文件上抽取节点和边,架构分析Agent负责识别分层,导览构建Agent按照依赖关系生成学习路径,图审查Agent则负责验一遍图谱的完整性。后来又增加了第六个商业域分析Agent,专门负责把代码映射到业务流程上去。文件分析Agent是支持并行跑的,每一批二十到三十个文件,五个并发,所以中等项目的首次分析时间能够控制在十几分钟以内,要是增量更新那就只分析变更过的文件,几秒钟就能搞定。

你可能会问,这不就是代码可视化吗?类似的东西难道不是早就有了吗?

确实是有。Sourcegraph干了十几年的代码搜索,最近还加了AI助手Cody,能够跨仓库搜代码,但你还是得一行一行去看。Doxygen从2000年代就开始帮C++项目生成调用关系图了,纯静态的,完全没有语义理解,生成的图密密麻麻全都是线,比代码本身还要难看懂。Understand-Anything跟它们有一个根本上的区别,它的输出是一个JSON文件,并不是给人类看的图表,而是给AI Agent看的结构化知识。这个JSON可以提交到代码仓库里面,团队成员clone下来就能跳过分析步骤直接使用,不用每个人都去跑一遍流水线。十兆以上的大图还能借助git-lfs来进行管理,这一点在企业级项目里面是很关键的。

这才是它真正火起来的原因。它不仅仅是一个开发工具,它更是AI编程Agent的「眼睛」,让Agent从盲目搜索变成了照图导航。

想想现在搞AI编码的那些公司,Claude Code、Cursor、Copilot、Codex CLI,它们全都面临着同一个瓶颈,那就是上下文窗口根本塞不下整个代码库。你可以把所有的文件一股脑全都丢给模型,但是token消耗会直接炸掉,而且模型看完之后未必能够理得清关系。你也可以让模型自己去用搜索工具到处翻文件,但这需要在对话里面来回进行几十次tool call,不仅慢而且还很贵。Understand-Anything的做法则是提前把这层理解工作给做掉,输出一份压缩过的结构化图谱。Agent以后只需要去查图谱,不需要再去重新读文件了。首次分析一个中型项目大概需要5到15分钟的大模型时间,但是之后每次增量更新只要几秒钟,只会重新分析改过的文件。

跟它同期火起来的还有另外一个项目CodeGraph,48k星,思路非常接近,同样也是Tree-sitter加上本地索引,同样也是为了让AI编码工具能够省token。两个项目几乎在同一周冲上了GitHub Trending前几名,这绝对不是偶然。2026年上半年,代码知识图谱这个方向突然就炸了。技术条件到位了,Agent生态到位了,需求同样也到位了。Agent需要去理解代码库,但是每次重新扫描的代价实在是太大了,大家都在寻找一种能够持久化代码理解的方案,Tree-sitter成熟了,多Agent编排框架成熟了,大模型也足够便宜了,当这三个变量同时满足的时候,这个品类自然就冒出来了。

Understand-Anything有一个非常有意思的设计,那就是它对知识库的支持。它有一个understand-knowledge命令,专门用来处理Karpathy风格的LLM Wiki。你给它一个运用Markdown和双链写成的知识库,它会先选用确定性解析器把wikilink和分类关系给抽出来,然后再借助大模型去发现隐含的关联和论断,从而把静态笔记变成一张带社区聚类的力导向图谱。这个功能对于知识密集型团队来说是很有用的,搞科研的、写技术文档的、或者是维护内部百科的,都可以拿来玩一玩。想想看一个几百篇笔记的内部Wiki,要是自己去手动翻根本就找不到线索,直接扔给这个工具就能出一张关联图,能省掉大量到处乱翻的时间。

另外还有一个diff影响分析的功能。你改了几个文件,跑一下understand-diff,它就会告诉你这些改动到底会波及到图谱里面的哪些节点,哪些下游调用方可能会受到影响。这不仅仅是给开发者来看的,同时也是给Agent来看的,Agent可以在提交代码之前先评估一下影响范围,从而减少犯错的概率。这让我想到以前自己做那些大项目做code review的时候,改了一个小函数结果另外一个模块莫名其妙就挂了,要是当时有这种影响分析的话至少能少踩不少坑。

不过还是得说几句实在话。这种项目的价值其实取决于代码库的规模,你如果只是一个几百行的小项目,打开文件自己看就行了,完全不需要用这东西。只有当代码库大到人脑已经装不下全貌的时候,知识图谱才会有意义,比如那种几十个微服务互相调用的后端系统,或者是百万行级别的单体应用。另外首次分析的成本也不低,5到15分钟的大模型调用就意味着你得花钱去买API,好在只需要跑一次。另外它目前对中文注释的支持还不太好,大模型生成的节点描述要是放在中文场景下有时候就会出现翻译腔,这个问题社区里面已经有人在提issue了。

安装方式还比较友好。Claude Code用户直接在插件市场安装两条命令就能搞定。其他平台包括Cursor、VS Code Copilot、Codex、Gemini CLI、Hermes、OpenCode等14个,全都有对应的安装脚本,一条curl就能搞定。Cursor和VS Code Copilot甚至还支持自动发现,clone项目就能直接用,不用再去手动装插件。作者是Yuxiang Lin,网名叫做Lum1104,后来项目搬到了Egonex-AI组织下面,采用的是MIT协议开源。项目的Discord社区现在已经很活跃了,Better Stack还专门做了一个视频 walkthrough。

我一直在思考一个问题。当AI编程Agent变得越来越普及,程序员做的事情到底会怎么变?写代码这件事情可能真的会变得越来越自动化了,但是理解代码这件事情反而变得更值钱了。因为不管Agent有多聪明,它对项目的理解全都是片段式的,每次对话都得从零开始,而人类对代码的理解则是整体的、隐含的、跨文件的、并且还带着业务上下文的。Understand-Anything试图把人类的这种整体理解外化成机器可读的结构,要是这条路能够走通,那就不再是程序员配合AI去写代码了,而是AI拿到了一份地图之后自己跑去干活了。

搞不好未来代码库里面真正值钱的文件,根本就不是任何一行代码,而是那个knowledge-graph.json。到时候代码随时都可以让Agent去重写,但那份图谱里面沉淀的项目理解,才是真正不可替代的资产。


来源

  1. Egonex-AI/Understand-Anything — GitHub,2026-06-14
  2. Understand Anything Deep Dive — AgentPedia,2026-06-02
  3. Understand Anything Review — andrew.ooo,2026-06
  4. colbymchenry/codegraph — GitHub,2026-06-14
  5. AI趋势报告,代码知识图谱成为Agent新基础设施 — CSDN,2026-06

以上就是全部内容了,既然都看到这里了,要是觉得还不错,随手点个赞、在看、转发三连吧,要是想第一时间收到推送,也可以给我个星标⭐~
谢谢你的阅读,咱们下次再见。

作者 AISet

阅读全文