## 项目概述

Understand Anything 是一个开源工具，旨在将任何代码库、知识库或文档转化为交互式知识图谱，使用户能够探索、搜索并提问。它通过多智能体流水线分析项目，构建包含文件、函数、类和依赖关系的知识图谱，并提供交互式仪表盘进行可视化。该项目支持多种 AI 编码平台，如 Claude Code、Codex、Cursor、Copilot、Gemini CLI 等。

## 核心功能

- **交互式知识图谱**：将代码库可视化为可探索的图谱，节点可点击、搜索和浏览。
- **业务逻辑理解**：切换到领域视图，查看代码如何映射到实际业务流程。
- **知识库分析**：支持分析 Karpathy 风格的 LLM wiki，提取实体、关系和主张。
- **引导式导览**：自动生成架构导览，按依赖顺序学习代码库。
- **模糊与语义搜索**：按名称或含义搜索，如“哪些部分处理认证？”。
- **Diff 影响分析**：在提交前查看更改对系统的影响。
- **角色自适应 UI**：根据用户角色（初级开发、PM、高级用户）调整仪表盘细节。
- **层可视化**：按架构层自动分组，带颜色图例。
- **语言概念**：在上下文中解释 12 种编程模式（泛型、闭包、装饰器等）。

## 适用与不适用场景

**适用场景：**
- 新团队成员快速了解大型代码库。
- 开发者理解业务逻辑与代码的映射。
- 分析个人知识库（Obsidian、Logseq 等）并可视化知识关联。
- 在提交前评估代码更改的影响范围。
- 生成新员工入职指南。

**不适用场景：**
- 需要实时、动态更新的代码分析（该工具基于静态分析）。
- 对代码进行修改或重构（仅提供理解，不提供编辑功能）。
- 处理非 Markdown 或非代码文件（如二进制文件）的知识库。
- 在没有 Node.js 环境或无法访问 LLM 的情况下使用（部分功能需要 LLM）。

## 技术架构与依赖

- **语言**：TypeScript
- **包管理**：pnpm workspaces
- **核心引擎**：Tree-sitter（确定性静态分析）+ LLM（语义分析）混合架构
- **前端**：React 18、Vite、TailwindCSS v4、React Flow、Zustand
- **其他**：web-tree-sitter、Fuse.js、Zod、Dagre
- **支持的语言**：TypeScript、JavaScript、Python、Go、Rust、Java、Ruby、PHP、C/C++、C# 等（通过 LanguageConfig 配置）
- **非代码文件**：Markdown、YAML、JSON、TOML、Dockerfile、SQL、Terraform 等 26+ 种类型

## 安装与快速开始

### Claude Code（原生）

```bash
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
```

### 其他平台（Codex、OpenCode、Gemini CLI 等）

**macOS / Linux：**
```bash
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash
# 或指定平台：
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash -s codex
```

**Windows (PowerShell)：**
```powershell
iwr -useb https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.ps1 | iex
```

### 分析代码库

```bash
/understand
```

### 启动仪表盘

```bash
/understand-dashboard
```

## 典型使用方法

- **提问**：`/understand-chat How does the payment flow work?`
- **分析更改影响**：`/understand-diff`
- **深入解释文件**：`/understand-explain src/auth/login.ts`
- **生成入职指南**：`/understand-onboard`
- **提取业务领域**：`/understand-domain`
- **分析知识库**：`/understand-knowledge ~/path/to/wiki`
- **增量更新**：`/understand`（默认增量，只重新分析更改的文件）
- **自动更新**：`/understand --auto-update`（提交后自动更新）
- **限定子目录**：`/understand src/frontend`

## 配置与部署要点

- **数据目录**：知识图谱保存在 `.ua/` 目录（旧版本为 `.understand-anything/`）。
- **忽略文件**：支持 `.understandignore` 文件，使用 `.gitignore` 语法排除文件。
- **语言设置**：使用 `--language` 参数生成指定语言的内容（如 `zh`）。
- **本地模型**：可通过 Ollama 等本地模型提供商进行隐私或企业部署。
- **团队共享**：将 `.ua/` 目录（除 `intermediate/` 和 `diff-overlay.json`）提交到仓库，团队成员可跳过分析直接查看图谱。
- **大图谱**：10MB 以上建议使用 git-lfs 跟踪。
- **无 LLM 查看**：使用 `npx https://github.com/Egonex-AI/Understand-Anything/releases/latest/download/understand-anything-viewer.tgz /path/to/project` 仅需 Node.js >= 18。

## 限制、风险与许可证

- **Token 消耗**：首次 `/understand` 分析整个代码库可能消耗大量 token，建议使用订阅计划或本地模型。
- **LLM 生成错误**：知识图谱可能包含不完美数据，仪表盘会显示警告并尝试自动修复。
- **许可证**：MIT License，版权所有 Yuxiang Lin 和 Infinite Universe, Inc.。
- **依赖**：需要 Node.js >= 18（查看器）或 >= 22（开发），pnpm >= 10。

## 官方链接

- **GitHub 仓库**：https://github.com/Egonex-AI/Understand-Anything
- **主页**：https://understand-anything.com
- **在线演示**：https://understand-anything.com/demo/
- **Egonex**：https://egonex.ai

## 信息来源和分析时间

- **信息来源**：GitHub 仓库 README、CONTRIBUTING.md、docs/ 目录下的实现计划文档、最新发布信息。
- **分析时间**：2026-07-10（基于最新发布 v2.9.0 的日期）。