AI Engineering
智能体设计模式
概述
将目前最重要的智能体设计模式总结为四大类,它们是构建高质量智能体系统的核心"积木"。
图示文件:agentic_design_patterns.png
| 模式 | 核心思想 | 适用场景 |
|---|---|---|
| 反射(Reflection) | AI 审查并改进自己的输出 | 需要高质量输出的任务 |
| 工具使用(Tool Use) | AI 调用外部工具获取信息/执行操作 | 需要实时信息或真实世界交互 |
| 规划(Planning) | AI 将复杂任务分解为子步骤并执行 | 多步骤、长任务 |
| 多智能体(Multi-Agent) | 多个 AI 协作完成复杂任务 | 并行处理、需要专家分工 |
模式一:反射(Reflection)
核心思想
让 AI 生成输出后,再审查自己的输出,发现问题并改进,循环直到满意。
类比:好的作家不会写完就交稿,会反复修改;好的程序员会 review 自己的代码。
工作流
[生成] → 初始输出(草稿) ↓ [反思] → “这个输出有什么问题?哪里可以改进?” ↓ [改进] → 修改后的输出 ↓ [判断] → 质量是否达标? ↓ 否 ↓ 是 回到[反思] 输出最终结果
代码示例(伪代码)
def reflection_agent(task: str, max_iterations: int = 3) -> str: output = llm.generate(task)
for i in range(max_iterations):
critique = llm.generate(
f"请审查以下内容,找出不足并给出改进建议:\n{output}"
)
if "已达到高质量标准" in critique:
break
output = llm.generate(
f"根据以下建议改进内容:\n{critique}\n\n原内容:\n{output}"
)
return output
变体:外部反馈型反射
除了自我反思,还可以引入:
代码执行反馈:运行生成的代码,把报错信息反馈给 AI 进行修复 测试结果反馈:跑单元测试,把失败的测试反馈给 AI 搜索结果反馈:用搜索结果验证 AI 的陈述是否正确
模式二:工具使用(Tool Use)
核心思想
给 AI 装备"外挂工具",让它能够访问训练数据之外的信息,并执行真实世界的操作。
常见工具类型
信息获取类: ├── Web Search(网络搜索) ├── Wikipedia API ├── 数据库查询(SQL) └── 文件读取
计算执行类: ├── Python 代码执行器 ├── 计算器 └── 数据分析工具
操作执行类: ├── 发送邮件/消息 ├── 写入文件/数据库 ├── 调用第三方 API └── 浏览器自动化
工具调用流程(Function Calling)
用户:今天上海天气怎么样?
LLM 分析:需要调用天气 API ↓ 生成工具调用: { “tool”: “get_weather”, “params”: {“city”: “上海”, “date”: “today”} } ↓ 执行工具,获取结果: {“temperature”: 28, “weather”: “晴”, “humidity”: 65} ↓ LLM 基于结果生成回答: “今天上海天气晴,气温28°C,湿度65%,适合出行。”
MCP(Model Context Protocol)
MCP 是 Anthropic 推出的标准化工具接入协议,让 AI 能够以统一方式调用各种工具和数据源,正成为行业标准。
模式三:规划(Planning)
核心思想
面对复杂任务,AI 先制定完整计划,再逐步执行,并根据执行结果动态调整计划。
两种规划方式
方式一:预先规划(Plan-then-Execute)
接收任务 ↓ [规划阶段] 生成完整执行计划(步骤1→2→3→…) ↓ [执行阶段] 按计划逐步执行 ↓ 输出结果 优点:整体一致性强 缺点:计划无法动态调整
方式二:ReAct 模式(Reasoning + Acting)
接收任务 ↓ 思考:下一步该做什么? ↓ 行动:执行一个工具调用 ↓ 观察:查看工具返回结果 ↓ 思考:基于结果,下一步该做什么? ↓ (循环)… ↓ 思考:任务已完成 ↓ 输出最终答案 优点:灵活,能根据中间结果调整策略 缺点:可能陷入循环或方向偏移
ReAct 示例
任务:找出2024年全球前三大半导体公司的市值
思考:需要搜索最新的半导体公司市值数据 行动:search(“2024年全球半导体公司市值排名”) 观察:搜索结果显示英伟达、台积电、三星…
思考:需要获取具体市值数字 行动:search(“NVIDIA市值 2024”) 观察:英伟达市值约 3.3 万亿美元
思考:继续获取台积电和三星数据 行动:search(“TSMC市值 2024”) 观察:台积电市值约 9000 亿美元
… (继续执行)
思考:数据已收集完整,可以整理答案 输出:2024年全球前三大半导体公司…
模式四:多智能体(Multi-Agent)
核心思想
将复杂任务分配给多个专业化的智能体,它们分工合作,各自完成擅长的子任务。
为什么需要多智能体?
专业化:不同智能体专注不同领域,表现更好 并行化:多个智能体同时工作,速度更快 上下文管理:避免单个智能体上下文过长导致性能下降 可扩展:可以动态增减智能体数量
常见架构
层级架构(Hierarchical):
[编排智能体(Orchestrator)] ↓ ┌─────┼─────┐ ↓ ↓ ↓ [搜索 [分析 [写作 智能体] 智能体] 智能体] 对等协作架构(Peer-to-Peer):
智能体A ←→ 智能体B ↑ ↑ └─── 智能体C ┘ 流水线架构(Pipeline):
智能体A → 智能体B → 智能体C → 输出 (数据收集)(分析) (报告生成)
实际案例:代码开发多智能体
用户需求 ↓ [产品经理智能体] → 功能规格文档 ↓ [架构师智能体] → 技术设计方案 ↓ [开发智能体A] [开发智能体B] ← 并行开发 (前端) (后端) ↓ ↓ [测试智能体] ← 集成代码 ↓ [代码审查智能体] → 改进建议 ↓ 最终代码
四种模式的组合使用
在实践中,这四种模式通常组合使用:
复杂任务 ↓ [规划] 制定执行计划 ↓ [多智能体] 分配给专业智能体 ↓ 每个智能体使用 [工具] 完成子任务 ↓ [反射] 各智能体审查自己的输出 ↓ 汇总,整合输出
选择设计模式的参考
| 任务特征 | 推荐模式 |
|---|---|
| 输出质量要求高 | 反射 |
| 需要最新信息 | 工具使用 |
| 任务步骤超过 5 步 | 规划 |
| 任务需要不同专业知识 | 多智能体 |
| 上述情况组合 | 多种模式组合 |