Appearance
Workflow vs Agent
核心区别来自 Anthropic 的实用定义:Workflow 是通过预定义代码路径编排 LLM 和工具的系统;Agent 是 LLM 在执行过程中动态决定如何使用工具和推进流程的系统。本页展开这一区分背后的工程权衡与选型指导,来自 Anthropic 的工程实践。
Comparison Overview
| 维度 | Workflow | Agent |
|---|---|---|
| 控制流 | 预定义代码路径 | LLM 动态决策 |
| 实现复杂度 | 低到中(写代码即可) | 中到高(需模型+工具+状态管理) |
| 可预测性 | 高(每一步由代码确定) | 低到中(模型可能走不同路径) |
| 调试难度 | 低(每个步骤可单独检查) | 中(需追踪模型决策链) |
| 灵活性 | 低(执行固定流程) | 高(可根据情况调整策略) |
| 容错性 | 取决于代码实现 | 模型可自动纠错和重试 |
| 最适合的任务 | 确定性、重复性流程 | 开放、复杂、多步骤推理任务 |
| 典型例子 | 客服分类 → 检索 → 生成定式回复 | 代码 Agent 在多 repo 中定位 bug → 修复 → 验证 |
| 性能保证 | 稳定可预测 | 随模型能力和任务复杂度波动 |
Key Differences
控制权归属
这是最根本的区别:
- Workflow 的控制权在开发者代码中。每一个 LLM 调用的时机、输入、输出处理步骤、错误处理路径都由代码显式定义。模型只是一个被调用的组件。
- Agent 的控制权(部分)交给模型。模型决定该调用哪个工具、何时任务完成、遇到错误时换什么策略。开发者的角色从"编写完整流程"转变为"定义工具集与边界约束"。
适用场景
Anthropic 的实践经验指出,简单、可组合的模式比复杂框架更有效。不是所有场景都需要 Agent:
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 固定业务逻辑:客服分流、表单处理 | Workflow | 流程确定、需要一致输出 |
| 单步 LLM 调用:摘要、分类、翻译 | LLM call(甚至不需要 workflow) | 复杂度最低 |
| 多步但确定路径:RAG 问答 | Workflow(检索 → 生成) | 路径固定,无需动态决策 |
| 复杂、开放探索:跨 repo 代码修改、多步研究 | Agent | 需动态规划、试错、调整 |
| 高可靠性生产场景:金融交易、合规审查 | Workflow | 可预测性、可审计性优先 |
| 快速原型、广度探索 | Agent | 灵活性优先 |
常见 Workflow 模式
Anthropic 文章列出了几种已经经过验证的 workflow 模式:
- Prompt chaining:将一个 LLM 调用的输出作为下一个的输入
- Routing:根据输入分类到不同的处理路径
- Parallelization:多个 LLM 调用并行执行,结果聚合
- Orchestrator-workers:一个 orchestrator LLM 动态分派子任务给 worker LLM
- Evaluator-optimizer:一个 LLM 生成输出,另一个 LLM 评估并提供反馈
有趣的是,这个 orchestrator-workers 模式已经模糊了 workflow 与 agent 的边界——当 orchestrator 使用 LLM 动态决策子任务分派时,它本质上就是一个小型 agent 系统。
Agent 的形态
Anthropic 描述的最典型 Agent 形态是:
- Agent(LLM)+ 工具集 + 环境
- LLM 维护内部状态(当前进度、已尝试的方法、结果缓存)
- 工具是经过精心设计的接口(不是 raw API),模型容易理解
- 模型每次迭代决定:继续执行、切换策略、或宣布完成
IBM Research 的 VAKRA benchmark 进一步量化了 Agent 任务的复杂度:Agent 需与 8,000+ API 和 62 个领域数据交互,单个任务平均需 3–7 步推理链。这验证了 Agent 场景下,工具的精心设计(而非数量堆砌)是成败关键。
Synthesis
不要过早抽象是 Anthropic 的核心建议:
- 先从最简单的方案开始:一个 LLM call + prompt。不够就加 chain。
- 只有确定固定流程不够用时,再引入 Agent 的动态决策。
- Agent 的成功更多取决于工具设计的质量,而不是 Agent 框架的复杂性。
- Workflow 和 Agent 可以组合:一个 Agent 内部调用多个 workflow,一个 workflow 中的某一步可以交给 Agent。
最务实的判断标准:如果任务的每一步都能预先用代码写清楚,那就用 Workflow。如果某一步需要模型自己决定该怎么做,那就把那一步设计为一个 Agent。
Related Pages
Sources
- raw/articles/anthropic-building-effective-agents-2026-04-26.md
- raw/articles/ibm-vakra-benchmark-analysis-2026-04-26.md