Loop与方法论 · 2026/08/25
Graph Engineering 不是替代 Loop,是上面一层
Loop 管一条回路何时自查、何时停。Graph 管多条回路谁先做、谁等谁、状态从哪条边走。升级错了:弱节点铺进图里,失败更大、更难查。

先看一件具体的事。一个编码 Agent 自己写、自己跑测试、不过就改,改到测试过了才交:这是一条回路。再看另一件:写代码的 Agent 交完,测试 Agent 才动;测试不过,打回给写代码的;过了,还要等人点头才能合。三条回路,中间有等待、有打回、有人工卡点。后一件不是把前一件「升级」成了新词,是在已经能跑的回路上面,多设计了一层:谁先、谁等、状态从哪条边过去。
前一层叫 Loop Engineering,后一层叫 Graph Engineering。一层管节点,一层管拓扑。不是新词替换旧词。
公开讨论里常把 Graph 写成 Loop 的升级版,好像上了编排框架,回路那层就可以不管了。升级错了。一条不知道何时停、停了也不知道算不算过的回路,画进再漂亮的图里,也只是一个弱节点。Loop 没设计好就上 Graph,失败只会更大,也更难查:你分不清是节点自己没跑完,还是边上的顺序、等待、状态传错了。

节点在问什么
一条回路要能单独验收,只需要答清四件事:
- 这一轮计划做什么。
- 做完看什么(测试、编译、人工抽检,总得有一个能判对错的信号)。
- 没过怎么纠正,最多转几圈。
- 什么叫停:达标交出,或明确失败、不再空转。
这就是 Loop 的工作。一个经验丰富的工程师不会写完就交,会先看测试和边界。Loop 把这个习惯做成 Agent 的工作方式,而不是一次生成碰运气。细节见 什么是 Loop Engineering:让 AI 先自查再交付。
单节点自环已经是最小的图:节点连回自己。只这一条回路时,你还不需要单独设计「边」。需要 Graph 的信号是:出现了第二个会等它的东西。
边在问什么
Graph 问的不是「这个 Agent 聪不聪明」,是拓扑:
- 顺序:谁必须先结束,谁才能开始。
- 分支:过了走哪条边,不过打回哪一个节点。
- 等待:人工卡点、外部系统、另一个 Agent 的输出,没到齐能不能往下走。
- 状态:上一跳留下什么,下一跳读什么;读不到,就不是「模型忘了」,是边没设计。
几个 Agent、几个工具、几个人工卡点,只要会互相等,就有图。图的质量不取决于画了多少框,而取决于每条边能不能说清:什么条件下走、带走什么、走失败怎么办。
所以「vs Loop」的答案很硬:Graph 包含 Loop,不取消 Loop。右边那张图里,左边的自环还在,只是变成了其中一个节点。
为什么弱回路上图,会更难查
只跑一条回路时,坏了就翻这一圈:计划、执行、观察、纠正,停在哪一步,信号在哪。
铺成图之后,同一次失败至少有两种完全不同的原因。一种是某个节点自己的回路没达标:测试没过,它却往下传了。一种是节点其实过了,边错了:不该先跑的先跑了、该等人的没等、状态在边上丢了。两种看起来都像「多 Agent 不稳」,查的入口完全不同。
把弱节点嵌进大图,还会放大。一个会空转的回路,单独跑只浪费自己的圈数;放进图里,下游都在等一个没有停止条件的上游,整张图一起空转,日志也缠在一起。这不是 Graph 比 Loop 高级,是你把还没验收的节点,当成了可以连边的单元。
什么时候真的需要 Graph
需要的信号很具体,不是「我们上多 Agent 了」这句话:
- 已经有一条能单独验收的回路,再出现第二条,并且它们互相等。
- 中间有必须人点头的卡点,不点就不能往下。
- 同一份状态要被两个以上节点读,而且读错会把后面整条链带偏。
还不需要的信号也同样具体:
- 只有一个 Agent,质量不稳。那是回路没有停止条件和验收信号,加编排框架解决不了。
- 想用「上了 Graph」代替「先写清什么叫过」。框画得再多,节点仍不可验。
白泽的顺序还是先边界、再自动化:节点验不了,就不要先铺图。先让每一条回路能单独说清何时自查、何时停,再谈多条回路怎么连。咨询走预约诊断。
