Understand-Anything:代码知识图谱可视化

GitHub 55.5k stars。核心理念:"图的目标不是用代码库的复杂性来震撼你,而是悄悄地向你展示每个部分是如何组合在一起的。"

解决什么问题

  • 近半数研发有效工时耗在读存量代码、梳理调用链、维护遗留系统上
  • 现有 AI 编程工具受 Token 窗口限制读不下整仓代码,缺少全局架构判断,跨模块问题常出片面方案
  • 传统代码可视化只画简单依赖拓扑,无业务语义,节点连线杂乱,实用价值有限
  • 行业矛盾:静态分析精准但不会智能解读,大模型能理解却承载不下完整代码架构

三层分层耦合架构

一、底层:Tree-sitter AST 解析层

  • 基于成熟的 Tree-sitter 引擎,覆盖 Python/Java/Go/JS/C++ 等 99% 主流编程语言
  • 全盘扫描仓库,生成标准 AST,精准提取文件、类、方法、全局变量、导入依赖、函数调用链路
  • 完全不调用大模型,没有幻觉误差
  • 自带自动过滤机制:测试用例文件、废弃注释代码、无用工具脚本直接筛掉,不给上层图谱塞垃圾节点

二、中层:多智能体图谱构建层

流水线跑三个分工明确的轻量智能体:

智能体 职责
结构 Agent 把 AST 提取的数据拼接成基础图谱框架,搭建节点和依赖连线
语义 Agent 对接大模型,自动给每个类/函数打标签:支付回调、用户鉴权、入参限制——把纯代码翻译成业务语言
精简 Agent 二次降噪,合并重复链路,弱化边缘小工具类,高亮支付/订单/权限这类核心业务模块

最终输出标准 JSON 图谱文件:

{
  "nodes": [
    {
      "id": "src/auth/login.ts",
      "type": "file",
      "layer": "API",
      "summary": "处理用户登录认证,支持JWT和OAuth2",
      "business_domain": "用户认证"
    }
  ],
  "edges": [
    {"from": "login.ts", "to": "user-service.ts", "type": "depends_on"}
  ]
}

可以直接丢进 Git 跟随代码仓库同步提交,团队所有人共用一套代码认知图谱。

三、顶层:交互应用层

两大核心交互模块:

  1. 可视化画布:网页端交互式图谱,支持缩放、框选模块、隐藏无关节点、点击展开完整调用链。经典三分栏布局——左侧代码目录树、中间分色标识的力导向图谱画布、右侧节点详情与 AI 对话面板

  2. 全局图谱问答:大模型不再零散读取单个文件,手里握着整份项目完整图谱。彻底解决普通 AI 上下文不足的痛点

安装与使用

本质上是一个 AI 编码助手插件,适配 Claude Code、Cursor、VS Code + Copilot、Codex、Gemini CLI 等主流平台。

Claude Code(推荐,功能最完整)

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

# 在任意代码仓库中运行
/understand

# 分析完成后打开可视化面板
/understand-dashboard

其他平台一键安装

# 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

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

Cursor / VS Code + Copilot

克隆仓库到本地即可自动发现插件(Cursor 通过 .cursor-plugin/plugin.json,VS Code Copilot v1.108+ 通过 .copilot-plugin/plugin.json)。

团队共享图谱

图谱生成为标准 JSON 文件,建议提交至 Git 仓库(.understand-anything/knowledge-graph.json)。团队成员克隆代码后无需重新扫描即可直接使用,适用于新人上手、PR 评审和文档即代码场景。

超过 10 MB 的大型图谱建议用 git-lfs 管理:

git lfs install
git lfs track ".understand-anything/*.json"
git add .gitattributes .understand-anything/

不需要统一 IDE——有人用 Cursor,有人用 VS Code,有人用 Claude Code,都能共享同一份知识图谱。

与同类工具对比

维度 Understand-Anything CodeGraph Graphify
核心定位 代码知识图谱 + 可视化 + 问答 代码 AST 图谱(减少 Agent 工具调用) 代码 + 文档 + PDF + 视频全资料图谱
解析方式 Tree-sitter AST + 多智能体语义标注 Tree-sitter AST AST + AI 语义提取
语义能力 ✅ 多智能体自动打业务标签 ❌ 纯结构 ✅ AI 语义
可视化 ✅ 交互式 Web 画布 + 问答 ❌ 无 UI ✅ 图谱查询
框架识别 通用 Django/Express/Spring 路由映射 不特别针对框架
外部资料 ❌ 仅代码 ❌ 仅代码 ✅ 论文/YouTube/PDF
团队共享 ✅ JSON 文件 Git 同步 ✅ 文件保存自动更新 需手动 --update 或 git hook
GitHub Stars 55.5k ~2k ~1k

GitHub:https://github.com/Egonex-AI/Understand-Anything