Agentic Design Patterns — 智能体设计模式精要
来源:Jimmy Song《智能体设计模式》在线教程,21 章 + 附录,覆盖 AI Agent 核心设计模式、协议、框架与最佳实践。 GitHub:https://github.com/rootsongjc/agentic-design-patterns
一、全书结构总览
| 部分 | 内容 | 章节范围 | |------|------|----------| | Part I · 前言 | 简介与智能体特征 | 引言 | | Part II · 核心模式(6 种基础) | 提示链、路由、并行化、反思、工具使用、规划 | 第 1-6 章 | | Part II · 高级模式(15 种) | 多智能体协作、记忆管理、学习适应、MCP、目标监控、异常处理、HITL、RAG、A2A 通信、资源优化、推理技术、护栏安全、评估监控、优先级排序、探索发现 | 第 7-21 章 | | Part III · 附录 | 提示工程、智能体交互、框架速览、AgentSpace、CLI 智能体、推理引擎、编程智能体 | 附录 A-G |
二、六大基础设计模式
1. 提示链(Prompt Chaining)
将复杂任务拆解为顺序执行的子任务链,每步输出作为下一步输入。
- 核心思想:
Input → LLM₁ → Output₁ → LLM₂ → Output₂ → ... - 优势:每步可独立调试、可注入中间验证
- 适用场景:文档翻译+摘要、代码审查+修复、数据清洗+分析
- 关键风险:错误沿链传播(链越长,累积偏差越大)
2. 路由(Routing)
根据输入特征将请求分发到不同处理分支。
- 核心思想:分类器判断输入类型 → 路由到对应处理模块
- 路由策略:关键词匹配、LLM 分类器、语义相似度、规则引擎
- 典型场景:客服系统(技术/账单/一般咨询分流)、多语言翻译
- 与提示链的区别:路由是条件分支,提示链是线性串联
3. 并行化(Parallelization)
同时执行多个独立子任务,最后聚合结果。
- 核心思想:
Input → [LLM₁ ‖ LLM₂ ‖ LLM₃] → 聚合 - 两种模式:
- 分块并行:同一任务拆分到多实例(如大文档分段总结)
- 投票并行:多实例独立完成同一任务,取共识(如代码多解法投票)
- 适用场景:多源数据采集、内容多角度审核、批量翻译
4. 反思(Reflection)
智能体自我评估并迭代改进输出。
- 核心循环:生成 → 评估 → 修改 → 再生成
- 关键机制:
- 自我批判:LLM 审查自身输出
- 外部反馈:引入人类或其他智能体评审
- 迭代优化:多轮直至满足质量标准
- 适用场景:代码生成与审查、文案优化、学术论文润色
- 注意:同一 LLM 既生成又评审时,发现自身错误的能力有限
5. 工具使用 / 函数调用(Tool Use)
智能体通过调用外部工具/函数扩展能力边界。
- 核心流程:LLM 判断需要工具 → 构造参数 → 调用 API → 解析结果 → 继续推理
- 常见工具:搜索引擎、数据库查询、代码执行、邮件发送、日历管理
- 设计要点:
- 工具描述必须清晰,LLM 据此决定何时调用
- 参数格式需严格定义(JSON Schema)
- 需处理工具调用失败的情况
- 与 MCP 的关系:函数调用是点对点集成,MCP 是标准化协议层(详见第 10 章)
6. 规划(Planning)
智能体自主制定多步行动计划并执行。
- 核心能力:目标分解 → 步骤排序 → 执行 → 监控 → 动态调整
- 与其他模式的关系:规划通常组合使用提示链、工具调用、反思等模式
- 挑战:LLM 生成的计划可能不可执行,需要验证和纠错机制
- 适用场景:旅行规划、项目管理、复杂研究任务
三、高级设计模式速查
| 模式 | 核心价值 | 关键概念 | |------|----------|----------| | 多智能体协作(Ch.7) | 专职分工,协同完成复杂任务 | 主智能体+子智能体、SequentialAgent/ParallelAgent | | 记忆管理(Ch.8) | 维持对话和跨会话上下文 | 短期/长期/工作记忆、会话状态管理 | | 学习与适应(Ch.9) | 从交互中持续优化行为 | 反馈学习、提示词优化、少样本积累 | | MCP(Ch.10) | LLM 与外部系统的标准化接口 | 客户端-服务器架构、工具/资源/Prompt、FastMCP | | 目标设定与监控(Ch.11) | 赋予智能体目标感和自评估能力 | SMART 目标、进度追踪、迭代优化循环 | | 异常处理与恢复(Ch.12) | 构建健壮弹性系统 | 错误检测→处理(重试/降级/备用)→恢复 | | HITL(Ch.13) | 人机协作,关键节点人类介入 | 升级策略、Human-on-the-loop 变体 | | RAG(Ch.14) | 连接外部知识源,突破训练数据限制 | 嵌入→分块→向量数据库→检索→增强生成 | | A2A(Ch.15) | 跨框架智能体间通信标准 | Agent Card、JSON-RPC、同步/流式/推送 | | 资源优化(Ch.16) | 动态平衡质量与成本/延迟 | 路由智能体、批判智能体、模型回退 | | 推理技术(Ch.17) | 显式化思考过程,提升复杂问题解决能力 | CoT、ToT、ReAct、自我纠错、RLVR | | 护栏与安全(Ch.18) | 确保安全合规运行 | 输入/输出过滤、内容审核、Pydantic 校验 | | 评估与监控(Ch.19) | 持续衡量智能体表现 | 轨迹评估、LLM-as-Judge、漂移检测 | | 优先级排序(Ch.20) | 在多任务环境中智能分配精力 | 紧急性/重要性/依赖关系/动态调整 | | 探索与发现(Ch.21) | 主动寻找未知信息和可能性 | 假设生成→辩论→进化、Co-Scientist |
四、核心协议深度对比
MCP vs A2A vs 工具函数调用
| 维度 | 工具函数调用 | MCP | A2A | |------|-------------|-----|-----| | 定位 | LLM→特定函数 | LLM→外部系统标准接口 | 智能体↔智能体通信 | | 标准化 | 厂商专有 | 开放标准协议 | 开放标准协议 | | 架构 | 一对一 | 客户端-服务器 | 客户端-服务器(HTTP) | | 发现机制 | 无,需预配置 | 动态能力发现 | Agent Card 声明 | | 通信协议 | 内部函数调用 | JSON-RPC(STDIO/SSE) | JSON-RPC 2.0 over HTTP | | 互操作性 | 低(耦合) | 高(通用适配器) | 高(跨框架) | | 核心组件 | 函数定义+参数 | 工具+资源+Prompt | Agent Card+任务+消息 | | 适用场景 | 简单固定功能 | 复杂系统集成 | 多智能体协作编排 |
组合使用:MCP 解决"智能体如何连接外部世界",A2A 解决"智能体如何互相协作",两者互补。
五、推理技术谱系
推理技术
├── CoT(链式思维)→ 逐步推理,内部独白
│ ├── ToT(树式思维)→ 多路径探索+回溯
│ └── 自我纠错 → 迭代优化输出
├── ReAct → 推理+行动循环(思考-行动-观察)
├── PALMs → 生成并执行代码,精确计算
├── RLVR → 可验证奖励强化学习,训练推理链
├── 多智能体推理
│ ├── CoD(辩论链)→ 多模型协作辩论
│ ├── GoD(辩论图)→ 非线性辩论网络
│ └── MASS → 自动优化提示+拓扑
└── 推理扩展定律 → 更多"思考时间" ≠ 更大模型
关键洞见:推理扩展定律表明,小模型在充足推理预算下可超越简单推理的大模型,挑战"模型越大越好"的直觉。
六、RAG 进化:从基础到智能体 RAG
标准 RAG:查询 → 检索 → 增强 → 生成
↓ 问题:信息碎片化、冲突、过时
GraphRAG:利用知识图谱理解实体间关系,综合多源信息
↓ 问题:构建和维护成本高
智能体 RAG:引入推理层,主动验证、调和冲突、多步推理
智能体 RAG 四大能力:
- 来源验证:识别文档时效性和权威性
- 冲突调和:多源矛盾时优先可靠数据
- 多步推理:拆分子查询,分头检索后综合
- 工具调用:检测知识空缺,主动调用外部工具
七、智能体框架生态
| 框架 | 核心抽象 | 适用场景 | 特点 | |------|----------|----------|------| | LangChain | 链(LCEL) | 线性 DAG 流程 | 简单可预测 | | LangGraph | 状态图 | 复杂循环推理 | 显式状态管理 | | Google ADK | 多智能体架构 | 生产级协作编排 | 预设模式、内置评估 | | CrewAI | 角色+团队 | 多角色协作 | 角色扮演式开发 | | AutoGen | 对话驱动 | 动态多智能体交互 | 灵活但不确定性高 | | LlamaIndex | 数据索引 | RAG 密集型场景 | 数据连接能力强 | | Strands Agents | 模型驱动 | 轻量级智能体 | AWS 原生、MCP 集成 |
选择原则:
- 简单线性流程 → LangChain
- 复杂循环+状态 → LangGraph
- 快速搭建多智能体 → ADK / CrewAI
- 数据密集型 → LlamaIndex
八、智能体评估方法论
| 方法 | 优势 | 劣势 | |------|------|------| | 人工评估 | 捕捉细微行为 | 难规模化、成本高 | | LLM-as-Judge | 一致、高效、可扩展 | 可能忽略中间步骤 | | 自动化指标 | 客观、可量化 | 难全面覆盖 |
轨迹评估:不仅看最终输出,还分析决策过程——将智能体实际步骤与理想路径对比(精确匹配、顺序匹配、查准率、查全率)。
评估工具:Google ADK 支持 Web UI 交互测试、pytest CI/CD 集成、命令行自动化评估。
九、前沿趋势
从"智能体"到"承包商"
传统智能体依赖简短指令,适合演示但生产环境易失败。承包商模型通过正式合同建立严密关系:
- 正式合同:详细规定任务、交付物、数据源、范围、成本、时限
- 动态协商:智能体可反馈约束并提出替代方案
- 质量导向迭代:自我验证+改进循环
- 分层分解:主承包商分解子任务,生成独立子合同
探索与发现
智能体从被动反应进化为主动探索:
- Google Co-Scientist:多智能体框架模拟科学方法(生成→辩论→进化假设)
- Agent Laboratory:自动完成文献综述→实验→报告撰写全流程
- 核心转变:从优化已知流程到发现"未知的未知"
十、设计模式速查表
当你面对以下场景时,选择对应模式:
| 场景 | 推荐模式 | |------|----------| | 任务步骤明确、线性执行 | 提示链 | | 不同输入需不同处理 | 路由 | | 独立子任务可同时执行 | 并行化 | | 输出需要质量把关 | 反思 | | 需要外部数据或操作 | 工具使用 / MCP | | 复杂多步目标 | 规划 + 目标监控 | | 任务超出单智能体能力 | 多智能体协作 / A2A | | 需要历史上下文 | 记忆管理 | | 需要最新/专有知识 | RAG | | 成本/延迟敏感 | 资源感知优化 | | 高风险/合规要求 | 护栏 + HITL | | 复杂推理/多步逻辑 | CoT/ReAct/ToT | | 系统上线后持续保障 | 评估与监控 | | 多任务竞争有限资源 | 优先级排序 | | 开放式创新/科学研究 | 探索与发现 |
十一、关键原则总结
- 从简单开始:先用提示链/路由解决,不足再叠加高级模式
- 组合使用:真实系统往往是多模式组合(如规划+工具调用+反思+记忆)
- 人类在环:高风险场景必须保留人类监督入口
- 护栏优先:安全不是事后补丁,而是设计阶段的一等公民
- 持续评估:智能体行为具有概率性,需要持续监控和轨迹分析
- 资源意识:不是所有任务都需要最强模型,动态路由优化成本
- 协议标准化:MCP 连接外部世界,A2A 连接智能体,构建可互操作生态
笔记基于 Jimmy Song《智能体设计模式》在线教程整理,原始内容版权归原作者所有。 来源:https://jimmysong.io/zh/book/agentic-design-patterns/