HelloAI
决策树

🤖 Agent vs Workflow 决策

Anthropic 《Building Effective Agents》(2024.12)的核心论点:大多数场景不需要 Agent,Workflow 就够—— Workflow 更可控、便宜、好调试。

核心定义

  • Workflow(工作流):LLM + 工具按预定义路径编排(控制流由人写代码)
  • Agent(智能体):LLM自主决定下一步动作 + 用什么工具(控制流由 LLM 决)

🔑 Anthropic 的建议:先用最简单的 LLM call。只有当 Workflow 不够时再升级到 Agent。

5 种 Workflow 模式

1. Prompt Chaining(提示链)

把任务拆成线性 N 步,每步用一个 LLM call,前一步的输出 = 下一步的输入。

用户输入
  ↓
LLM 1: 提取关键信息
  ↓
LLM 2: 总结要点
  ↓
LLM 3: 改写成邮件
  ↓
输出

用于:内容生成、文档处理、翻译流水线

2. Routing(路由)

第一个 LLM 判断"这是什么类型任务",分发到不同的下游 LLM / 工具。

用户问题
  ↓
LLM 分类: 退款?技术支持?销售?
  ↓
└─ 退款 → 调专门 prompt + 工具
└─ 技术 → 调技术 KB + RAG
└─ 销售 → 转人工

用于:客服系统、不同复杂度任务分流(简单 → mini 模型,复杂 → 旗舰)

3. Parallelization(并行)

同一任务**并行**让 N 个 LLM 各做一份,最后**投票 / 综合**。

问题
  ↓
├─ LLM 1 答 ─┐
├─ LLM 2 答 ─┼→ 综合
├─ LLM 3 答 ─┘

用于

  • Sectioning:拆成独立子任务并跑(论文不同章节分析)
  • Voting:多次跑同任务投票(提升准确率)

4. Orchestrator-Workers(编排者-执行者)

中央 LLM "**编排者**" 把任务**动态**分给若干"工人 LLM",最后汇总。

编排者 LLM
  ├─ 分析任务,决定要做几件事
  ├─ 派工人 1 做 A
  ├─ 派工人 2 做 B
  └─ 综合结果

用于:复杂研究任务、代码库改造(先扫整库,决定改哪些文件)

5. Evaluator-Optimizer(评估-改进)

一个 LLM 产生答案,另一个 LLM 评估并给反馈,**反复迭代直到 OK**。

生成 LLM → 答案
  ↓
评估 LLM → 不够好,反馈
  ↓
生成 LLM → 改进版
  ↓
评估 LLM → OK
  ↓
输出

用于:翻译润色、文学创作、复杂搜索(确保信息充分)

什么时候才需要真 Agent

Anthropic 定义的 Agent ≈ 在循环里**自主选工具**,**自主决定何时停**。

真 Agent 适合:

  • 任务步骤无法预先规划(每步取决于前一步的结果)
  • 明确成功标准(如测试通过 / 错误为 0)
  • 容忍较高成本 + 延迟(Agent 通常 10-100× workflow 成本)
  • 足够工具集支撑(不是只有 1-2 个工具)

典型 Agent 场景:

  • SWE 任务(修 bug、加功能)—— Devin / Claude Code / Cursor Agent
  • Computer Use(操作浏览器 / 桌面应用)
  • 客户支持 deep diagnosis(要查多个系统才能答)
  • 研究 Agent(多轮搜索 + 综合)

决策流程

🤔 我需要 LLM 应用做事
├─ 一次 prompt 就能搞定?
└─ ✅ 直接 LLM call,不用 workflow
├─ 步骤固定 + 可预先编排?
└─ ✅ Workflow(Chaining / Routing / Parallel)
├─ 任务有清晰子任务但数量动态?
└─ ✅ Orchestrator-Workers
├─ 输出需要反复优化?
└─ ✅ Evaluator-Optimizer
└─ 步骤数量与方向完全不可预知
└─ ✅ Agent(最后选)

实战 6 条原则(来自 Anthropic)

  1. 从最简单开始:单次 LLM call → Workflow → Agent,按需升级
  2. 透明度优先:Workflow 的每步可调试,Agent 加 trace log
  3. 明确工具接口:工具文档比 prompt 更重要,写清楚 input / output / 副作用
  4. 给 Agent "退出门":max_iterations / max_cost / 用户中断按钮
  5. Eval 永远必要:没有自动评估的 Agent 是黑盒
  6. 从沙箱开始:Agent 别第一天就上生产,先在隔离环境跑 100 次看稳定性

常见反模式

  • "Agent + 1 个工具":那直接一次 function call 就行,别套 Agent 框架
  • 所有问题都丢给一个超级 Agent:先 routing,简单的走简单路径
  • 不设 max steps:Agent 卡死循环烧 token
  • 用 Agent 做确定性任务:能写 SQL 解决的不要让 LLM 决
  • 不写 eval:上线后没法知道是否退步

下一步