Lesson 5: Agent 工作流设计模式

学习目标

  • 掌握 5 种核心 Agent 工作流模式
  • 学会选择适合场景的模式
  • 理解模式组合的技巧

模式 1: Sequential Chain(顺序链)

最简单的模式:步骤 A → 步骤 B → 步骤 C,每一步的输出是下一步的输入。

[读取邮件] → [AI 分类] → [路由到对应处理器] → [发送回复]

适用场景: 流程线性、步骤固定、没有分支

优点: 简单可靠,容易调试

缺点: 不灵活,一步失败整链中断

实现要点:

  • 每个步骤的输入输出 schema 要明确定义
  • 添加步骤间的数据验证
  • 失败时提供有意义的错误上下文

模式 2: Router(路由器)

根据输入条件,将任务分发到不同的处理分支。

                    ┌→ [高优先级处理]
[AI 分析意图] ──→ [路由] ──→ [中优先级处理]
                    └→ [低优先级处理]

适用场景: 相同输入需要不同处理方式(如客服分流、线索评分)

优点: 灵活分流,每个分支可独立优化

缺点: 路由逻辑的准确性是瓶颈

实现要点:

  • 路由条件用 AI 判断比硬编码规则更灵活
  • 设置 fallback 分支处理未预见的情况
  • 监控各分支的流量分布,及时调整

模式 3: Map-Reduce(映射归约)

将大任务拆分成多个小任务并行处理,最后汇总结果。

           ┌→ [处理文档 1] ──┐
[拆分任务] ──→ [处理文档 2] ──→ [汇总结果]
           └→ [处理文档 3] ──┘

适用场景: 批量处理(分析 100 份简历、审查多个合同条款)

优点: 大幅提升处理速度(并行)

缺点: 需要处理并发、结果汇总逻辑复杂

实现要点:

  • 控制并发数,避免打爆 API rate limit
  • 每个子任务独立失败不影响其他
  • 汇总时处理部分失败的情况

模式 4: Supervisor-Worker(主管-工人)

一个"主管" Agent 协调多个"工人" Agent,每个工人有专门的能力。

[主管 Agent]
  ├→ 分配给 [搜索 Agent] → 收集信息
  ├→ 分配给 [分析 Agent] → 深度分析
  └→ 分配给 [写作 Agent] → 生成报告
[主管 Agent] 审核 → 输出最终结果

适用场景: 复杂任务需要多种能力协作

优点: 关注点分离,每个 Agent 专精一个领域

缺点: 通信开销大,主管的协调能力是关键

实现要点:

  • 主管的 prompt 要清晰定义协调策略
  • 工人之间不直接通信,通过主管中转
  • 设置最大迭代次数,防止无限循环

模式 5: ReAct Loop(推理-行动循环)

Agent 反复执行"思考 → 行动 → 观察"循环,直到任务完成。

[思考:我需要查客户的订单历史]
  → [行动:调用 CRM API]
  → [观察:客户有 3 笔订单,最近一笔有退货]
[思考:退货原因是质量问题,需要优先处理]
  → [行动:创建高优先级工单]
  → [观察:工单已创建,ID #1234]
[思考:任务完成,通知客户]
  → [行动:发送邮件]

适用场景: 任务步骤不确定,需要根据中间结果动态决策

优点: 最灵活,能处理开放性问题

缺点: 不可预测,可能陷入循环,成本最高

实现要点:

  • 设置最大步骤数(通常 5-10 步)
  • 提供清晰的"任务完成"判断标准
  • 记录每步的推理过程,方便调试

模式选择指南

任务特征推荐模式
步骤固定,线性流程Sequential Chain
需要分类/分流Router
批量处理同类任务Map-Reduce
复杂任务需要多种能力Supervisor-Worker
步骤不确定需要动态决策ReAct Loop

模式组合

实际项目中经常组合使用。例如:

[Webhook 触发]
  → [Router: 判断请求类型]
    → 简单请求: [Sequential Chain 处理]
    → 复杂请求: [Supervisor-Worker 处理]
      → Worker 1: [ReAct Loop 收集信息]
      → Worker 2: [Map-Reduce 批量分析]
  → [汇总 + 回复]

关键收获

  1. 5 种核心模式覆盖 90% 的 Agent 工作流需求
  2. 根据任务特征选择模式,不要过度设计
  3. 模式可以组合使用
  4. 从最简单的模式开始,需要时再升级