Agent 设计模式与工作流

一句话定义:Agent 开发有可复用的"套路"——Anthropic 归纳为 5 类工作流模式 + 1 类自主 Agent;选对模式比堆复杂度更重要。

1. 先判断:Workflow 还是 Agent?

这是最容易被忽略的一步。很多"上 Agent"的需求,其实用确定性 Workflow 就够了。

维度 Workflow(工作流) Agent(智能体)
控制流 代码/图显式固定 LLM 动态决定下一步
可预测性 高,可复现 低,非确定
适用 步骤已知、追求稳定成本 步骤开放、需根据环境决策
成本/延迟 低可控 高且波动
调试

经验法则(Anthropic):

  • 能写固定流程解决的,不要用 Agent。
  • 只有当"无法提前预测所需步骤"且"需要与环境反复交互反馈"时,才用自主 Agent。
  • 介于两者之间,用 Workflow 模式(下面 5 种)逐步提升灵活度。

2. 五种 Workflow 模式

2.1 Prompt Chaining(提示链)

把任务拆成固定步骤,每步 LLM 输出作为下一步输入。

输入 → [LLM 步骤1] → 中间结果 → [LLM 步骤2] → ... → 输出
  • 适合:步骤明确、可线性分解(如 大纲→草稿→润色)。
  • 关键点:可在中间加程序化检查(格式校验、断言),不通过则停止或回退。

2.2 Routing(路由)

先分类,再分派给不同专用下游(prompt / model / skill)。

输入 → [分类器 LLM] → 路由 → 分支A / 分支B / 分支C
  • 适合:任务类型多样但各自处理简单(客服分流、意图分类)。
  • 关键点:分类器要稳;可用小模型/规则做粗分,LLM 做兜底(见 12-补充概念/03-Skill Router)。

2.3 Parallelization(并行)

同一任务多个副本同时跑,再汇总。

  • 分片(Sectioning):把大任务拆成独立子任务并行(如多文档分别摘要)。
  • 投票(Voting):同一任务跑多次取多数/最优(如安全敏感判定多跑几次)。
输入 → ┬ 副本1 ┐
       ├ 副本2 ┼ → [聚合] → 输出
       └ 副本3 ┘
  • 适合:子任务无依赖、或需多角度/鲁棒性。
  • 关联:05-规划与任务分解 的 Map-Reduce 扇出。

2.4 Orchestrator-Worker(编排者-工作者)

一个中枢 LLM 动态分解任务、分派给工作者、汇总结果(动态 DAG,区别于固定的 Prompt Chaining)。

[Orchestrator LLM] ←→ [Worker A]
       ↑   ↓        ←→ [Worker B]
       └─ 汇总 ─┘   ←→ [Worker C]
  • 适合:无法预知子任务集合的复杂任务(如一次改多个相关文件)。
  • 关联:06-多智能体 的 Supervisor 模式。

2.5 Evaluator-Optimizer(评估-优化)

一个 LLM 生成,另一个 LLM 评估反馈,迭代直到达标。

[生成 LLM] → 产物 → [评估 LLM] → 反馈 ─┐
     ↑                                  │
     └──────── 改进 ────────────────────┘ (循环)
  • 适合:有明确评判标准、可迭代收敛(如代码生成+评审、翻译精修)。
  • 本质:把 02-推理范式 的 Reflexion 工程化为固定双角色。

3. 自主 Agent 模式

当任务开放、需与环境交互时,用 ReAct / Plan-and-Execute(见 02、05 模块)的循环。

  • 当前能力的"甜点区":代码 Agent、研究 Agent、操作浏览器的 Agent。
  • 风险:成本、不可控、难复现——务必配合终止条件、人在环上、预算上限。

4. 模式组合示例

真实系统常是组合:

Routing(分流) → Orchestrator-Worker(处理复杂子任务)
                  ├─ Worker 内含 Prompt Chaining
                  └─ 关键产物经 Evaluator-Optimizer 校验
整体可包在自主 Agent 循环里处理意外分支

5. 选型决策表

你的任务特征 推荐模式
步骤固定、追求稳定 Prompt Chaining
类型多、各简单 Routing
子任务独立、要快/鲁棒 Parallelization
子任务集合无法预知 Orchestrator-Worker
有可迭代的评判标准 Evaluator-Optimizer
步骤开放、需环境反馈 自主 Agent(加护栏)

6. 常见反模式

  • ❌ 简单任务硬上自主 Agent(贵且不稳)。
  • ❌ 用 Agent 做本可 if/else 的分类。
  • ❌ 并行副本无聚合/投票逻辑,结果被覆盖。
  • ❌ Evaluator 与 Generator 用同一提示,互相"放水"。

7. 学习要点

  • 先问"是不是 Workflow 就够了",再决定上 Agent。
  • 5 种 Workflow 模式覆盖了绝大多数生产场景,且可控、便宜。
  • 模式可组合;自主 Agent 应是"最后的手段"而非默认。

8. 参考资料

  • Anthropic, "Building Effective Agents"(模式分类源头)
  • "LLM Powered Autonomous Agents"(Weng, 综述对照)