意图树与画布
我把正在追的事和它们的来由记成一棵树,材料画布是同一个需求里的另一部分。意图树在 2026 年 8 月 19 日做完,10 月两套合并,旧画布入口归档了。
- TYPE
- 意图记录与材料画布
- STATUS
- 意图树已做完,两套已合并,旧画布入口已归档
- WHEN
- 2020 至今,意图树 2026 年 8 月做完
- BUILT WITH
- 早期用 Unity,后来的树由文档维护
这是什么
我想记下自己在追什么,临时分出来的一件事又是从哪里来的。以前同时开着几段对话,手上能并行做事,但这些关系只留在对话里,切走以后要再接着做,得先想起来自己为什么会走到这里。树要管的是这个不断变化的意图,任务和计划是顺着它往下来的东西。聊着聊着,要做的事会变,原来那条线可能先挂起,后面还要能接得回来。
画布的想法更早,2020 年 12 月我就想让相关的东西放在一块二维的板上,能看见,也能拖动,2021 年 4 月又写下了思路被打断以后找回主线的需要。同一个需求后来做了四回,前三回先做了画布,意图和材料该怎么支撑工作还没安排好。
线从哪里分出来
树上的一条记录叫节点。复盘里对连线的要求很简单,后面这件事得是从前面那件事推出来的,不能因为两句话挨着说就连起来。图里编了一个“做一个小游戏”,下面接着想设计关卡、调试操作,这两条线都有来由,另外想到学做面包,就单独开一个根节点,从它重新往下记。
旧版每轮对话都会留一个节点,后来才改成每个节点放一个意图。同一件事聊了几轮,应该还在同一个地方,真正分出新意图时再往下接,看的就是事情之间的关系。
FIG. 1 · 线从哪里来
示意图,按历史记录中的连线原则画。“做一个小游戏”和“学做面包”都是虚构举例,线表示来由,无关的话题另开一棵树。
旧版留下了什么
后来整理旧记录的复盘汇总里,有 135 棵树、608 个节点,其中 534 个节点的关系是程序固定填的,517 个没有父节点,只有 7 棵树有父子边。缺父节点的也可能同时用了固定关系,这两项不能加起来当成另一批节点。
这和旧程序的退化有关,它收到简化的标签时,会把编号和关系写成固定值,又没有填父节点,留下很多条记录,却说不清它们从哪里来。图里的数来自历史复盘的汇总。
当时修改以后,给程序看的结构会列出节点、根和当前节点,给人看的则是一棵缩进的树。找不到父节点时就让它另起一棵,解析失败时又会补一条失败记录,接在前一个节点下面,这样补出来的连线不一定代表两件事真有推导关系。
FIG. 2 · 旧版记录里的结构问题
数来自历史复盘的汇总,节点与树各用自己的总数,两项节点问题不能相加。
后来怎么记
2026 年 7 月重建时,我把树改成一份持续维护的文档,不再按消息一条条堆。新开一件事、分出另一条线、切换回来,或者做完、放弃,都由 agent,也就是负责维护这些记录的程序,去更新文档。
文档里会标出哪些意图还在做、哪些先挂起、哪些已经做完或放弃,状态转换的条件没写全。历史画布会从树里取出“人在追什么”的那一部分,接着执行的其他 agent 也会收到意图文档作为上下文,但材料卡片到底怎么和树挂在一起,我还没有整理出完整说明。
FIG. 3 · 一份文档怎么被维护
示意图,按文档的维护方式画,节点内容是虚构例子。文档曾供历史画布和其他 agent 使用,材料卡片怎么挂到树上、状态转换的完整条件没写全,图里也没画。
做到哪了
- 意图树在 2026 年 8 月 19 日做完,10 月两套系统合并成一套,旧画布入口归档了。
- 7 月那版画布有工程检查通过的记录,但体验还没有验证过。