资讯动态

Understand-Anything核心技术揭秘:Tree-sitter静态分析+LLM语义理解如何混合出知识图谱

发布时间:2026/10/11 11:43:51 来源:尧图企业网站定制
Understand-Anything核心技术揭秘Tree-sitter静态分析LLM语义理解如何混合出知识图谱【免费下载链接】Understand-AnythingGraphs that teach graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.项目地址: https://gitcode.com/GitHub_Trending/un/Understand-AnythingUnderstand-Anything 是一款开源的代码理解工具它能将任意代码库转化为可探索、可搜索、可提问的交互式知识图谱。它的核心技术是一套「Tree-sitter 静态分析 LLM 语义理解」的混合架构静态解析负责提取确定性的结构骨架大模型负责补上这段代码是干什么的这层血肉。下面我们把这条混合流水线拆开来看。 为什么需要知识图谱而不只是一堆依赖图刚接手一个 20 万行的项目你面对的第一个问题往往是我到底从哪里开始读传统代码地图工具如各类依赖可视化只能画出谁 import 了谁画得再漂亮也只是炫技——它不教你任何东西。Understand-Anything 的官方目标写得很直白The goal isnt a graph that wows you with how complex your codebase is — its a graph that quietly teaches you how every piece fits together. 目标不是一张让你惊叹代码有多复杂的图而是一张默默教你理解每一块如何拼合的图。要同时做到结构精确和能教人单靠任何一种技术都不行——这正是混合架构的出发点。️ 总览一条 7 阶段的多智能体流水线运行/understand命令后项目会按 7 个阶段执行整体编排定义在 SKILL.md 中阶段名称做什么1SCAN扫描项目文件检测语言与框架1.5BATCH按语义相关性把文件分组成批2ANALYZE每个文件走「脚本结构提取 LLM 语义分析」3ASSEMBLE REVIEW审查合并后的整图完整性4ARCHITECTURE识别架构分层API/Service/Data/UI…5TOUR生成按依赖顺序排列的导览学习路径6/7REVIEW FINALIZE校验并发布最终knowledge-graph.json整条流水线由 7 个专职 Agent 协作完成定义在 agents/ 目录project-scanner.md — 文件发现、语言/框架检测file-analyzer.md — 提取函数、类、依赖产出图的节点与边architecture-analyzer.md — 识别架构分层tour-builder.md — 生成引导式学习导览graph-reviewer.md — 校验图的完整性与引用一致性domain-analyzer.md — 提取业务域、流程与步骤article-analyzer.md — 从 wiki 文章中提取实体与隐含关系⚙️ 混合架构上半部分Tree-sitter 静态分析混合架构的确定性来自 tree-sitter-plugin.ts。它在 Node.js 中通过 WebAssembly 加载 Tree-sitter 语法把源码解析为具体语法树CST再从中提取结构事实函数、类定义含起止行号、参数、方法列表import / export已解析为项目内真实路径调用图caller → callee继承 / 实现关系几个关键设计让它既快又稳1. 配置驱动优雅降级。每种语言由一个 LanguageConfig 描述扩展名与 WASM 语法来源语言清单注册在 language-registry.ts。内置了 TypeScript、JavaScript、Python、Go、Rust、Java、Ruby、PHP、C/C、C#、Kotlin、Swift、Scala 等 13 种代码语言的提取器extractors/没有 Tree-sitter 语法的语言会被跳过交给 LLM 兜底而不是直接报错。2. 非代码文件也有专属解析器。Dockerfile、YAML、JSON、SQL、Terraform、Protobuf、Markdown 等由 parsers/ 下的专用解析器处理因此知识图谱里不只代码——CI 流水线、K8s 资源、数据库表都是节点边还能表达deploys、configures、defines_schema这类跨类别关系。3. importMap 预解析。扫描阶段就把每个文件的内部 import 解析好直接塞给文件分析器LLM 不需要再去猜依赖指向哪里——这大幅减少了语义边的幻觉和 token 消耗。4. 确定性 可复现 增量更新。同样的代码永远产出同样的边。此外结构指纹fingerprint支撑增量更新/understand再次运行时只重析结构有变化的文件纯注释、格式化之类的改动直接跳过几乎不花 token。 混合架构下半部分LLM 语义理解结构事实拿到手后file-analyzer 进入第二阶段用 LLM 的专家判断补上解析器给不出的东西数据来源示例函数/类/导入/调用边Tree-sitter确定性main()调用initApp()第 15 行文件摘要LLM提供日期格式化工具函数供整个 API 层使用标签LLMentry-point、api-handler、middleware复杂度评级脚本指标 LLM 判断simple/moderate/complex架构分层architecture-analyzer把节点归入 API、Service、Data 层学习导览tour-builder按依赖顺序生成的讲解路径语言概念注解LLM在出现装饰器、泛型的地方顺手讲一个知识点这个脚本先行、LLM 判断跟进的两阶段设计写进了 file-analyzer.md先运行配套的 extract-structure.mjs 拿到结构化 JSON函数、类、导出、调用图、指标LLM 在此基础上结合专家判断生成节点与边而不是逐行重读源码。 为什么要混合一张图说清分工官方 README 的 Under the Hood 一节把这套混合架构总结得很精炼Tree-sitter确定性解析出 import、导出、函数/类定义、调用点、继承。同样的输入永远得到同样的输出还能驱动指纹变更检测。LLM语义读源码 结构数据产出解析器做不到的东西——白话摘要、标签、架构分层、业务域映射、导览讲解。这个分工带来两个直接收益结构侧可复现图的骨架是纯函数式产出的团队提交图谱后任何人打开都一致方便 code review 与图谱即文档。增量更新极省 token只有真正发生结构变化的文件才重新过 LLM删除、纯注释改动走零 token 路径。合并阶段还有 symbol-loss 校验门防止 LLM 悄悄丢掉已有的函数/类节点。各批次的分析结果由 merge-batch-graphs.py 一次性合并规范化节点 ID、去重、清理悬空边、把测试覆盖边统一为生产代码 → 测试方向。 三步上手生成你自己的知识图谱第 1 步安装插件git clone https://gitcode.com/GitHub_Trending/un/Understand-Anything在 Claude Code 中执行/plugin marketplace add Egonex-AI/Understand-Anything或用仓库自带的 install.sh 一条命令安装到 Codex、Gemini CLI、Cursor、Copilot 等平台。第 2 步分析代码库/understand --language zh多智能体流水线会自动扫描、分批、分析产出.ua/knowledge-graph.json。首次全量分析较费 token之后每次都是增量只重析变更文件。第 3 步打开仪表盘/understand-dashboard交互式 Web 仪表盘打开按架构分层着色、可搜索、可点击点任何节点都能看代码、关系和白话讲解。还可以继续问/understand-chat 支付流程是怎么走的 /understand-diff # 当前改动的影响面 /understand-onboard # 给新人生成入职指南 核心文件导读想深入源码建议从这几个入口入手流水线总编排SKILL.md — 7 个阶段、增量更新的完整决策表Tree-sitter 插件tree-sitter-plugin.ts — 配置驱动的 WASM 语法加载与解析器复用结构提取入口extract-structure.mjs — 把脚本 解析器注册表跑成确定性 JSON语义分析规则file-analyzer.md — 节点/边的产出标准与显著性过滤分批策略compute-batches.mjs — 按语义相关性切批图合并与校验merge-batch-graphs.py设计文档docs/superpowers/specs/2026-03-14-understand-anything-design.md写在最后Understand-Anything 给出的答案其实很朴素让确定性的做确定性让智能的做智能的。Tree-sitter 保证图谱的每一条边都有据可查LLM 保证每一张节点卡片都读得懂。两者混合才得到了一张既是工程事实、又是教学材料——能教人而不只是唬人——的知识图谱。【免费下载链接】Understand-AnythingGraphs that teach graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.项目地址: https://gitcode.com/GitHub_Trending/un/Understand-Anything创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑