Appearance
20. Agent 与 Workflow 中工具调用的差异是什么?
难度 P1 高频 · 岗位 应用 · 频率 ★★★ · 预计阅读 5 min
本题阅读地图
- 💡 简要回答
- 📝 详细解析
- 🎯 面试总结
👔面试官:Agent 与 Workflow 中工具调用的差异是什么?
🙋♂️我:Agent 是模型决定调什么,Workflow 是固定流程。
👔面试官:对,但还有更具体的:决策方式、错误处理、可观测性、灵活性。Workflow 工具调用是预定义节点,Agent 是动态决策。你能展开吗?
🙋♂️我:Workflow 更可控,Agent 更灵活?
👔面试官:对,但 Workflow 也可以有动态分支(条件路由)。关键是:Agent 的工具选择是模型实时决策,Workflow 的工具调用是开发者预定义(即使是条件分支,条件也是开发者写的)。这个边界要清楚。
💡 简要回答
| 维度 | Workflow | Agent |
|---|---|---|
| 决策方式 | 开发者预定义节点和顺序 | 模型实时决策调什么工具 |
| 灵活性 | 确定性强,按流程执行 | 动态适应,根据中间结果调整 |
| 错误处理 | 预定义重试、兜底逻辑 | 需要模型理解错误并决策下一步 |
| 可观测性 | 节点级清晰 | 决策路径可能不确定 |
| 适用场景 | 固定流程、强可控 | 开放任务、需要动态决策 |
核心差异:Workflow 的工具调用是开发者预定义的;Agent 的工具选择是模型实时决策的。
📝 详细解析
Workflow 的工具调用
预定义节点:
节点1:查订单 → 节点2:判断状态 → 节点3a:发货 / 节点3b:退款特点:
- 每个节点调什么工具,是开发者写死的
- 条件分支(if/else)也是开发者预定义
- 模型只在特定节点做简单判断(如分类)
优势:
- 可控、可预测
- 错误处理逻辑明确
- 易于审计和调试
Agent 的工具调用
动态决策:
用户问题 → 模型:需要查天气 → 调用 weather_tool → 模型:还需要查路线 → 调用 map_tool → ...特点:
- 模型自主决定调什么工具
- 根据工具返回结果,决定下一步
- 决策路径不固定
优势:
- 灵活,适应开放任务
- 能处理未预见的场景
挑战:
- 需要治理(步数上限、循环检测)
- 可观测性要求高
- 出错时调试困难
混合模式
实际项目中常混合使用:
- Workflow 做主框架,固定节点清晰可控
- 在特定节点接入 Agent,处理开放子任务
🎯 面试总结
核心差异:预定义 vs 动态决策。Workflow 可控,Agent 灵活,生产环境常混合使用。