刚入职新团队,仓库 20 万行,文档零散,README 只写了「怎么跑起来」——真正的架构、模块边界、业务链路,还是得靠人肉 grep 和问老员工。
AI 编程助手能帮你读单个文件,但很难一次性给你「全局地图」。最近 GitHub 上有个项目涨星很快:Understand-Anything,口号是 「Graphs that teach > graphs that impress」——不是做一张炫技的大图,而是做一张能教你理解代码怎么拼在一起的交互式知识图谱。
一、它是什么?
Understand-Anything 是一个面向 AI 编程工具的插件/技能包。它用多 Agent 流水线扫描你的项目,把每个文件、函数、类、依赖关系抽成节点和边,生成 knowledge-graph.json,再通过 Web Dashboard 可视化——你可以拖拽、缩放、搜索、点选节点看白话摘要和关联关系。
和「让 AI 读一遍 README」不同,它做的是结构化 + 语义化的双层分析:
- Tree-sitter(确定性):解析 import、函数/类定义、调用关系、继承——同样输入,同样输出,可复现;
- LLM(语义层):生成摘要、标签、架构分层、引导式导览、业务域映射——回答「这个文件是干什么的」,而不只是「它 import 了谁」。
一句话:把「读代码盲盒」变成「带地图的探索」。
目前仓库状态:
- ⭐ GitHub 约 5 万 Star(截至 2026 年 6 月,数字会随时间变)
- 📜 协议 MIT
- 🌐 支持 Claude Code、Cursor、Copilot、Codex、Gemini CLI、Hermes 等十余种平台
- 🎮 官网有 Live Demo,浏览器里直接体验 Dashboard
二、核心功能一览
| 功能 | 说明 |
|---|---|
| 结构图谱 | 文件 / 函数 / 类 / 配置 / 文档 / 服务 / API 端点等 13 种节点,26 种边关系 |
| 架构分层 | 自动识别 API、Service、Data、UI 等层,Dashboard 按颜色分组展示 |
| 引导式导览 | 按依赖顺序生成 Tour,新人按步骤学,不用自己猜阅读顺序 |
| 模糊 & 语义搜索 | 搜名字或搜含义,比如「哪些部分处理 auth?」 |
| Diff 影响分析 | /understand-diff 看当前改动会波及哪些模块 |
| 业务域视图 | /understand-domain 把代码映射到业务域、流程、步骤 |
| Wiki 知识库分析 | /understand-knowledge 指向 Karpathy 式 LLM Wiki,抽实体和隐含关系 |
| 增量更新 | 默认只重分析变更文件;--auto-update 可挂 post-commit 钩子 |
| 多语言输出 | --language zh 生成中文节点摘要和 Dashboard UI |
| 团队共享 | 知识图谱就是 JSON,commit 进仓库,队友跳过分析流水线直接看 |
官网 Demo 里可以 pan、zoom、search、点节点——建议先玩一圈再决定要不要装。
三、背后怎么跑:多 Agent 流水线
执行 /understand 时,大致走 7 个阶段:
| Agent | 职责 |
|---|---|
project-scanner | 扫描文件、检测语言和框架 |
file-analyzer | 提取函数、类、import,产出节点和边(最多 5 路并行) |
architecture-analyzer | 识别架构分层 |
tour-builder | 生成引导式学习路径 |
graph-reviewer | 校验图谱完整性和引用一致性 |
domain-analyzer | 提取业务域知识(/understand-domain 专用) |
article-analyzer | 分析 Wiki 文章实体与关系(/understand-knowledge 专用) |
产出物落在项目根目录的 .understand-anything/:
.understand-anything/
├── knowledge-graph.json # 最终知识图谱
├── meta.json # 上次分析的 commit hash、时间戳
├── config.json # 语言偏好、auto-update 等
└── .understandignore # 排除分析的文件(类似 .gitignore)
大仓库可以指定子目录,比如 /understand src/frontend,避免一次扫全 monorepo。
四、安装:按你用的工具选
Understand-Anything 的亮点之一是跨平台——Cursor、Claude Code、Copilot 都能用。
Claude Code(原生插件)
/plugin marketplace add Lum1104/Understand-Anything
/plugin install understand-anything
Cursor
克隆仓库后在 Cursor 里打开,会通过 .cursor-plugin/plugin.json 自动发现。若没识别到,去 Cursor Settings → Plugins,搜索 https://github.com/Lum1104/Understand-Anything 手动添加。
Windows 一键安装(Codex / OpenCode / Hermes / Gemini CLI 等)
iwr -useb https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.ps1 | iex
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.sh | bash
# 或指定平台,跳过交互:
curl -fsSL https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.sh | bash -s codex
安装器会把仓库 clone 到 ~/.understand-anything/repo,并为所选平台创建符号链接。装完记得重启 CLI / IDE。
环境要求: Node.js ≥ 22,pnpm ≥ 10(首次运行 /understand 会自动 build core 包)。
平台兼容一览
| 平台 | 安装方式 |
|---|---|
| Claude Code | Plugin marketplace |
| Cursor | 自动发现 / Settings 手动添加 |
| VS Code + Copilot | 自动发现 |
| Copilot CLI | copilot plugin install Lum1104/Understand-Anything:understand-anything-plugin |
| Codex / OpenCode / Hermes / Gemini CLI 等 | install.sh / install.ps1 |
五、快速上手:四步跑通
1. 分析代码库
在项目根目录执行:
/understand
首次会生成 .understandignore 供你确认排除项(测试目录、docs 等),确认后开始扫描。大项目(>100 文件)会提示是否继续。
中文输出:
/understand --language zh
节点摘要、导览说明、Dashboard 按钮/tooltip 都会变成中文。
2. 打开 Dashboard
/understand-dashboard
浏览器里出现交互式图谱——按架构层着色,可搜索、点选、看关系。
领域视图:
代码间的逻辑关系:
3. 继续深挖
| 命令 | 用途 |
|---|---|
/understand-chat | 基于图谱问答,如「支付流程怎么走?」 |
/understand-explain <路径> | 深 dive 某个文件或函数 |
/understand-diff | 分析当前改动的波及范围 |
/understand-onboard | 生成新人 onboarding 指南 |
/understand-domain | 提取业务域、流程、步骤 |
/understand-knowledge <wiki路径> | 分析 Karpathy 式 LLM Wiki |
/understand --full | 强制全量重建 |
/understand --auto-update | 每次 commit 后自动增量更新图谱 |
4. 和团队共享
图谱就是 JSON——commit 一次,队友不用各自跑流水线:
.understand-anything/intermediate/
.understand-anything/diff-overlay.json
大图谱(10 MB+)建议用 git-lfs 跟踪。配合 --auto-update,每次提交都能带上同步的图谱,PR Review 和 onboarding 都省事。
官方示例:microservices-demo fork(Go / Java / Python / Node,已提交图谱)。
六、和其他方案比,差在哪?
| 人肉读代码 | AI 单文件问答 | Understand-Anything | |
|---|---|---|---|
| 全局视图 | 靠经验慢慢拼 | 没有持久地图 | 持久知识图谱 + Dashboard |
| 新人上手 | 问老人 + 自己 grep | 每次从零解释 | Tour 按依赖顺序导览 |
| 改动影响 | 靠猜或跑测试 | 看 diff 片段 | /understand-diff 跨模块波及分析 |
| 业务理解 | 靠文档(常过期) | 文档和代码可能对不上 | /understand-domain 从代码反推业务流 |
| 跨工具 | N/A | 绑在某个 IDE | 十余平台共用同一套技能 |
如果你已经在用 Karpathy 式 Obsidian LLM Wiki(我之前写过相关文章),/understand-knowledge 可以把 wiki 变成力导向知识图——wikilink、分类、实体、隐含关系一次可视化。这和 /understand 分析代码库是同一套引擎的两条路径。
它和 agentmemory 之类「会话记忆」工具也不冲突:agentmemory 记的是协作过程和踩坑;Understand-Anything 记的是代码库本身的结构语义——一个管「我们聊过什么」,一个管「这个项目长什么样」。
七、使用建议
- 先小范围试:大 monorepo 先用
/understand src/某模块试水,满意再全量。 - Review.understandignore:默认会排除
node_modules、dist等;测试目录、生成代码可按需排除,加快分析、减少噪音。 - 中文团队开
--language zh:图谱摘要和 Dashboard 一次本地化,新人看起来更顺。 - 图谱进 Git:onboarding 和 Code Review 时直接开 Dashboard,比每人本地跑一遍
/understand省时间。 - 先看 Demo 再装:understand-anything.com/demo 里感受一下交互,再决定值不值得为自家仓库跑流水线。
写在最后
接手陌生代码库,最难的不是「某个函数怎么写」,而是不知道从哪里开始、改一处会牵动哪里。Understand-Anything 把 Tree-sitter 的确定性和 LLM 的语义理解拼在一起,再塞进一个能搜、能问、能导览的 Dashboard——让图谱教你,而不是用复杂度吓唬你。
如果你用 Cursor / Claude Code 接入了大型项目,不妨在一个子模块上跑一遍 /understand --language zh,打开 Dashboard 走一遍 Tour——往往比啃 README 半天更有「地图感」。