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 批量分析]
→ [汇总 + 回复]关键收获
- 5 种核心模式覆盖 90% 的 Agent 工作流需求
- 根据任务特征选择模式,不要过度设计
- 模式可以组合使用
- 从最简单的模式开始,需要时再升级