Agent 还是 Workflow?一份能落地的选型清单 📅 2026/7/13 1:29:51 路径确定就写死开放才上 Agent · 面向要做技术选型的工程师面试里有一道特别能看出功力的题“给你一个任务你怎么判断该做成固定 workflow还是交给 Agent 自主决策”很多人一上来就聊 ReAct、聊工具调用但真正的答案往往反过来——先想清楚这任务能不能写死能写死就别上 Agent。这篇把判断标准、代价对比、以及一份可以照着打勾的清单讲透。先把两个词定义清楚它们的核心差别只有一个控制流是谁决定的。Workflow固定编排路径是你在代码里写死的。LLM 可能出现在某几个节点里比如做分类、抽取、总结但“下一步走哪”是由预设的分支和顺序决定的不由模型临场选。Agent路径是模型在运行时自己决定的。它在一个循环里反复“观察 → 决定下一步做什么 → 调工具 → 看结果”用哪个工具、调几次、什么时候停都由模型根据中间结果动态选择。一句话workflow 是“提前铺好的轨道”Agent 是“临场找路的司机”。核心判据路径能不能穷举选型的第一性问题不是“任务难不难”而是“完成这个任务的步骤路径是确定且可枚举的还是开放且需要试错的”路径确定、可穷举 → 用 workflow。如果你能提前画出一张完整流程图把所有分支都列全“若 A 则走这条若 B 则走那条”说明决策逻辑本就是确定的交给模型临场决定只会引入不确定性。这种情况写死更稳、更省、更好调。路径开放、需动态决策和试错 → 用 Agent。如果步骤数量和顺序事先无法预知——要根据中间结果决定下一步查什么、试什么失败了要换个思路重来——那才是 Agent 的主场。它的价值正是在无法预先编排的情况下用模型的推理去动态规划路径。一句话原则能写死就别上 Agent。Agent 不是“更高级的实现”而是“为不确定性付的溢价”——只在真的需要动态决策时才值得付。为什么“能写死就写死”Agent 的隐藏代价Agent 看起来更智能但每一次让模型自主决策都在付出实打实的成本更贵Agent 一个任务往往要多轮 LLM 调用观察-决策循环token 消耗是固定 workflow 单次调用的数倍到数十倍。更慢多轮串行推理 工具往返延迟叠加很难满足低延迟场景。更不稳同样输入模型可能这次选对工具、下次绕远路结果不可复现回归测试难做。更难排错workflow 的 bug 能定位到具体节点Agent 出错可能是某一步推理跑偏链路长、归因难。更难兜底路径是活的就难以穷举失败分支、难以给出确定性的 SLA。所以结论很直接凡是能用固定分支表达清楚的逻辑写成 workflow 一定更稳更省。把 Agent 的自主性留给那些你确实编排不出来的部分。一份可以照着打勾的判断清单逐条自问命中越多的一侧就越该选哪种。问自己倾向 Workflow倾向 Agent步骤路径确定、可提前画成流程图开放、事先说不清有几步分支数量有限能穷举难以枚举需临场判断是否需要试错一次走通不用回头可能失败重试、换思路对稳定/可复现要求高需确定性结果可接受一定波动延迟与成本敏感要快要省可容忍多轮调用输入多样性结构规整、可预期高度开放、无法预设一个实用的心法先假设它是 workflow尝试把流程图画出来。如果你画得出、分支能收敛就用 workflow如果画到一半发现“下一步取决于上一步跑出来什么、根本列不全”这才是 Agent 该出场的信号。两个对照例子该用 workflow 的发票信息录入。上传发票 → OCR → LLM 抽取字段 → 校验格式 → 写库。步骤固定、分支有限校验失败就退回LLM 只在“抽取”这一节点被调用一次。硬套 Agent 只会更慢更贵还更飘。# 固定编排路径写死LLM 只是其中一个节点 text ocr(invoice) fields llm_extract(text) # 唯一的一次 LLM 调用 if not validate(fields): return reject(fields) # 分支可穷举 save(fields)该用 Agent 的开放式技术调研。“帮我搞清楚 X 框架和 Y 框架在高并发下的差异”——要搜什么、读哪几篇、发现矛盾要不要再查一轮、什么时候信息够了可以收尾全都取决于中途读到的内容无法预先编排。这种“边走边定路线”的任务正是 Agent 循环的用武之地。# Agent 循环下一步由模型看中间结果动态决定 while not done: thought model.decide(context) # 模型自己选下一步 result call_tool(thought.action) context update(context, result) # 失败可换思路重试一句话总结选型的分水岭是路径能不能穷举路径确定、可枚举就写成workflow——更稳、更省、更好排错路径开放、需要动态决策与试错才交给Agent去临场规划。记住那句话——能写死就别上 Agent先试着把流程图画出来画得出就别让模型临场找路。