考察点
这道题常跟在「你项目里用了 Agent」之后:「为什么不用 Workflow?」面试官在测你有没有被 Agent 概念冲昏头——能不能客观说出 Agent 的代价,以及 Workflow 在哪些场景反而更优。Anthropic 那篇 Building Effective Agents 里对两者的定义区分是这题的标准答案骨架。
参考答案
定义先对齐
Anthropic 的划分最干净:Workflow 是 LLM 和工具通过预定义代码路径编排起来的系统,路径是人画的;Agent 是 LLM 动态指挥自己的流程和工具用法的系统,路径是模型跑出来的。核心差异就一个:控制流的所有权在人手里还是在模型手里。
举个具体例子感受下差别。同样是「处理用户退款」:
- Workflow 版:
收到申请 → LLM 提取订单号 → 查订单 → if 金额<500: 自动退款 else: 转人工。每个分支都是代码写死的。 - Agent 版:给模型一个目标和一堆工具(查订单、查政策、发起退款、发通知),它自己决定先查什么、查到什么之后做什么。
各自的主场
Workflow 合适的场景,特征很明显:
- 流程可预知:步骤数固定、分支有限,能画成 DAG 或状态机。
- 要可审计、可复现:金融、医疗、合规场景,每次执行路径必须一致,出了问题能对着流程图追责。
- 延迟和成本敏感:路径固定意味着可以精确预算 token 和耗时,Agent 的步数是随机的,P99 延迟没法看。
- 要单测:Workflow 每个节点可以单独 mock 测试,Agent 的端到端行为测不了传统单测。
Agent 合适的场景反过来:开放域、步骤不可预知、决策点枚举不完。典型如深度调研(搜到什么决定下一步搜什么)、代码修复(报错信息决定下一步动作)、多源数据排查。这些场景你硬写 Workflow,会发现 if-else 的分支数爆炸,覆盖率永远不够,把决策权交给模型反而更优雅。
判断框架:三个问题
我在项目里做选型就问三个问题:
- 明天产品改需求,流程图要不要重画? 要重画但分支还是枚举得完,Workflow;枚举不完,Agent。
- 执行路径跑偏了,代价是什么? 答错一句话,Agent 可以试;错扣一笔钱,Workflow 加人审。
- 需要向老板/客户/监管解释「它为什么这么走」吗? 需要强解释性,Workflow 的天然优势;Agent 只能靠轨迹日志事后审计。
生产现实:大部分是混合体
纯 Agent 和纯 Workflow 都少见,真实系统长这样:外层是一个粗粒度的 Workflow(比如「接收 → 诊断 → 执行 → 验证」四个大节点,路径写死保证可审计),其中「诊断」这个节点内部是一个 ReAct Agent,让它自由探索日志和监控。Anthropic 自己也说,Agentic 系统里最常见、最有效的其实是 Workflow 模式的组合,纯自主 Agent 只在特定开放场景用。
混合结构还有个工程红利:测试和发布可以分层走。外层 Workflow 走传统的用例测试和灰度发布,逻辑变更要过评审;内层 Agent 节点的 prompt 和工具描述迭代快,走评估集回归就可以单独发布。两种变更节奏互不阻塞,这比「全 Agent 一把梭」的系统好维护一个量级。
面试时把这个「外层 Workflow 管骨架、内层 Agent 管探索」的结构讲出来,比单背定义更能证明你做过真东西。另外补一句成本观:Agent 每步决策都是一次全量上下文的 LLM 调用,一个 10 步任务的 token 消耗可能是 Workflow 的 5-10 倍,这在账单上是实打实的差异。
可能的追问
- 「LangGraph 算什么,Workflow 还是 Agent?」 它是个编排框架,两种都能搭。用 StateGraph 画死节点和边是 Workflow;给 Agent 节点配 tools 让它自己 loop 就是 Agent 模式。
- 「DAG/状态机和自主 Agent 怎么选型?」 本质是同一个问题的换皮问法,按「可预知性 + 出错代价 + 审计要求」三问框架答。
- 「Workflow 里嵌 Agent,Agent 失控了怎么办?」 外层 Workflow 给 Agent 节点设超时、步数上限和输出 schema 校验,Agent 产出不合规就回退到 Workflow 的兜底分支,不让不确定性溢出到主干。