工作流与 Agent
工作流和 Agent 都会多次调用模型,区别在于下一步由谁决定:工作流的步骤和分支由代码预先写好,Agent 在运行时根据观测结果让模型选择下一步动作。本文说明两者的结构、选择条件和代价。
1. 面试核心
先记住这几条,再读正文- 单次模型调用、工作流、Agent 的区别是控制流由谁决定:单次调用没有后续步骤,工作流由代码决定,Agent 由模型在运行时决定。卡 · 三种结构
- 路径可以预先枚举、需要稳定延迟和可审计性时优先工作流;步骤数量和顺序取决于中间结果时才引入 Agent。
- Agent 不会自动优于单次调用。增加的轮次带来延迟、成本和错误累积,需要用同一评测集证明收益。卡 · 三种结构
- 实际系统常用混合结构:外层是固定工作流,个别开放步骤内嵌一个有预算的 Agent。卡 · 常见工作流模式
2. 三种结构
| 结构 | 下一步由谁决定 | 典型形态 | 主要代价 |
|---|---|---|---|
| 单次调用 | 无后续步骤 | 分类、抽取、改写、摘要 | 一次失败就没有修正机会 |
| 工作流 | 代码 | 提示链、路由、并行分段、评审后修改 | 分支要预先设计,覆盖不到的情况会失败 |
| Agent | 模型 | 循环选择工具,根据观测继续或停止 | 轮次不可预知,延迟、成本和错误路径更难控制 |
工作流中的模型仍可以做判断,例如路由节点让模型输出类别,代码再根据类别进入固定分支。判断结果只影响预先定义的跳转,不能创造新的步骤。
Agent 的程序只提供循环、工具和停止条件。模型在每一轮读取当前上下文,提出调用哪个工具、参数是什么,或者给出最终回答。
工作流: 输入 → 抽取订单号 → 查询订单 → [状态=已发货] → 生成物流回复
└→ [状态=未发货] → 生成催单回复
Agent: 输入 → 模型选择动作 → 程序执行工具 → 观测结果 → 模型选择下一动作 … → 停止
3. 常见工作流模式
- 提示链:上一步输出作为下一步输入,例如先写大纲、校验大纲,再写正文。中间可以插入程序检查。
- 路由:先分类,再进入专门的提示词、模型或处理流程。适合类别明确、各类处理差异大的输入。
- 并行:把独立子任务同时发给模型,再由代码汇总;或者对同一问题多次生成后投票。
- 编排者与执行者:编排模型动态拆分子任务,执行者分别完成,再汇总。子任务数量由模型决定,已经接近 Agent。
- 评审与修改:一个调用生成,另一个调用按标准评审并给出反馈,循环到满足标准或达到次数上限。
这些模式都可以用确定的代码控制最大步数、超时和失败分支,因此更容易测试和审计。
4. 选择条件
先用最简单的结构完成任务,只在评测显示不足时增加复杂度。判断时可以依次检查:
- 路径能否预先写出。客服退款按“查订单—校验规则—发起退款”执行,用工作流;排查一个未知线上故障,需要根据日志决定下一步查什么,适合 Agent。
- 错误代价。转账、删除数据等有副作用的步骤,即使放进 Agent,也要由代码校验参数和权限,必要时人工确认。
- 延迟与成本约束。在线接口有严格 P99 时,固定步骤更容易估算;离线研究、编码任务能接受更长的执行时间。
- 可评测性。工作流可以逐节点测试;Agent 要按任务结果和轨迹评估,见 Agent 评估。
面试官追问“为什么不用 Agent”或“为什么不用工作流”时,用项目中的具体输入说明:哪些情况能被固定分支覆盖,哪些情况需要运行时决策,以及引入 Agent 后用什么指标证明改进。
5. 常见问题
5.1 LangGraph 这样的图编排算工作流还是 Agent
取决于边由谁决定。图中节点之间是固定边或由代码条件判断,属于工作流;某条条件边读取模型选择的工具并循环回模型节点,就在图中实现了 Agent 循环。框架只提供状态和执行机制,不决定系统属于哪一类。
5.2 Agent 和 RAG 是什么关系
RAG 描述“先检索证据,再生成回答”的信息供给方式,可以是固定的一次检索,也可以作为工具交给 Agent 多次调用。知识问答只需要一次检索时,不必引入 Agent 循环,见检索增强生成(RAG)。
6 · 面试题卡片
6.1 Workflow 和自主 Agent 有什么区别?各自适合什么场景?
出现公司:小红书、高德、阿里云、广州报业
考察重点
- 控制流由代码还是模型决定。
- 路径可枚举性、延迟、成本和审计要求对选择的影响。
参考回答
工作流的步骤和分支写在代码里,模型只在节点内完成生成或分类;Agent 由模型在每一轮根据观测选择下一步动作,程序负责执行工具和限制循环。
路径能预先枚举、需要稳定延迟和逐步审计时用工作流,例如固定的审批、退款和报表流程。步骤数量和顺序取决于中间结果时用 Agent,例如代码修复、开放式调研和故障排查。生产中常把 Agent 限定在工作流的个别开放节点中,并配置最大步数、预算和失败兜底。
6.2 Agent 流程一定比 LLM 单次调用更好吗?
出现公司:百度、蚂蚁
考察重点
- 多轮调用带来的延迟、成本和错误累积。
- 用评测而非直觉证明复杂结构的收益。
参考回答
不一定。单次调用能完成的分类、抽取和改写任务,加入循环只会增加延迟和 Token 成本;每多一步,参数错误、工具失败和上下文偏移都有机会累积。
Agent 的收益来自外部信息和中间反馈:任务需要查询数据、运行代码或根据结果修正时,单次调用缺少这些观测。判断方法是在同一评测集上对比成功率、延迟、成本和失败类型,只有提升足以覆盖代价时才保留 Agent 结构。
6.3 项目选择单 Agent、多 Agent 还是 Workflow 编排,依据是什么?
出现公司:虾皮、美团、阿里淘天
考察重点
- 用任务特征而非框架偏好说明选型。
- 混合结构中工作流与 Agent 的分工。
相关内容:常见工作流模式、选择条件、多 Agent 协作。
参考回答
先看路径是否固定:固定步骤用 Workflow,能独立测试和审计。存在开放决策时,用单 Agent 循环处理;只有子任务彼此独立、需要不同工具集或上下文隔离,并且单 Agent 上下文已经成为瓶颈时,才拆成多 Agent。
回答时要说明项目中的具体证据,例如“80% 请求走固定分支,剩余长尾问题交给有 10 步上限的 Agent”,以及上线前用同一评测集比较过成功率、延迟和成本。多 Agent 增加通信、冲突和调试成本,不应作为默认选择。