DC娱乐网

200万阅读的推文引爆了一个问题:图工程GE会取代循环工程LE吗?

阅读导览190 万查看的推文引爆了一个问题:Graph Engineering 会取代 Loop Engineering

阅读导览190 万查看的推文引爆了一个问题:Graph Engineering 会取代 Loop Engineering 吗?答案是:不会。这篇文章拆透两者的真实关系,给你一个不再纠结的决策框架。01 /理解 ReAct、Reflexion、ReWOO、Plan-and-Execute 四种循环模式的区别和适用场景02 /搞懂 Graph Engineering 到底在 Loop 之上加了什么、为什么要加、加了的代价是什么03 /拿到一个可操作的决策框架:什么场景只用 Loop,什么场景该上 Graph

Peter Steinberger 在 X 上发了九个词。190 万查看。6400 点赞。

"Are we still talking loops or did we shift to graphs yet?"

Carlos E. Perez 紧接着写了篇长文《From Loop Engineering to Graph Engineering?》——33 万查看。一千多条回复塞满了争论。

如果你去翻这些回复,会发现绝大多数人卡在了同一个误解上:

"Graph 正在取代 Loop。Loop 过时了。"

这个判断只对了一半。而且对的那半,正好是最危险的——它会让一个该用 Loop 的团队硬上 Graph,让一个该上 Graph 的团队还在 ReAct 循环里反复烧钱。

01先说清楚:什么是 Loop Engineering?它哪里不够用了?

Loop Engineering 的最核心模式叫做 ReAct——Reasoning + Acting。2022 年一篇 ICLR 论文提出来的,思路极其简洁:

Thought → Action → Observation → Thought

LLM 收到任务 → 思考需要什么信息 → 调用工具获取 → 观察返回结果 → 再想下一步 → 循环直到完成。

这个模式让 LLM 从"只会输出的文本生成器"变成了"能自己调用工具解决问题的行为者"。到今天为止,几乎所有主流 Agent 框架的默认模式都是 ReAct。

但它在生产环境跑了三年,暴露了五个硬伤。

上下文腐烂(Context Rot)。

每轮循环的思考、工具调用、观察结果全部塞回同一个上下文窗口。第 1 轮 2000 token,第 5 轮 8000,第 10 轮 18000。成本线性飙升只是表面,更致命的是模型注意力被稀释了——原始任务目标被淹没在几千 token 的推理自言自语里。Agent 在第 3 轮还记得要干什么,第 12 轮已经开始对着自己的输出反复分析,完全忘了初衷。

错误不可恢复(Error Cascade)。

ReAct 恢复错误的逻辑本质上是在赌:赌模型能自己发现循环、自己意识到循环是错的、自己想出替代方向。但 LLM 在同一条推理链里极难跳出来。工具返回异常 → 模型用同样工具再试一次 → 异常 → 换个参数再试。上万 token 烧掉了,答案还是错的。

工具选择混乱(Tool Overload)。

单个 Agent 挂 15-20 个工具时,工具选择准确率急剧下降。两个功能相近但使用条件不同的工具,模型经常选错。工具返回出乎意料的格式,模型不会降级——它只会换参数再调一次。

缺乏控制粒度。

ReAct 是全有或全无的。不能暂停子任务等审批。不能为不同步骤选不同模型。不能在中段做独立质量校验。循环要么跑完,要么杀掉。

可观测性差。

你只知道 LLM 想了什么、调了什么工具、拿了什么结果。但你不知道:为什么在这里走分支而不是直行?第几步的决定导致了最终错误?

这些不是 ReAct 的设计缺陷。它是一个 2022 年的简洁模式,没人能预见三年后它会扛什么样的生产压力。行业面对硬伤的反应很自然:找更好的方案。

02于是 Graph Engineering 来了

Graph Engineering 的核心思想是把整个 Agent 系统建模成一台有状态的有向图状态机。

Nodes:每个节点是一个独立的函数或专用子 Agent。职责单一,通常只管理 3-5 个工具。Edges:条件逻辑。读取当前系统状态,决定下一步路由到哪个节点。支持分支、循环和回退。Shared State:所有节点共用一个 State 对象,保存中间结果、决策记录和错误信息。

这套架构带来了几个 Loop 做不到的能力:

多 Agent 协作。 Supervisor 节点拆解任务,分给 Researcher、Coder、Reviewer 并行工作,最后汇总。每个子 Agent 的工具集小且边界清晰。

条件分支。 Researcher 返回质量不够→不走 Coder,走"重新搜索"分支。Coder 编译失败→不走 Reviewer,走"修复重试"分支。完全不需要 LLM"自己发现做错了"。

人工介入。 Node 可以设 interrupt。需要审批时系统暂停,等人给了结论再继续。State 不丢、上下文不腐。

独立上下文。 每个 Node 有自己的上下文窗口。Researcher 的 8000 token 历史不会污染 Coder 的输入。

完整追踪。 每一步的决策路径记录在 State 里。你可以看回放:第 1 步走了 Node A → 第 2 步 Node B → 第 3 步条件不满足,走了降级分支。

目前在 LangGraph 生态里,已经形成了几个被反复验证的 Graph 模式:Supervisor/Router(一个中心节点拆任务分发给子 Agent)、Orchestrator-Subagent(管理者拆分并行任务并汇总)、Generator-Evaluator(一个写一个验,质检通过才往下走)。

看起来什么都解决了。

03最大的误解:Graph 替代 Loop

这里有一个关键的认知陷阱——也是那 190 万查看背后最深的误解。

人们把"Graph 在 Loop 之上构建"理解成了"Graph 取代 Loop"。

这是错的。

LangGraph 是目前最主流的 Graph Engineering 框架。打开它的代码,你会发现每个 Node 内部跑的仍然是 ReAct Loop,或者 Reflexion Loop,或者 Plan-and-Execute Loop。Graph 不执行——它编排。执行仍然发生在每个 Node 内部的 Loop 里。

把 Loop 理解成引擎的气缸。每个气缸独立做工:吸气→压缩→做功→排气。这是 Loop。

Graph 是曲轴和控制系统:它决定哪个气缸在什么时候点火、把动力传到哪、什么时候怠速、什么时候加速。

没有气缸,曲轴转不动。没有曲轴,气缸也只能原地喷火,车不动。

Loop 是原子执行单元。Graph 是编排层。不是替代关系,是分层关系。

这个区分不是理论游戏——它直接决定你的架构选型。理解了"Graph 只是在 Loop 外面加了一层条件路由控制",你就不会在只需要一个简单循环的场景里上 Graph Architecture,平白引入 Node 间状态同步和多 Agent 调试的复杂度。

04那到底什么时候该用什么?

决策框架只有一个问题:你的任务需要额外那一层编排吗?

只用 Loop:

任务 3-5 步内能跑完不需要人工审批介入工具数量不超过 10 个失败直接重试就能解决不需要每步的决策审计

例:一个搜索摘要助手。一次搜索不够就两次,两次不够三次。ReAct Loop 够了。

该上 Graph:

需要多个专业化 Agent 协作完成一个任务工作流里有必须等人拍的审批点不同步骤不同模型:推理用小模型省钱,关键判断用大模型失败不能简单重试——A 挂了走 B,B 挂了走 C每一步的决策路径需要可追溯

例:代码生成→审查→部署流水线。生成阶段用便宜模型快写,审查阶段用严格模型验质量,部署前等人工确认。任何一步失败都走不同分支处理,不能无脑重试。

最危险的场景: 简单任务硬上 Graph。本该一个 ReAct Loop 解决,拆成 5 个 Node、10 条 Edge、一个共享 State。多了 3 倍的代码量、5 倍的调试时间,和一堆本不存在的状态同步 bug。

Andrew Ng 说过一句话,在 Loop vs Graph 的讨论里尤其值得记住:"The simplest agent that works is the best agent."

05你不是在选边站,你是在选层

Peter Steinberger 的那九个字能引发 190 万查看,不是因为"Graph 要取代 Loop"这个结论多正确,而是因为这个提问精准地戳中了行业正在经历的转型痛苦:用单一 ReAct 处理复杂任务的团队,被上下文腐烂和错误级联反复折磨;尝试用 LangGraph 上图的团队,正在被架构复杂度困扰。

两边都不舒服。于是大家迫切想要一个"选一边就不用再纠结"的答案。

但真正的答案没那么性感:先学会用 Loop 跑通你的 Agent,再等它真的需要编排时,再上 Graph。

曲轴和气缸,谁也取代不了谁。