Skip to content

5.2b Agent 设计模式

💡 一句话总结:掌握常用的 Agent 设计模式,构建高效、智能的 AI 助手。


学完你能做什么

  • 理解常见的 Agent 设计模式
  • 能根据场景选择合适的模式
  • 能实现复杂的 Agent 工作流程
  • 能优化 Agent 的性能表现

🎒 开始前的准备

确保你已经完成以下事项:


核心思路

为什么需要设计模式

好的 Agent 设计模式能:

  • 提高 Agent 的效率
  • 让行为更可预测
  • 便于维护和扩展
  • 复用最佳实践

常用设计模式

模式 1:责任链模式

适用场景:需要按步骤处理的任务

yaml
agents:
  chain-agent:
    name: "链式处理助手"
    description: "按步骤依次处理任务的助手"
    role: |
      你是一个任务处理器,按照步骤依次处理任务。
    workflow: |
      1. 接收并理解任务
      2. 分析任务要求
      3. 规划处理步骤
      4. 逐个执行步骤
      5. 验证完成情况
      6. 返回最终结果

示例

yaml
agents:
  code-generator:
    name: "代码生成器"
    description: "按规范生成代码的助手"
    workflow: |
      1. 接收需求描述
      2. 分析技术栈
      3. 设计代码结构
      4. 生成完整代码
      5. 添加注释说明
      6. 提供使用示例

模式 2:委派模式

适用场景:需要将任务分发给不同专家

yaml
agents:
  team-leader:
    name: "技术负责人"
    description: "协调多个专业助手的负责人"
    role: |
      你是一个技术负责人,管理一个专家团队。
      
      你的团队成员:
      - frontend-dev: 前端开发专家
      - backend-dev: 后端开发专家
      - db-expert: 数据库专家
      - devops: 运维专家
      
      工作方式:
      1. 分析需求,确定需要哪些专家
      2. 将任务委派给相关专家
      3. 整合专家的建议
      4. 提供完整解决方案
    delegation:
      auto_switch: true
      show_thinking: true

使用方式

我需要一个电商系统的技术方案
→ Agent 自动委派给多个专家
→ 整合各专家的建议
→ 返回完整方案

模式 3:状态机模式

适用场景:需要根据状态做不同处理的场景

yaml
agents:
  workflow-agent:
    name: "工作流助手"
    description: "根据状态处理任务的助手"
    role: |
      你是一个工作流管理器,根据当前状态处理任务。
    
    states:
      initial:
        description: "初始状态"
        on_input:
          - if: "需求明确"
            goto: "analysis"
          - if: "需要澄清"
            goto: "clarification"
      
      analysis:
        description: "分析状态"
        on_complete:
          - goto: "implementation"
      
      implementation:
        description: "实现状态"
        on_complete:
          - if: "有测试需求"
            goto: "testing"
          - else:
            goto: "completed"
      
      completed:
        description: "完成状态"
        actions:
          - "返回最终结果"

模式 4:观察者模式

适用场景:需要监控多个信息源

yaml
agents:
  monitor-agent:
    name: "系统监控助手"
    description: "监控多个系统状态的助手"
    role: |
      你是一个系统监控助手,实时监控多个信息源。
    
    watch:
      sources:
        - name: "代码质量"
          check_interval: 300
          metrics:
            - "测试覆盖率"
            - "代码复杂度"
            - "重复率"
        
        - name: "性能指标"
          check_interval: 600
          metrics:
            - "响应时间"
            - "吞吐量"
            - "错误率"
        
        - name: "安全扫描"
          check_interval: 3600
          metrics:
            - "漏洞数量"
            - "依赖安全"
            - "权限检查"
    
    alerts:
      warning_threshold: 0.7
      error_threshold: 0.9
      notification:
        - "控制台输出"
        - "日志记录"

模式 5:策略模式

适用场景:需要根据情况选择不同策略

yaml
agents:
  strategy-agent:
    name: "智能助手"
    description: "根据情况选择最优策略的助手"
    role: |
      你是一个智能助手,根据情况选择最优策略。
    
    strategies:
      coding:
        when: "用户需要写代码"
        priority: 1
        actions:
          - "理解需求"
          - "选择合适的技术栈"
          - "编写高质量代码"
          - "添加测试"
      
      debugging:
        when: "用户需要调试问题"
        priority: 2
        actions:
          - "分析错误信息"
          - "定位问题根源"
          - "提供解决方案"
          - "验证修复效果"
      
      refactoring:
        when: "用户需要重构代码"
        priority: 3
        actions:
          - "评估当前代码"
          - "规划重构步骤"
          - "逐步重构"
          - "确保功能正常"
      
      explaining:
        when: "用户需要解释"
        priority: 4
        actions:
          - "理解问题"
          - "用简单语言解释"
          - "提供示例"

模式 6:模板方法模式

适用场景:有固定流程,但某些步骤可定制

yaml
agents:
  template-agent:
    name: "标准化助手"
    description: "遵循标准流程的助手"
    role: |
      你是一个标准化助手,遵循统一的处理流程。
    
    template: |
      ## 标准处理流程
      
      ### 第一步:理解需求
      - 仔细阅读用户需求
      - 澄清不确定的地方
      - 确认理解正确
      
      ### 第二步:分析问题
      - 分析技术可行性
      - 识别潜在挑战
      - 规划解决方案
      
      ### 第三步:执行
      [具体执行步骤,根据情况调整]
      
      ### 第四步:验证
      - 验证方案正确性
      - 检查完整性
      - 确保满足需求
      
      ### 第五步:交付
      - 提供清晰的结果
      - 解释关键点
      - 建议后续优化
    
    custom_steps:
      - step: "第三步"
        instructions: "根据具体任务类型,执行相应的操作"
        examples:
          - "如果是编码任务:编写代码"
          - "如果是设计任务:提供设计方案"

高级组合模式

模式组合 1:委派 + 责任链

yaml
agents:
  advanced-agent:
    name: "高级助手"
    description: "结合委派和链式处理的助手"
    role: |
      你是一个高级助手,结合多种处理模式。
    
    modes:
      simple_task:
        pattern: "责任链模式"
        workflow: |
          1. 接收任务
          2. 处理任务
          3. 返回结果
      
      complex_task:
        pattern: "委派模式"
        delegation:
          - frontend
          - backend
          - db
        workflow: |
          1. 分析任务
          2. 委派子任务
          3. 整合结果
          4. 返回方案

模式组合 2:状态机 + 观察者

yaml
agents:
  reactive-agent:
    name: "响应式助手"
    description: "根据状态变化做出响应的助手"
    role: |
      你是一个响应式助手,根据状态变化做出响应。
    
    state_machine:
      states:
        - idle
        - working
        - waiting
        - completed
        - error
    
    observers:
      - name: "进度跟踪"
        on_change: "working"
        action: "更新进度"
      
      - name: "超时监控"
        on_event: "timeout"
        action: "切换到 error 状态"
      
      - name: "完成通知"
        on_change: "completed"
        action: "发送完成通知"

跟我做

实战:创建一个智能客服 Agent

目标:使用策略模式创建智能客服系统

yaml
agents:
  smart-support:
    name: "智能客服"
    description: "能处理各种问题的客服助手"
    role: |
      你是一个专业的智能客服,负责解答用户问题。
    
    # 使用策略模式
    intent_detection:
      enabled: true
      model: "classifier-v1"
      categories:
        - name: "技术问题"
          patterns:
            - "如何使用"
            - "功能介绍"
            - "代码示例"
          strategy: "technical_support"
        
        - name: "账户问题"
          patterns:
            - "登录不了"
            - "忘记密码"
            - "账户被封"
          strategy: "account_support"
        
        - name: "支付问题"
          patterns:
            - "如何付款"
            - "退款"
            - "发票"
          strategy: "payment_support"
        
        - name: "建议反馈"
          patterns:
            - "建议"
            - "反馈"
            - "功能请求"
          strategy: "feedback_support"
    
    strategies:
      technical_support:
        actions:
          - "理解技术问题"
          - "提供详细解答"
          - "给出代码示例"
          - "提供相关文档链接"
        
      account_support:
        actions:
          - "验证账户信息"
          - "提供解决方案"
          - "引导操作步骤"
          - "必要时转人工"
        
      payment_support:
        actions:
          - "了解支付问题"
          - "提供支付指南"
          - "解释退款政策"
          - "协助联系财务"
        
      feedback_support:
        actions:
          - "认真倾听"
          - "记录反馈"
          - "表示感谢"
          - "承诺跟进"
    
    escalation:
      enabled: true
      conditions:
        - "涉及法律问题"
        - "用户要求人工"
        - "3 次无法解决"
      action: "转接人工客服"

检查点 ✅

全部通过才能继续

  • [ ] 理解常用设计模式
  • [ ] 能选择合适的模式
  • [ ] 能实现复杂的工作流程
  • [ ] 能组合多种模式

本课小结

你学会了:

  1. 6 种常用的 Agent 设计模式
  2. 每种模式的适用场景
  3. 高级模式组合方法
  4. 实战案例:智能客服 Agent

下一课预告

下一课我们将学习 Agent 权限控制,确保 Agent 的安全性。


📚 更多完整模板Prompt 模板库