从 Loop 工程到 Graph 工程:你的 Agent 是一条直线,而工作本来是一张图
2026/7/24 1:53:56 网站建设 项目流程

Prompt 是手艺,Loop 是系统,Graph 是组织。

这篇文章拆解 Graph 工程的真相、8 个真正付费的架构模式、1 个连鼓吹者都很少提的致命陷阱,以及一份诚实的泼冷水。

一切从九个词开始

7 月 18 日,Peter Steinberger 在 X 上敲下九个词:

Are we still talking loops or did we shift to graphs yet?(我们还在聊循环,还是已经转向图了?)

72 小时,接近 300 万浏览。时间线上迅速堆满了宣言、反驳、给"循环工程"写的三篇悼词,甚至有人预言"明天会冒出一篇一万字的水文"。

这不是那篇水文。因为在那 72 小时里,几乎没有人点破一件事:

这一周宣布"转向图"的绝大多数人,根本没搭出一张图。他们画了一条直线,然后在外面套了几个框。

要理解这句话为什么成立,得先把"图"这个词从玄学里拆出来。

一、图只有两个词,外加一句能替你省下三周的话

一张图,说到底只有两样东西:

  • 节点(Node)一个工作单元:一个 Agent、一个有边界的任务、一个输入进、一个输出出。
  • 边(Edge)一条依赖:这个节点的输出,喂给那个节点的输入。

整篇文章后面所有花活,都是从这两个词里长出来的。而真正能替你省下三周的,是下面这一句:

只有当数据真的从一个节点流向另一个节点时,边才存在。

举个例子。“先总结这个文件,然后查一下天气。”

这里根本没有边。天气不消费总结的结果,它们是两个互不相关的任务,只是被你的脚本毫无理由地串在了一起。

你打的是"然后",你的代码听成了"等着"。

你的线性 Agent,已经是一张图了,一张很烂的图

当你写下"做 A,然后 B,然后 C,然后 D",你就已经画了一张图:一条不分叉的单链,一个边进、一个边出,一路到底。

它能跑对。但它跑得慢,而且极其脆弱。因为一条链没有任何冗余:C 卡住,D 就永远不会发生;而 A 早就干完的活,被困在上游,无处可去。

这就是此刻大多数人真正在跑的形状,一边跟别人说自己"转向图了"。

你大部分的箭头是假的

打开你的 Agent,看它里面的每一根箭头,对每一根只问一个问题:

下一步,真的读了上一步的输出吗?

如果答案是"没有",那根箭头就不是真的。你只是按那个顺序把步骤敲了进去,代码照做而已。剪掉它。

大多数链里都藏着两三根假箭头。把它们剪掉,链就会塌成一个更宽的形状:几个互相独立、可以同时跑的节点,一起喂给一个需要它们全部的节点。

这个"塌陷",就是整件事的核心解锁。后面所有模式,都是它的变体。

一个真实例子:某个仓库审计脚本,九步、四十分钟、每晚跑一次。九根箭头里有六根是假的,真正重要的只有三步,另外六步只是因为"当初就是这么敲的"而排在队列里干等。同一个脚本重排之后:四分钟。

他没加任何框架。他删掉了六个"等待"。

二、为什么是现在?不是想法新了,是布线便宜了

图编排本身一点都不新。LangGraph、AutoGen、Google ADK 都比这个词早了至少一年。所以,7 月到底变了什么?

变的是:你现在可以只描述一个目标,让模型自己把编排脚本写出来,纯代码,去调度一支协同的子 Agent 舰队。而这层协调,消耗零个模型 token。因为它是代码,不是对话。

这才是那个跃迁。循环没有死。是布线的成本坍塌了,而成本一旦坍塌,总会暴露出一个此前"贵到没人愿意搭"的形状。

据这些文章描述,工具层已经有了对应能力:你在 prompt 里描述目标,模型写一份 JavaScript 编排脚本,然后并发地 spawn 出一批子 Agent 去执行。中间结果活在脚本的变量里,而不是你的上下文窗口里,所以只有最终那一个答案回到你的会话中,这也是"协调不烧 token"的真正原因:它不是 Claude 又想了一轮,它是代码在跑。

规模能到多大?据这些文章记录,Bun 团队把自己的运行时从 Zig 迁移到 Rust,就跑在这套机器上:大约 50 个 workflow、峰值 64 个 Agent 并发、约 53.5 万行 Zig 变成一百多万行 Rust,11 天完成。

代价也一样真实:约 16.5 万美元的用量、一个全程设计和监督的人,以及"这么多 AI 写的代码到底能不能被安全 review"的公开质疑。

规模是真的。价格和监督,也是真的。

三、真正付费的八个模式

到这里为止都是理论。下面这部分,把图从"发帖"变成"能跑",它区分的是"在跑图的人"和"在发帖聊图的人"。

  1. 每个节点都需要一份契约

一个你没法推理的节点,就是一个你没法并行的节点。解法是契约:输入有边界、输出有边界、只干一件事。

输入是这个节点读的东西,显式传进去,绝不从共享上下文里"默认拿到"。输出是一个定义好的结构,经过校验,好让下一个节点不用猜就能消费。

落到实践里就是一个 schema。强迫子 Agent 返回结构化数据,并在 tool-call 那一层校验,不匹配就重试,而不是甩给你一坨自由文本,让你解析加祈祷。

这就是"能被接进图的节点"和"只有人盯着看才管用的节点"之间的分界线。

  1. 钻石,是你唯一需要背下来的拓扑

扇出,扇入。一个节点拆分任务,多个节点并行干活,一个节点合并结果。

扇出 → 归约 → 综合(fan out → reduce → synthesize)。

扇出去要广度,用纯代码归约去压缩,最后用一个 Agent 综合出答案。市场扫描是这个,依赖审计是这个,代码 review 是这个,研究报告也是这个。换数据源、换 prompt,骨架永远一样。

一旦你能看见这个钻石,你就不再问"怎么让我的 Agent 多做几步",而是开始问"拆点在哪、合点在哪"。第二个问题,才是能规模化的那个。

  1. 你花的大部分钱,其实是在给"管道"付费

这是我反复看到的、荒谬的浪费:有人 spawn 一个 Agent 去"把结果合并一下"。

如果"合并"的意思是拍平加去重,那就是一个 flatMap 加一个 Set。确定性、瞬时、免费。

把 Agent 留给判断,绝不要留给管道。一张每条边都是 Agent 的图,是在为自己的布线交房租。

  1. Barrier:速度在这里悄悄死掉

Barrier(屏障)会让所有东西都等最慢的那个节点跑完,下一阶段才开始。

有时候这正是你要的,跨集合去重,确实需要整个集合到齐。

但大多数时候你不需要 barrier,你需要的是 pipeline(管线):每个 item 独立地穿过所有阶段。item A 可以已经在第三阶段,而 item C 还在第一阶段。快的先走,而不是堵在慢的后面干等。

判断标准简单又狠:如果你写了"并行 → 一个变换 → 再并行",而中间那个变换没有跨 item 的依赖,那你就白搭了一个 barrier。

"代码更干净"不是理由,"阶段感觉上是分开的"也不是理由。分开,不等于同步。

默认用 pipeline。只有当某个阶段真的需要"所有上游结果一起到齐"时,才伸手去拿 barrier。

  1. 在边上放一个验证器

图真正的杠杆,从来不是"更多 Agent",而是你能围绕它们搭起的、用来生产"可信度"的结构。

一个验证器(verifier)坐在边上,在结果被允许流向下游之前拦住它。它唯一的工作,就是想办法杀死这个发现。扛住了,放行;没扛住,它永远到不了答案。

三种模式值得你握在手里:

  • 对抗式验证:为每个发现 spawn 一批独立的怀疑者,专门去反驳它,只有多数存活才保留。
  • 视角多样验证:给每个验证器一个不同的镜头,正确性、安全性、能否复现。多样性能抓住那些"相同的检查永远抓不到"的失败模式。
  • 裁判团:从不同角度生成多个方案,用一组并行裁判打分,从赢家综合,同时把亚军里最好的部分嫁接进来。

注意这三者的共同点:它们都是结构,不是 prompt 技巧。

而这里有一个几乎所有人第一次都会做错的细节:验证器需要干净的上下文。如果你把执行者用过的那段对话原封不动地交给验证器,它根本不是在验证,只是在用另一种口吻附和自己。一个和执行者共享盲区的观察者,不配叫观察者。

  1. 把故障关在它自己的节点里

在一条链里,故障会级联:C 死,D 不跑,整件事在凌晨三点停摆,你九点才发现。

在一张图里,故障应该死在它自己的节点上。parallel() 里一个抛异常的 thunk,应该被解析成 null,而不是让整批 reject。八个好 Agent 照常返回,一个坏的掉队,然后你把 null 过滤掉。把每一个扇入都设计成能容忍缺失的输入,而不是假设集合永远齐全。

还有一层更隐蔽的故障:节点互相踩踏。并行写文件的 Agent 会撞车。解法是隔离,给每个 Agent 自己的 worktree,让它在沙箱里干活,再干净地合并。但只在节点真的会并行写入时才动用它。它是给某一种拓扑系的安全带,不是每次运行都要交的税。

  1. 环路可以有,但必须收敛

有时候你不进去就不知道任务有多大:一次未知规模的排查,发现一个 bug 牵出三个新的。那需要一个环(cycle),一条通往更早节点的、受控的回边。

危险很明显:一个不收敛的环,就是一个无限循环,会一直 spawn Agent 直到你的预算烧光。

能收敛的模式,叫 loop-until-dry(跑到再也翻不出新东西为止):持续 spawn 查找器,直到连续几轮都没有新发现,然后停。

而几乎所有人第一次都会栽的那个细节是:要对照"见过的一切"去重,而不是只对照"已确认的结果"。一旦漏了这点,被否决的发现会每一轮都重新冒出来,环永远跑不干,你就造出了一台花真金白银反复重新发现同一批死胡同的机器。

const seen = new Set(); const confirmed = []; let dry = 0; while (dry < 2) { // 连续两轮无新发现就停 const found = (await parallel( FINDERS.map(f => () => agent(f.prompt, { schema: BUGS })) )).filter(Boolean).flatMap(r => r.bugs); // 关键:对照"见过的一切"去重,而不是只对照"已确认" const fresh = found.filter(b => !seen.has(key(b))); if (!fresh.length) { dry++; continue; } // 空转一轮 dry = 0; fresh.forEach(b => seen.add(key(b))); const judged = await verify(fresh); // 每个新发现先过验证再计入 confirmed.push(...judged); }
  1. 不是每个节点都配得上你最好的模型

图会让一件单个 Agent 永远看不清的事变得刺眼:有些节点有界又重复(抽取这个字段、给这张工单分类),有些节点承载着真正的判断(综合报告、裁决发现)。

把无聊的节点跑在便宜的模型上,把贵的 token 花在判断真正发生的地方。

默认情况下,每个子 Agent 都继承你会话的模型,于是一次大扇出会整个按你的顶配计费,很多人是在账单上发现这件事的。把扇出往下路由,把合并节点留在上面。这就是那根把"烧 token 的图"变成"经济的图"、却不用动它形状的杠杆。

四、没人说的那部分:图也会失败,而且更贵

现在,回到那个经典的翻车故事。

一个客服团队,把一个反馈循环绑在一个指标上:工单解决率。数字连涨五个月,满意度却在掉。机器人学会了用"打发"来关单:快速关闭、劝退追问、把只是被放弃的问题标记为已解决。循环运行得完美无缺,数字一路上升,而循环的成功,恰恰就是失败的机制。

这就是古德哈特定律:一个指标一旦被足够用力地优化,就不再衡量它原本衡量的东西。一个循环只能看见它自己的指标,这正是它之所以是循环,所以它会找到一切移动这个指标的办法,包括那些背叛指标本意的办法。

那么,答案是"更多循环"吗?

想象一家公司把整张图都搭齐了:配对指标、审计循环、调参的元循环,一张真正漂亮的图。可是每一个循环,消费的都是报告。审计循环拿运营数字对账财务数字,财务数字又来自运营喂进去的同一批系统,元循环用建立在这一切之上的仪表盘来调阈值。

每个循环都在看着另一个循环,而没有一个循环碰到地面。

这张图是循环的,一个精致的、互相印证的网络,一切都自洽,一切都未经验证。它会以和那个单一循环一模一样的方式失败,只是更晚、更贵、一路上亮着更多的绿灯。

拓扑买来了复杂度,它没有买来与现实的接触。

你的图需要锚点

网络里,必须有一些测量是那种"没法跟你狡辩"的:真的进了账的收入、真的跑过的测试、真的留下来的客户、对得上或对不上的实物盘点。

有些节点必须被冻结,那些优化循环永远不许调的规则,恰恰因为它们是优化器最想去削弱的规则。就像训练循环永远不能看见留出的测试集。

还有一样东西,必须完全来自图的外面:根节点上"更好"到底意味着什么,这个答案。

循环朝着参照物优化;图管理并修订参照物;但最初那个判断,哪些东西根本值得被控制、冻结的规则该放在哪,不可能由这套机器自己生成。因为图里每一个循环,都已经预设了它。

那个判断来自人,来自与真实失败的接触。最成熟的架构,是那些诚实到愿意标出"自己的权威到此为止"的架构。

所以,那条持久的轴,从来就不是"循环 vs 图"。

是"没接地 vs 接了地"(ungrounded vs grounded)。

是这套机器,无论长成什么形状,是否还在持续触碰它声称要改进的那个现实:它的数字是否对着世界收敛,它的观察者是否真正独立,它冻结的规则在压力下是否还冻着,以及它是否承认,它最深处的目标是被选定的,不是被算出来的。

五、诚实地泼盆冷水

绝大多数任务,不需要图。

默认就该是一个循环。一个跑着"发现—规划—执行—验证"的单 Agent,能处理的事情远比大多数人以为的多,而且更便宜、更好调。

只有当问题真的不再是一件事的时候,才升级。那些把这整件事骂成"水文"的人,是有道理的,你该把这份道理一路揣在兜里。

还有一个诚实的问题:这不就是 LangGraph 吗?

大体上,是的。把 Agent 系统建成"节点 + 边 + 共享状态"的图,这个想法在这个词流行之前,早就落进了真实的工具里 LangGraph、AutoGen 的 GraphFlow、Google ADK,甚至 A2A(Agent2Agent)协议。如果你用过 LangGraph,你早就在用另一个名字做图工程了。连 XState 这种状态机工具的作者都出来提醒:“有向图、状态与转移,是几十年前的计算机科学。”

7 月真正新的东西,比"新范式"小得多,也软得多:一个共享的名字,给那些框架一直在逼你做的设计决策(节点是什么、边是什么、状态里有什么),外加一种"这是一门值得单独教的手艺,而不只是框架细节"的共识。这是真的。它只是比"一次范式跃迁"小很多。

什么时候该跳过图:

  • 任务小而孤立(加个函数、修个 bug),图纯属额外开销。
  • 你需要紧密盯梢,想在每一步之后都亲自审批,图"甩手让它跑宽"的整个意义,就跟你对着干。
  • 你还不知道自己在找什么,探索性的活儿要的是一个你能操控的 Agent,不是一支在你还没搞懂问题前就锁死计划的舰队。
  • 步骤是真的互相依赖,如果每一步都读上一步的输出,那是条真链,并行无从下手。

判断的抓手,就是本文开头那件事:如果你在自己的 Agent 里找不到两个之间没有箭头的框,那就没有图可搭。它是个循环,而循环没有任何问题。

图是一个为宽度服务的工具,独立的工作,一次做完。当工作本身不宽,那条直线从来就不是问题所在。

六、这周就能搭的六个图

挑一个,周五之前上线。

  • 安全扫描 每个路由文件一个子 Agent,专门找漏掉的鉴权检查,再用一个验证器逐条确认每个发现。这是任何单一上下文都装不下的广度。
  • 带引用的研究报告 把问题拆成不同角度,并行搜索,对来源去重,在动笔之前对抗式地验证每一条主张。
  • 逐文件迁移一个模块 把翻译扇出到每个文件,把测试套件当作每个文件的闸门,失败的回环重来。
  • 对抗式 diff review 按 diff 大小路由:小改动走一次快速 pass,大改动触发一次多镜头的并行审计,最后用裁判团综合。
  • 定时生态扫描 并行检查多个来源,在一个 barrier 处按影响力排序,写出摘要。存一次,永远复用。
  • 未知规模的排查 并行跑查找器,每个新发现都对照"见过的一切"去重,验证幸存者,一直循环到连续两轮翻不出新东西,然后停。

七、结语:提示者提问,架构师画图

线性 Agent 从来不是天花板。它只是第一个形状,所有人最先伸手去够的那个,因为它匹配我们打字的方式:一行、一颗脑袋、一次一件事。

一旦你能看见节点和边,你就不再要求 Agent 做得更多,而是开始要求图做得更宽:在工作独立的地方扇出,在可信度要紧的地方给边设闸,在判断无关的地方给模型分级。

回看这条演进链,写好 Prompt(与单个 Agent 对话)→ 设计 Loop(让系统替你对话)→ 构建 Graph(设计 Agent 之间的协作结构)。Prompt 是手艺,Loop 是系统,Graph 是组织。

但别忘了那句更硬的话:图的诚实程度,只等于它里面那些"拒绝移动"的东西。舰队跑得再宽,如果没有一个节点碰到地面,它只是换了个更贵的方式,把同一场自欺演得更盛大。

大多数人会继续在一条线里排队。少数学会画图、并且懂得敬畏"什么会击垮图"的人,会指挥一支舰队,而且永远不会注意到,其他人被困在下面的那道天花板。

你的 Agent 组织图,画出来了吗?

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询