返回 html-video
2026-05-28-understand-anything-takeaways.md
根目录 / research / 2026-05-28-understand-anything-takeaways.md
1 # Understand-Anything 集成思路(v0.8+)
2
3 > Source: https://github.com/Lum1104/Understand-Anything
4 > License: MIT
5 > Date: 2026-05-28
6
7 ## 项目核心
8
9 把 codebase / wiki / docs 转成可交互的知识图谱。**不是直接生图**,而是**先把内容拆成结构化 JSON,再渲染**。
10
11 ## 5 个能搬到 html-video 的设计决策
12
13 ### ★★★★★ 1. 中间 JSON 作为真理之源(content-graph)
14
15 UA 把分析结果落在 `.understand-anything/knowledge-graph.json`,可 commit、可 diff、可在团队间共享。**渲染层(dashboard)跟数据层完全解耦**。
16
17 → html-video 借鉴:把"用户意图 + 抽取的内容结构"落成 `content-graph.json`,**再**用 Hyperframes 模板渲染。这样:
18 - 同一份内容可换不同视觉风格(warm-grain / cyberpunk / Swiss)
19 - 改风格不需要重 chat agent
20 - 改内容(替换某个数据点)只刷新受影响帧
21 - 用户可下载 JSON 备份/分享/版本控制
22
23 ### ★★★★ 2. 确定性 + 语义性分层
24
25 UA 用 Tree-sitter(确定性)抽结构事实 + LLM 抽语义("this file is for ...")。
26
27 → html-video 借鉴:用户输入文本里的**结构事实**用规则抽(数字 / 列表 / 标题 / 时间线 / 对比关系),**语义解读**才喂给 LLM(这帧讲什么 / 风格是什么)。能:
28 - 大幅降低 token 成本
29 - 结构提取可复现(同输入同输出)
30 - LLM 失败时结构事实仍可用
31
32 ### ★★★★ 3. Multi-agent pipeline(专人专事)
33
34 UA 拆 6 个 agent:scanner / file-analyzer / architecture-analyzer / domain-analyzer / tour-builder / graph-reviewer,并行 5 路。
35
36 → html-video 借鉴:把现在单 prompt 拆成 pipeline:
37 - `intent-parser`:用户意图分类(branding / data-viz / explainer / promo)
38 - `content-extractor`:从 prompt + 附件抽实体 + 数据 + 节点
39 - `structure-builder`:建立帧之间的语义关系(递进 / 对比 / 因果 / 时间线)
40 - `style-resolver`:根据用户描述("warm-grain" 等)生成 CSS tokens
41 - `frame-composer`:按 structure 生成 HTML 帧序列
42 - `validator`:跑 hyperframes lint + visual 检查
43
44 **好处**:每个 agent 独立 prompt 可单独迭代、可并行、可缓存。
45
46 ### ★★★★ 4. tour-builder 思路:图先 → 再 sort 成线性
47
48 UA 先建图(节点+边+依赖),再 topological sort 成"教学路径"。
49
50 → html-video 借鉴:HTML 视频是线性帧序列,但**帧之间的语义关系**(这一帧解释那一帧、这一帧承接前一帧的对比)应该先建图。然后选最佳播放顺序:
51 - 时间线类内容:按时间排
52 - 数据对比类:按重要度排
53 - 教学类:按依赖排(concept A 必须在 concept B 之前出现)
54
55 这是 html-video 现在完全没做的事 — 现在 agent 一次写一帧 HTML。如果用户给的是 5-frame 的 explainer,按 tour-builder 思路出来的会更连贯。
56
57 ### ★★★ 5. Persona-adaptive 渲染
58
59 UA dashboard 根据 junior dev / PM / power user 调详略。
60
61 → html-video 借鉴:同一份 content-graph.json,用户选 audience:
62 - 给同行:术语保留、节奏快
63 - 给客户:每概念一帧、慢
64 - 给社媒:9:16 + 字幕
65
66 **纯渲染层调整**,agent 不用重跑。
67
68 ## 一句话设计原则(直接借)
69
70 UA 的金句:"Graphs that teach > graphs that impress."
71
72 → html-video 翻译:"**教得清楚的视频 > 看着炫的视频**"。可以做产品 README 第一句 / 推特置顶。
73
74 ## 适合 html-video v0.8 的最小集成
75
76 不要一口气吃 5 条。建议先做 **#1(content-graph 中间 JSON)+ #4(图先 → sort)** 这两条最有杠杆的:
77
78 1. 加 `@html-video/content-graph` package:定义 `ContentGraph` schema(nodes: entity/data/text;edges: sequence/contrast/dependency)
79 2. agent 第一轮不出 HTML,出 content-graph.json
80 3. 第二轮按 graph 生成 HTML 帧序列(Hyperframes-style 时间轴)
81 4. 用户改内容只动 graph,HTML 自动重渲染
82
83 这是 v0.8 的 RFC-06 草案种子。
84
85 ## 怎么跟现状协调
86
87 v0.7 现在是直接 chat → HTML,**这条路径保留**作为快速入口("我就要一帧"场景)。content-graph 路径是**升级路径**,给"我要做完整短视频"或者"我要把这份资料拆成 5 帧讲清楚"的用户。
88
89 具体触发点 — agent 自己判断:
90 - 用户描述只对应一帧 → 走当前 v0.7 直接 HTML 路径
91 - 用户给的是多概念 / 时间线 / 对比 → agent 先出 content-graph,再 frame 序列
92
93 ## 不直接抄的事
94
95 - UA 是"分析现存代码/文档"工具,输入是路径;html-video 是"创作"工具,输入是描述/素材。pipeline 角色对应不上 1:1,借的是**思路**不是 schema。
96 - UA 的图谱本身是产物(用户看图);html-video 的图谱是中间产物(用户看视频)。所以我们不需要做 dashboard,content-graph 不暴露给用户也行(除非作为"高级编辑"入口)。
97
97 lines MARKDOWN