假如你要开一家餐厅,后厨有三种做事方式:标准菜谱——每道菜按写好的步骤执行,新人照着做就能出菜,味道永远稳定;反复试菜——新菜研发时,做出来尝一口,咸了减盐、淡了加盐,直到客人满意才定型;当家主厨——你只告诉他“今晚一桌川菜,预算八百,有位客人忌辣”,配菜、火候、临时换菜全由他自己拍板。 这三种方式,恰好对应了 AI 应用开发的三种范式:Workflow(工作流)、Loop(循环) 和 Agent(智能体)。Workflow 把每一步写成固定脚本,Loop 在不断迭代中逼近目标,Agent 把决策权交给模型。它们不是互相取代的进化关系,而是各有所长的三种工具。这篇文章带你从“谁驱动执行”“谁做决策”“结果是否可预期”三个维度看清它们,学会在什么场景选什么范式,以及如何把它们嵌套成混合架构。

岗位关联

对 AI 从业者而言,这三者是技术选型的基本功。搞懂“什么时候用哪种范式、怎么组合”,你才能给业务方讲清楚方案理由,避免把简单问题做成高成本系统——这是架构师与“只会调 API 的人”之间的分水岭。

目录
  1. 可视化演示
  2. 范式总览
  3. 控制流对比
  4. 自主性对比
  5. 确定性对比
  6. 场景适配
  7. 混合架构
  8. 选型决策框架
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示Loop、Agent、Wor的核心机制,通过总览/传输/转换/输出四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Loop、Agent、Wor:三种范式 三种范式核心定义与控制流分析 自主性与确定性维度对比 核心机制可视化 Loop、Agent、Wor整体架构与关键组件

范式总览

走进一家繁华商业街,你会看到三种后厨:快餐厅把所有菜品的做法写成厚厚一本操作手册,步骤精确到“薯条炸 90 秒”;新派餐厅的研发台摆满试吃碟,厨师反复调味直到配方定型;私房菜馆里,主厨根据当天食材和客人偏好即兴创作,菜单上只写着“时令”两个字。这三类后厨,恰好是 AI 应用开发中三种范式的缩影。

Workflow(工作流)把业务流程拆成固定步骤,步骤之间通过明确的前后关系连接,每一步做什么、数据流向哪里,全部在开发阶段定义清楚。Loop(循环)则定义一个可验证的目标,让系统反复执行某段逻辑,每次根据验证结果调整策略,直到满足退出条件。Agent(智能体)只接收一个目标,由大模型在运行时决定调用哪些工具、按什么顺序执行、如何应对意外。

从演进脉络看,Workflow 是工业化时代的流水线思想,Loop 是控制论中的反馈机制,Agent 则是大模型能力释放后的产物。但“新”不等于“更好”,三者的核心差异在于三个维度:控制流由谁驱动、决策权在谁手里、输出是否可预期。用一个公式来概括:

开店之前先想清楚自己是什么类型的后厨:如果你开的是快餐厅,标准菜谱(Workflow)就是主力;如果是研发新菜,试菜台(Loop)必不可少;如果想做高端私房菜,就得请一位能扛事的当家主厨(Agent)。三种厨房各有生意可做,关键看你的定位。

范式=f(控制流,自主性,确定性)\text{范式} = f(\text{控制流}, \text{自主性}, \text{确定性})
三种范式是同一维度空间中的三种不同取值组合,不是不同时代的替代品。
  1. 范式(范式)代表 Workflow、Loop、Agent 这三种系统组织方式。它是变量,取值不同,系统行为就不同。
    范式∈{Workflow,Loop,Agent}\text{范式} \in \{\text{Workflow}, \text{Loop}, \text{Agent}\}
  2. 控制流(控制流)回答“谁驱动执行”。是写死的流程、循环条件,还是模型根据目标临场规划。
    控制流:流程定义→循环条件→模型目标\text{控制流}: \text{流程定义} \to \text{循环条件} \to \text{模型目标}
  3. 自主性(自主性)回答“决策权在谁手里”。规则写了算、人说了算,还是模型说了算。
    自主性:规则→人工→模型\text{自主性}: \text{规则} \to \text{人工} \to \text{模型}
  4. 确定性(确定性)回答“输出是否可预期”。同一输入是否总是得到同一结果,结果波动范围有多大。
    确定性:固定产出→收敛逼近→开放探索\text{确定性}: \text{固定产出} \to \text{收敛逼近} \to \text{开放探索}

控制流对比

在餐厅后厨,总有一个东西在“催着”厨师干活——快餐厅靠出菜口的传单,一张订单贴出来,厨师就知道下一步做什么;研发厨房靠定时器和试菜标准,时间一到就去尝,不达标就继续调;私房菜馆靠主厨的目标感,他不需要别人指挥,心里装着“今晚这桌川菜”就自己动起来。这个“催着干活的东西”,就是控制流。

所谓控制流,就是系统执行的驱动力来源。Workflow 的控制流是“流程驱动”:代码里写死 Step A → Step B → Step C,一个步骤结束,系统自动取下一步执行,任何分支都预先定义好。Loop 的控制流是“循环条件驱动”:系统反复执行一段逻辑,每次执行完都检查某个条件,条件不满足就再执行一轮,直到条件成立。Agent 的控制流是“目标驱动”:系统只拥有一个目标描述,模型在每一步根据自己的推理决定下一步动作,外部没有预设路径。

三种控制流的差异可以写成:

想想你的厨房里到底是谁在催厨师干活:如果业务步骤几十年不变,用传单(Workflow)就够了;如果问题没有现成配方,需要一个“不达标就不许下班”的检查员(Loop);如果任务边界完全开放、情况千变万化,那就得请一位自己能拿主意的厨师长(Agent)。

Dt={next(t)流程驱动until(G)循环驱动Mθ(st)目标驱动D_t = \begin{cases}\text{next}(t) & \text{流程驱动} \\\text{until}(G) & \text{循环驱动} \\M_\theta(s_t) & \text{目标驱动}\end{cases}
$D_t$ 表示 t 时刻决定“下一步做什么”的机制,三者答案截然不同。
  1. 流程驱动(流程驱动)$\text{next}(t)$ 表示从预定义步骤列表取下一步。Workflow 的执行顺序在开发期就完全确定,运行期不需要任何判断。
    next(t)≡Stept+1\text{next}(t) \equiv \text{Step}_{t+1}
  2. 循环驱动(循环驱动)$\text{until}(G)$ 表示“重复执行直到条件 G 为真”。循环体可能是任意逻辑,每次迭代后用验证函数检查是否满足退出条件。
    repeat {body} until G\text{repeat} \, \{ \text{body} \} \, \text{until} \, G
  3. 目标驱动(目标驱动)$M_\theta(s_t)$ 表示大模型根据当前状态 $s_t$ 推理出下一步动作。Agent 每走一步都重新观察环境、重新决策,路径由模型生成。
    st+1∼Mθ(st,at)s_{t+1} \sim M_\theta(s_t, a_t)

自主性对比

后厨里有一个微妙的问题:盐放多少,谁说了算?快餐厅的答案是“手册说了算”——炸鸡配方上写着“每份 3 克盐”,厨师没有决定权;研发厨房的答案是“你尝了算”——试菜时厨师先按经验放盐,尝一口不行再调整,决策权在检验标准手里;私房菜馆的答案是“主厨说了算”——他根据食材咸淡、客人地域口味、当天菜品的搭配,自己决定放多少。

自主性描述的是系统的决策权归属。Workflow 的决策权在“规则”手里:所有决策在开发阶段被编译成规则与分支,系统运行时不产生任何新决策。Loop 的决策权在“外部验证者”手里:循环体产生一个候选结果,验证逻辑或人来判断是否达标,决策仅限于“继续还是停止”。Agent 的决策权在“模型”手里:每一步选择哪个工具、如何改写参数、是否更换策略,都是模型基于上下文推理的结果。

用决策函数表达:

回到厨房:如果你希望每一批菜品口味完全一致,就把“放盐”这件事写进手册(Workflow);如果一道新菜需要反复打磨,就让“尝菜的人”来拍板(Loop);如果客人需求千变万化,就得放手让主厨临场发挥(Agent)。自主性不是越高越好——决策权越大,你需要承担的风险也越大。

p(at)={R(at)规则决策Verify(at)人工决策Mθ(at)模型决策p(a_t) = \begin{cases}R(a_t) & \text{规则决策} \\\text{Verify}(a_t) & \text{人工决策} \\M_\theta(a_t) & \text{模型决策}\end{cases}
$p(a_t)$ 是“谁有权批准动作 $a_t$”,三种范式的批准者完全不同。
  1. 规则决策(规则决策)$R(a_t)$ 代表一组硬编码规则,例如“当字段缺失时抛错”。Workflow 中的任何分支都起源于规则表,不产生新知识。
    R:条件→动作R: \text{条件} \to \text{动作}
  2. 人工决策(人工决策)$\text{Verify}(a_t)$ 代表一个外部校验函数,可能由代码实现,也可能需要人工审批。Loop 的每次迭代都以这个校验结果为退出依据。
    Verify(at)∈{达标,未达标}\text{Verify}(a_t) \in \{\text{达标}, \text{未达标}\}
  3. 模型决策(模型决策)$M_\theta(a_t)$ 代表大模型根据指令与上下文生成动作。Agent 的每次工具调用、每次参数选择都是模型推理的产物,决策空间远大于前两者。
    at∼Mθ(指令,上下文,历史)a_t \sim M_\theta(\text{指令}, \text{上下文}, \text{历史})

确定性对比

顾客走进三种餐厅,对味道的期待完全不同。吃连锁快餐的人知道无论在哪家分店,汉堡的味道都一样——这叫“可预期”;来试菜餐厅的人知道菜品可能还在迭代,上次吃的和这次可能略有不同;预约私房菜的人干脆没有预期——主厨今天做什么就吃什么,可能惊艳也可能失望。这就是三种范式的确定性差异。

确定性衡量的是“同一个输入,输出结果的波动范围”。Workflow 的输出完全确定:相同的输入必然走相同的分支、产生相同的结果,方差为零,因此天然适合合规、审计等场景。Loop 的确定性居中:它通过循环不断逼近目标,只要验证函数明确,最终输出通常能收敛到达标线附近,但每次迭代的中间产物可能不同。Agent 的确定性最低:模型每次推理带有随机性,加上它可能选择不同的工具组合,输出分布范围很大。

用期望误差刻画:

顾客的期待决定了你的出菜方式:要稳定的味道就上标准菜谱(Workflow),要打磨到“差不多达标”就反复试菜(Loop),要追求惊喜就得接受主厨的发挥和偶尔的翻车(Agent)。确定性是选择范式时最容易忽略、但对业务影响最大的维度。

E[∥y−y^∥]⪯{0工作流σL循环σA智能体,0<σL<σA\mathbb{E}\left[\|y - \hat{y}\|\right] \preceq\begin{cases}0 & \text{工作流} \\\sigma_L & \text{循环} \\\sigma_A & \text{智能体}\end{cases}, \quad 0 < \sigma_L < \sigma_A
符号"$\preceq$“表示”通常小于等于",说明三种范式在确定性上有一个清晰的阶梯。
  1. 输出误差(输出误差)$\mathbb{E}[\|y - \hat{y}\|]$ 表示实际输出 $y$ 与期望输出 $\hat{y}$ 之间距离的期望,数值越小,结果越可预期。
    y=系统输出,y^=目标输出y = \text{系统输出}, \quad \hat{y} = \text{目标输出}
  2. 工作流的零差(工作流的零差)当分支规则完备时,Workflow 对同一输入永远输出同一结果,误差为 0。
    Workflow:E[∥y−y^∥]≈0\text{Workflow}: \mathbb{E}[\|y - \hat{y}\|] \approx 0
  3. 循环的收敛误差(循环的收敛误差)Loop 的退出条件是“达到阈值”,因此输出被压在阈值附近,误差 $\sigma_L$ 取决于阈值设定。
    Loop:∥y−y^∥≤ε⇒σL=ε\text{Loop}: \|y - \hat{y}\| \le \varepsilon \Rightarrow \sigma_L = \varepsilon
  4. 智能体的开放误差(智能体的开放误差)Agent 在开放空间中搜索,可能找到更优解,也可能偏离目标,误差 $\sigma_A$ 显著大于前两者。
    Agent:σA≫σL\text{Agent}: \sigma_A \gg \sigma_L

场景适配

不同的菜系要用不同的做法——麻婆豆腐讲究标准工序,适合写进连锁店手册;研发一款全新的酱汁,得靠反复实验;高档宴席的菜单,只有主厨能拍板。AI 应用场景也可以按这个思路对号入座。

固定流程场景选 Workflow。 典型例子是银行对公账户开户资料审核:资料校验、黑名单比对、规则复核、结果归档,每一步都可预先定义,且监管要求必须留痕。这种场景用 Workflow 既稳定又可审计,硬上 Agent 反而危险。

迭代优化场景选 Loop。 典型例子是舆情摘要系统:大模型生成的摘要可能遗漏关键事件,系统用“是否包含时间、地点、主体”等校验函数检查,不达标就让模型重写,循环最多三次。每次重写都更可靠,而且路径不确定但目标明确,正是 Loop 的舒适区。

开放任务场景选 Agent。 典型例子是企业内部知识助手:员工问“帮我整理 Q3 所有项目的风险点并草拟一封周报邮件”,模型需要自主决定先查询哪个系统、用哪些工具、怎么组织报告。流程无法预写,目标由一句话描述,只有 Agent 能胜任。

把这种“对号入座”形式化为加权评分:

点菜的本质是“什么菜配什么做法”。审单、摘要打磨、企业咨询——先去识别你的场景是固定、迭代还是开放,再让范式对号入座。千万别犯“手里有把锤子,看什么都像钉子”的毛病。

Matchk=wC Ck+wA Ak+wD Dk\text{Match}_k = w_C \, C_k + w_A \, A_k + w_D \, D_k
$\text{Match}_k$ 是范式 k 的匹配分,哪个分数高就选哪个。
  1. 匹配分(匹配分)$\text{Match}_k$ 表示在第 k 种范式下,场景需求与范式特质的吻合程度。
    k∈{Workflow,Loop,Agent}k \in \{\text{Workflow}, \text{Loop}, \text{Agent}\}
  2. 三个维度的贡献(三个维度的贡献)$C_k$ 是控制流匹配度、$A_k$ 是自主性匹配度、$D_k$ 是确定性匹配度,$w_C, w_A, w_D$ 是权重。
    控制流+自主性+确定性⇒加权和\text{控制流} + \text{自主性} + \text{确定性} \Rightarrow \text{加权和}
  3. 选择规则(选择规则)比较三个分数,取最大值对应的范式,即“对号入座”。
    范式的选择=arg⁡max⁡kMatchk\text{范式的选择} = \arg\max_k \text{Match}_k

混合架构

一家成熟的大型餐厅,后厨从来不是单一模式:中央厨房用标准菜谱批量制备酱料(Workflow),研发部不断试菜推出新品(Loop),前厅主厨根据客人现场需求灵活调度(Agent)——三种模式在一条产业链上协同工作。AI 系统同样如此,单一范式往往不够用,混合架构才是常态。

最常见的混合方式是嵌套组合。外层用 Workflow 编排大阶段:先分析需求,再生成方案,最后执行并归档。内层某个阶段换成 Agent:生成方案时,让 Agent 自主检索资料、调用工具。Agent 的每次动作再包一层 Loop:如果生成结果未通过校验,循环重试。这样,确定性由外层把控,灵活性由内层释放。

三种范式还可以阶段串联:Workflow 负责数据预处理,Loop 负责质量打磨,Agent 负责最终决策。无论哪种组合,都要设计兜底降级机制——Agent 连续失败超过 N 次,自动降级为固定 Workflow 方案;Loop 循环超过预算,立即退出并转人工。没有兜底的混合架构,等于让顾客承担主厨翻车的风险。

组合关系写作:

一家餐厅的三类角色不是互相抢戏,而是各有分工。给系统设计混合架构时,先问三个问题:哪一层必须稳定?哪一层需要灵活?哪一层出问题谁来兜底?答案是三层各就各位、分工明确——这就是架构设计的艺术。

S=外层范式∘中层范式∘内层范式\mathcal{S} = \text{外层范式} \circ \text{中层范式} \circ \text{内层范式}
"$\circ$"表示嵌套组合,外层约束内层,内层异常最终向外层暴露。
  1. 系统的组合(系统的组合)$\mathcal{S}$ 代表最终的系统架构,由多个范式嵌套而成。
    S=(Workflow,Loop,Agent) 的组合\mathcal{S} = (\text{Workflow}, \text{Loop}, \text{Agent}) \text{ 的组合}
  2. 嵌套符号(嵌套符号)$\circ$ 是组合运算符,读作“由……包裹”:外层范式定义了内层范式的入口、出口和异常接管条件。
    Workflow∘Loop:流程控制循环边界\text{Workflow} \circ \text{Loop}: \text{流程控制循环边界}
  3. 内层的自由度(内层的自由度)公式右侧越靠内,范式自主性越强;越靠外,范式确定性越高,形成“外面稳、里面活”的结构。
    外层确定性↑,内层自主性↑\text{外层确定性} \uparrow, \quad \text{内层自主性} \uparrow

选型决策框架

新餐厅开张前,老板手里有一笔钱,请不起三个团队,只能选一种打法。他需要问自己四个问题:①每道菜的做法是否几年不变?②好不好吃有没有客观标准?③客人需求是否多变难测?④如果出菜失败,损失有多大?这就是选型需求四问。

第一问:流程是否完全固定?固定 → Workflow,不固定 → 继续问。第二问:结果能否自动验收?能 → Loop,不能 → 继续问。第三问:任务边界是否开放?开放 → Agent,封闭 → Loop 或用 Workflow 加规则兜底。第四问:失败成本多高?成本高 → 优先用确定性高的范式,把不确定性隔离在可回滚的模块里。四问之后,再做成本权衡:Workflow 开发成本高但运营稳定,Agent 上线快但 token 消耗和失控风险高,Loop 介于两者之间。

最后还要规划演进路线:不要一开始就追求完美架构,先用 Workflow 跑通最小闭环,再逐步把瓶颈环节替换为 Loop,把小范围试探替换为 Agent。每替换一层,都要配好兜底和验收。把选择固化成分数模型:

开餐厅不能凭直觉,要有经营账本。选型也一样:四问定位需求,评分权衡取舍,小步演进降低试错成本。这套决策框架,能帮你在每一次技术选型答辩中,给出有依据、可复盘的理由。

Score=w1⋅效果+w2⋅成本+w3⋅可维护\text{Score} = w_1 \cdot \text{效果} + w_2 \cdot \text{成本} + w_3 \cdot \text{可维护}
效果、成本、可维护三个维度加权求和,分数就是选型的最终依据。
  1. 综合得分(综合得分)$\text{Score}$ 是候选架构的总分,越高越值得选择。
    Score=w1⋅E+w2⋅C+w3⋅M\text{Score} = w_1 \cdot E + w_2 \cdot C + w_3 \cdot M
  2. 效果(效果)$E$ 代表业务指标达成度,如准确率、覆盖率。Agent 在这项往往最高,但方差也大。
    EAgent↑,方差↑E_{\text{Agent}} \uparrow, \quad \text{方差} \uparrow
  3. 成本(成本)$C$ 代表开发、推理、人工兜底的总成本。Workflow 的固定开发成本高,Agent 的边际推理成本高。
    CWorkflow=固定,CAgent=随调用增长C_{\text{Workflow}} = \text{固定}, \quad C_{\text{Agent}} = \text{随调用增长}
  4. 可维护(可维护)$M$ 代表出问题时定位与修复的容易程度。Workflow 的链路可读性最好,Agent 需要完整日志才能复盘。
    MWorkflow>MLoop>MAgentM_{\text{Workflow}} > M_{\text{Loop}} > M_{\text{Agent}}

AI 应用场景

银行业务合规审核

阶段:Workflow 范式落地

解决的问题:传统人工审核一份对公开户资料需要数小时,且不同审核员标准松紧不一,合规风险高。AI 用 Workflow 把“资料完整性检查、黑名单比对、反洗钱规则复核、人工复核提交”编排成固定流程,每一步输出格式与判定标准全部预先定义,不依赖模型的临场发挥,保证相同材料在任何分行得到一致的审核结论。

具体案例:某股份制银行将 AI 工作流嵌入开户系统,资料齐全的申请从 4 小时压缩到 15 分钟,审核准确率从 92% 提至 99.6%,且全程留痕可供审计。

智能客服意图识别升级

阶段:Loop 范式落地

解决的问题:客服机器人经常在一次语义理解失败后直接转人工,导致人工压力大。系统引入 Loop:用户问题先交给模型解析,用“是否包含业务关键词、置信度是否达标”的校验函数检查,不达标则追加澄清问题再让模型重解析,最多循环三次,仍失败才升级人工。传统做法的转人工率约 40%,循环兜底后降至 18%。

具体案例:某电商平台把“退款流程查询”类高频问题接入循环重试,一次解决率提升了 22 个百分点,人工坐席压力明显缓解。

企业级智能检索助手

阶段:Agent 范式落地

解决的问题:员工问“汇总 Q3 各项目风险并生成周报”,传统的关键词搜索只能返回文档列表,无法完成多系统检索、归纳与写作。Agent 收到目标后自主决定先后查询知识库、项目管理工具、财务系统,整理信息并调用写作模型输出草稿,最后附加信息来源供人工核对。

具体案例:某制造企业部署检索 Agent,员工平均每周节省 3 小时文档整理时间,但因 Agent 输出存在不确定性,系统保留了“每个结论必须附带引用来源”的硬约束。

Python 演示

python64 行
import random  class KitchenWorkflow:    """范式一:Workflow —— 按标准操作手册执行"""     def __init__(self):        self.success = 0     def run(self, steps):        for step in steps:            print("  [流程] 执行: " + step)        self.success += 1        return len(steps)  class KitchenLoop:    """范式二:Loop —— 反复尝试直到达标"""     def __init__(self, target=0.9):        self.target = target        self.loop_count = 0     def run(self, seed=42):        random.seed(seed)        clean = 0.0        while clean < self.target:            self.loop_count += 1            clean += random.uniform(0.15, 0.35)            print("  [循环] 第%d次冲洗, 洁净度=%.2f" % (self.loop_count, clean))        print("  [循环] 达标, 共%d轮" % self.loop_count)        return self.loop_count  class KitchenAgent:    """范式三:Agent —— 观察环境后自主决策"""     def __init__(self):        self.tasks = {"洗锅": False, "擦台": False, "倒垃圾": False}     def run(self):        decisions = 0        while not all(self.tasks.values()):            undone = [t for t, done in self.tasks.items() if not done]            choice = undone[0]            decisions += 1            print("  [智能体] 判断未完成任务: %s, 选择执行: %s" % (undone, choice))            self.tasks[choice] = True        print("  [智能体] 自主决策%d次, 厨房清理完毕" % decisions)        return decisions  def main():    print("=== 三种范式对比: 厨房里的 AI ===")    print("\n1) Workflow: 固定三步清洗")    KitchenWorkflow().run(["冲水", "加洗洁精", "擦干"])    print("\n2) Loop: 反复冲洗直到洁净度达到 0.9")    KitchenLoop(target=0.9).run()    print("\n3) Agent: 自主决定先做哪件收尾工作")    KitchenAgent().run()  if __name__ == "__main__":    main()
目的:用一个厨房清洁任务模拟三种 AI 范式的执行逻辑,直观对比“固定步骤、循环逼近、自主决策”三种控制方式的差异。
  1. while clean < self.target:这就是循环范式的核心:条件不满足就继续迭代,直到达标。
  2. clean += random.uniform(0.15, 0.35)每次试菜带来的改进是随机的,但长期趋势是收敛的。
  3. undone = [t for t, done in self.tasks.items() if not done]Agent 先“观察”环境,找出所有未完成的任务。
  4. choice = undone[0]真实 Agent 场景中这一步由大模型决策,这里用取首个元素模拟。
  5. KitchenWorkflow().run([...])Workflow 的步骤列表是调用方预先给定的,运行期不做任何判断。
  6. if __name__ == "__main__":保证程序作为脚本运行时才执行主逻辑,便于被其他模块导入复用。

常见误区

误区“现在都 2025 年了,谁还用 Workflow?直接上 Agent,让模型自己搞定一切,才是 AI 应用的正确姿势。”

正解三种范式面对的问题复杂度不同,不是代际替代关系。合规审计、对账、渲染报表这类流程固定的场景,Workflow 成本低、可解释、可审计,Agent 反而因为不可控而成为风险源。就像快餐厅不会因为隔壁开了私房菜馆就把菜谱全扔了——不同业态服务不同客群。

为何常见:大模型厂商和媒体的宣传集中在 Agent 的炫酷效果上,而 Workflow 因为“太像传统软件”缺少传播感,容易让人误以为技术落后。

误区“Agent 不就是要让 AI 自己完成任务吗?加上人工审批就退化成 Workflow 了,等于没用上 Agent 的能力。”

正解即使是最开放的私房菜馆,客人结账时也要确认菜品是否满意。Agent 的价值在于“自主执行”,而不是“无人负责”。高价值动作(付款、删除数据、对外发送消息)必须设置人工审批点,这是工程底线而非能力不足。

为何常见:Demo 里的 Agent 往往展示全自动流程,让人误以为生产环境也可以零干预,忽视了真实业务中责任归属与安全管控的需求。

误区“Loop 不就是写个 for 循环,把同样的问题反复问模型几遍吗?多问几次总能蒙对。”

正解Loop 真正的关键是验证函数——每次迭代后必须有一个客观、可检查的退出条件,否则就是无限烧钱。没有验证的循环只是重复打靶,有验证的循环才是逐个逼近目标的试菜过程。如果验证函数本身不可靠,循环次数再多也只是自我安慰。

为何常见:很多入门教程展示 Loop 时只画了“重复调用 LLM”的箭头,把最关键的“如何判断达标”一笔带过,误导了初学者。

误区“混合架构简单,Workflow 模块、Loop 判断、Agent 调用各写一段代码,然后串起来就行。”

正解混合架构的核心不是代码组合,而是控制权交接:Agent 在什么条件下被启动、Loop 的退出条件由谁定义、Agent 连续失败几次降级到固定流程、异常信息如何逐层上报,这些都需要在架构层面显式设计。没有明确边界的拼接,只会得到三方互相干扰的混沌系统。

为何常见:很多人把“架构”理解成“组件的堆叠”,忽略了组件之间的协议和数据流约束,这正是软件工程中“设计”与“拼装”的区别。

误区“Agent 太不可控,我把大模型的 temperature 设置为 0,输出就稳定了,问题解决。”

正解温度归零只能降低采样随机性,无法消除模型在不同上下文下的策略差异——同一个问题,模型可能今天走 A 工具组合、明天走 B 工具组合。真正提升确定性要靠限制动作空间(白名单工具)、增加验证环节(Loop)、固定输出格式(结构化输出)等系统性手段。就像想让主厨稳定发挥,关键不是让他“不要抖勺”,而是约定好流程和验收标准。

为何常见:初学者最容易接触到的参数就是 temperature,误以为它是控制确定性的万能旋钮,而忽略了系统架构层面的确定性设计。

面试题

Q1. 在“经营餐厅”的比喻中,Workflow 范式最像哪种作业方式?

单选题 · easy

  • A.按菜谱标准步骤出菜← 正确答案
  • B.反复试菜调整配方
  • C.主厨自主决定菜品
  • D.客人点菜即时定制

答案:A。Workflow 的核心是固定步骤与预设规则,就像按菜谱标准步骤出菜——每一步怎么做都写清楚了。反复试菜是 Loop,主厨自主决定是 Agent,客人点菜定制更接近动态需求而非范式本体。

Q2. Loop 循环范式最显著的特征是什么?

单选题 · easy

  • A.步骤之间严格串行
  • B.反复执行直到达标← 正确答案
  • C.模型全权自主决策
  • D.完全不需要人工参与

答案:B。Loop 的关键是“循环体 + 退出条件”,反复执行直到某个验证条件被满足。步骤严格串行是 Workflow 的特征,模型全权决策是 Agent 的特征,Loop 通常还会有外部验证者介入判断是否达标。

Q3. 三种范式的控制流分别由什么驱动?

单选题 · mid

  • A.全部由外部用户驱动
  • B.各自的驱动机制不同← 正确答案
  • C.全部由大模型驱动
  • D.由数据模式来驱动

答案:B。Workflow 由流程定义驱动(下一步是写死的),Loop 由循环条件驱动(不达标不停止),Agent 由模型目标驱动(每步临场推理)。三者驱动机制确实不同。外部用户、大模型或数据模式都只描述了其中一种范式。

Q4. 在自主性对比中,Workflow 的决策权属于谁?

单选题 · mid

  • A.大模型的自主决策
  • B.流程预设的规则
  • C.终端用户实时定夺
  • D.运行时动态生成

答案:。Workflow 的所有分支与决策在开发阶段就被编译成规则,运行期系统不产生新决策。大模型自主决策属于 Agent,用户实时定夺属于交互式系统,运行时动态生成也不是 Workflow 的特征。

Q5. 关于三种范式的确定性,以下说法正确的是?

单选题 · mid

  • A.Workflow 固定流程← 正确答案
  • B.Loop 随机乱试输出
  • C.Agent 一定是最差
  • D.三者确定性的其实相同

答案:A。Workflow 对相同输入产生相同输出,确定性最高;Loop 通过验证条件收敛结果,确定性居中;Agent 的探索空间最大,确定性最低,但“一定最差”的说法过于绝对,因为在有良好约束时它可以收敛到较稳定结果。

Q6. 主厨(Agent)接到“800 元川菜宴”任务时,最重要的兜底机制是?

单选题 · hard

  • A.完全按固定菜谱执行
  • B.预算控制与人工验收← 正确答案
  • C.一次性生成完整方案
  • D.禁止更换任何食材

答案:B。Agent 在高价值任务中必须有硬性约束与兜底:预算上限防止失控消耗,人工验收保证最终结果可接受。完全按菜谱执行抛弃了 Agent 的灵活性,一次生成方案没有校验环节,禁止更换食材则剥夺了应对突发情况的能力。

Q7. 在“标准流程+结果校验”的混合架构中,Loop 阶段解决什么问题?

单选题 · hard

  • A.流程语法错误困扰
  • B.结果不达标时的修正← 正确答案
  • C.模型参数陷入调优
  • D.用户意图难以识别

答案:B。混合架构中,外层 Workflow 定义阶段,内层 Loop 负责“生成→校验→重生成”的迭代,专门解决初次结果不达标的问题。语法错误应靠编译器或静态检查,参数调优属于模型训练,意图识别属于 NLU 模块。

Q8. 以下哪些场景更适合使用 Workflow 范式?

多选题 · mid

  • A.合规审计的固定流程← 正确答案
  • B.格式统一的批量处理← 正确答案
  • C.完全开放自由创作
  • D.路径多变的探索任务

答案:AB。合规审计与批量处理都要求流程固定、输出可预期、全程可审计,这正是 Workflow 的强项。开放自由创作适合 Agent,路径多变的探索任务适合 Loop 或 Agent,用 Workflow 会把它们写死在僵化的分支里。

Q9. Loop 范式适用场景需要具备哪些典型特征?

多选题 · mid

  • A.目标明确可以验收← 正确答案
  • B.最优路径并不清楚← 正确答案
  • C.结果要求完全随机
  • D.希望模型自由发挥

答案:AB。Loop 的两个前提是“有一个可验证的目标”和“不知道最优路径只能反复试”。如果结果要求随机,根本不该用 Loop;如果希望模型完全自由发挥,那应该考虑 Agent,因为 Loop 需要外部验证者来控制何时停止。

Q10. 提升 Agent 范式确定性的常用手段有哪些?

多选题 · hard

  • A.限定可用工具白名单← 正确答案
  • B.全部输出不经任何校验
  • C.增加人工审批环节← 正确答案
  • D.记录完整运行日志用于审计← 正确答案

答案:ACD。限定工具白名单缩小动作空间,人工审批在关键节点兜底,日志审计保证事后可复盘,三者都能显著提升可控性。选项 B“全部输出不经校验”恰好相反,会放大不确定性,是典型的反面做法。