工作流编排器 vs LLM 决策 Agent

两种架构的设计哲学与适用场景对比 · LLM 是翻译官还是指挥官?
🧠 工作流编排器模式
「LLM 是翻译官」
LLM 只负责自然语言的理解与生成:意图分类、参数提取、回复润色。 流程路由、状态管理、算法调用全由编排器代码掌控。 LLM 不感知整张状态图,每次调用是独立 NLP 任务。
🤖 LLM 决策 Agent(ReAct)
「LLM 是指挥官」
LLM 自主决定工作流:选择工具、调用函数、推进流程。 系统只给 LLM 提供工具集,LLM 通过 ReAct 循环(思考→行动→观察)自行规划步骤。 状态隐含在 LLM 的上下文中。
核心分歧:LLM 做决策,还是代码做决策?
1 逐维对比
对比维度 🧠 工作流编排器 🤖 LLM 决策 Agent
LLM 角色 NLP 翻译官 — 只做自然语言理解与生成 决策者 — 决定调什么工具、何时调、下一步做什么
流程控制 编排器代码 — if/else/switch 静态路由,执行路径在代码中可知 LLM 自主 — 通过 tool call 序列逐步推进,执行路径每次都可能不同
函数 / 算法调用 普通函数调用 — 编排器直接调,不经过 LLM,不需要 tool schema tool 调用 — LLM 选工具 → 代码执行 → 结果回 LLM,需要注册 function/tool schema
状态管理 显式维护 — 编排器用变量或状态机管理,清晰可见 隐式维护 — 状态编码在 LLM 的上下文中,容易被遗忘或混淆
错误恢复 确定性恢复 — 编排器有明确的状态转移规则,出错了可以回退到已知状态 LLM 自行处理 — 可能跑偏或者循环,需要人工或额外逻辑干预
可调试性 白盒 — 执行路径在代码中静态可知,单步调试轻松 黑盒 — 需追踪 LLM 的 tool call 序列,调试困难
LLM 成本 — 每步只调一次 LLM,每次调用 token 少、任务单一 — ReAct 循环多次调 LLM,每次携带完整上下文,token 消耗大
实现复杂度 — 需要设计状态机、维护 workflow_state、编写守卫逻辑 低(起步) — 只需定义工具列表,LLM 自动编排流程
灵活性 固定 — 流程由代码定义,适合业务逻辑明确、固定的场景 — LLM 可以灵活应对未预定义的路径和开放性问题
可预测性 — 系统行为由代码定义,不受 LLM 幻觉影响 — 每次执行可能不同,LLM 可能生成不存在的行为或幻觉
适用场景 确定性工作流 — 客服对话、物流流程、表单填写、多轮信息收集 开放式探索 — 代码生成、自动编程、信息检索、分析推理
记忆机制 分层管理 — 对话历史给 LLM 看,workflow_state 由编排器独占。编排器按步骤剪裁上下文长度,每轮仅调 1-2 次 LLM,每次上下文有限 全量上下文 — 所有信息在 LLM 的 prompt 中。每轮 ReAct 循环多次调用 LLM,每次都携带完整上下文,靠 KV Cache 优化重复前缀
2 工作流对比
🧠 工作流编排器
1 用户输入 → 编排器检查 workflow_state
2 编排器根据状态选择 Prompt,调 LLM
3 LLM 返回 结构化 JSON(intent / params / action)
4 编排器 解析 JSON → 路由,调算法/查库存/地理编码
5 编排器更新状态,决定 下一步或结束
6 需要回复时 调 LLM 生成自然语言 → 返回用户
特点:LLM 每次是独立调用,编排器做决策
🤖 LLM 决策 Agent(ReAct)
1 用户输入 → 送入 LLM(含工具列表 + 指令)
2 LLM 自己决定 → 需要调用某个工具
3 系统执行工具,结果回 LLM
4 LLM 观察结果 → 继续思考 → 决定 下一步行动
5 循环直到 LLM 认为 任务完成 → 生成最终回复
特点:LLM 在循环中做决策,系统是执行工具
3 如何选择?
📋 有固定的业务逻辑流程
流程可预定义、分支确定、状态可枚举。如物流路线规划、客服工单流程、多轮信息收集。
→ 选 工作流编排器
🔓 结果不确定、需要探索
没有固定路径,每一步都可能不同。如编程 Agent、开放域问答、研究分析。
→ 选 LLM 决策 Agent
💰 LLM 成本敏感
每轮对话有大量用户,需控制 token 消耗。编排器只做最小 NLP 调用。
→ 选 工作流编排器
🎯 需要高灵活性和自适应
场景变化多样、用户输入不可枚举、需要即兴反应。
→ 选 LLM 决策 Agent
⚠ 错误容忍度低
业务关键系统,不能接受 LLM 幻觉导致的状态错误或错误决策。
→ 选 工作流编排器
需要团队协作开发
多人协作、需要明确分工、方便调试和交接。
→ 选 工作流编排器
🎯 结论
两种模式没有绝对优劣,它们的适用场景不同。工作流编排器适用于业务逻辑固定、需要高可靠性和低成本的多轮交互场景; LLM 决策 Agent 适用于开放、探索性任务。

实际系统中不妨混合使用:核心流程用编排器确保可靠性非确定性边界用 LLM Agent 兜底。 关键是一开始就清楚每种模式的取舍,根据业务场景选择合适的设计。