5.2b Agent 设计模式
💡 一句话总结:掌握常用的 Agent 设计模式,构建高效、智能的 AI 助手。
学完你能做什么
- 理解常见的 Agent 设计模式
- 能根据场景选择合适的模式
- 能实现复杂的 Agent 工作流程
- 能优化 Agent 的性能表现
🎒 开始前的准备
确保你已经完成以下事项:
- [ ] 完成了 5.2a 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: "转接人工客服"检查点 ✅
全部通过才能继续
- [ ] 理解常用设计模式
- [ ] 能选择合适的模式
- [ ] 能实现复杂的工作流程
- [ ] 能组合多种模式
本课小结
你学会了:
- 6 种常用的 Agent 设计模式
- 每种模式的适用场景
- 高级模式组合方法
- 实战案例:智能客服 Agent
下一课预告
下一课我们将学习 Agent 权限控制,确保 Agent 的安全性。
📚 更多完整模板:Prompt 模板库

