Skip to content

AI 工作流 vs Agent

「什么时候用 Workflow,什么时候用 Agent?」是 Anthropic《Building Effective Agents》提出、如今被反复问到的工程判断题。本文讲清两者区别、五种编排模式的细节与组合,以及低代码平台与代码框架的选型。

核心区别

Anthropic 给出的经典区分:

  • 工作流(Workflow):LLM 和工具通过预先定义好的代码路径编排。流程是确定的、开发者写死的,LLM 只在固定节点上发挥。
  • Agent(智能体):LLM 自主决定流程和工具的使用方式,根据环境反馈动态规划下一步。

一句话:Workflow 的「剧本」是开发者写好的;Agent 的「剧本」是模型现编的。 自主性是分界线。

为什么这个区分重要?

自主性是有代价的:

维度WorkflowAgent
可控性/可预测高(路径固定)低(路径运行时才确定)
成本可预算(调用次数固定)不可预算(可能跑几十轮)
调试容易(逐节点看)难(要回放整条轨迹)
灵活性低(没编排的路走不了)高(能应对未知情况)
失败模式节点级、可定位跑偏、死循环、误操作

务实原则:能用 Workflow 解决的,就别上 Agent。很多「Agent 产品」其实是 Workflow 就够了——先用最简单的方案,确实需要动态决策时才引入自主性。

五种工作流模式(逐个拆解)

1. Prompt Chaining(串联)

输入 ──► LLM① 提纲 ──► [校验] ──► LLM② 撰写 ──► LLM③ 润色 ──► 输出

任务能清晰分解为固定步骤时使用。关键技巧:步骤之间加程序化校验门(gate)——如检查提纲是否覆盖要求字段,不过关就重来,把错误拦在早期。

2. Routing(路由)

输入 ──► 分类器(LLM/SLM) ──┬─► 退款流程(专用 prompt + 工具)
                           ├─► 技术支持流程
                           └─► 闲聊(小模型直答)

输入类型多样时先分流,每个分支用专门优化的提示和模型——分类用小模型省成本,复杂分支才上大模型(与 SLM 分级路由 同理)。

3. Parallelization(并行)

两种形态:分片(Sectioning)——把任务拆成独立子块并行处理再拼接(如分段审查长文档);投票(Voting)——同一任务跑多次取多数/最优(如多视角安全审查)。代价是调用量翻倍,换确定性提升。

4. Orchestrator-Workers(编排者-工人)

中心 LLM 动态决定要拆哪些子任务、派给哪些 worker,最后汇总。与 Parallelization 的区别:子任务数量和内容运行时才确定。这已带一定自主性,是 Workflow 向 Agent 的过渡形态,也是多 Agent Supervisor 模式的原型(见 多 Agent)。

5. Evaluator-Optimizer(评估-优化循环)

生成 LLM ──► 草稿 ──► 评估 LLM ──► 通过? ──► 输出
   ▲                      │否(带具体反馈)
   └──────────────────────┘

适用条件:有可明说的评价标准且迭代确实能提升(如翻译质量、代码过测试)。要设最大轮数,防止评估者永远不满意。

Agent 模式

当任务无法预先编排(步数与路径取决于运行时反馈)时才用真正的 Agent——它在「行动 → 观察 → 决定下一步」循环里自主推进。典型:修复一个代码 bug(要读哪些文件、跑哪些测试,事先无法确定)。Agent 的可靠性护栏:限步数与预算、关键操作人工确认、完整轨迹可观测、沙箱隔离,详见 Agent 基础

选型决策树

任务流程能不能事先确定?
├── 能,且单次 LLM 调用就够 ──► 连 Workflow 都不用,一次调用 + 好提示
├── 能,多步固定 ──► Workflow(串联/路由/并行/评估循环按需组合)
├── 子任务动态但模式固定 ──► Orchestrator-Workers
└── 路径完全依赖环境反馈 ──► Agent(+ 护栏:限步数/确认/可观测)

低代码平台 vs 代码框架

低代码(Dify / Coze / n8n)代码框架(LangGraph 等)直接写代码
适合快速验证、业务人员可维护复杂状态机、需要版本控制与测试逻辑简单或性能敏感
优点可视化、内置 RAG/发布渠道灵活、可测试、可回放零依赖、完全可控
风险复杂逻辑难表达、被平台锁定学习成本、抽象泄漏自己造轮子

经验路径:低代码做 PoC 验证价值 → 跑通后核心链路用代码重写保证可控性。

高频追问

Q:Workflow 和 Agent 的本质区别? 流程由谁决定:Workflow 由开发者代码预先编排(确定路径);Agent 由 LLM 运行时自主决定(动态路径)。自主性是分水岭,也是成本/可控性的分水岭。

Q:什么时候该用 Agent? 仅当任务路径无法预先确定、依赖运行时环境反馈时(如自主调试代码、开放式研究)。能拆成固定步骤的一律 Workflow——更可控、便宜、好调试。「能简则简,别为了 Agent 而 Agent」。

Q:五种工作流模式怎么记?怎么组合? 按维度记:拆步骤(Chaining)、分类型(Routing)、并行做(Parallelization)、动态派活(Orchestrator)、迭代改(Evaluator-Optimizer)。它们可自由嵌套:如 Routing 之后某分支内部是 Chaining,Chaining 的某一步用 Voting 并行。

Q:Evaluator-Optimizer 循环的失败模式? 评估标准模糊导致永远不通过(要可操作的 rubric + 最大轮数);评估者与生成者同源导致「自己夸自己」(换模型或加程序化检查);每轮改进边际递减但成本线性涨(设收敛阈值)。

Q:Orchestrator-Workers 和多 Agent 什么关系? Orchestrator-Workers 本质是多 Agent 协作的 Supervisor 形态:中心 LLM 动态拆任务、派给子 LLM、汇总结果。区别只在子 worker 是否有独立上下文与工具集,详见 多 Agent

Q:生产中怎么给 Agent 加护栏? 限最大步数与 token 预算、高危操作(写库/转账/删除)人工确认、全轨迹日志可回放、工具最小权限、沙箱执行、超时与降级路径(转 Workflow 或人工)。

基于 MIT 许可发布