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 四大能力

  1. 来源验证:识别文档时效性和权威性
  2. 冲突调和:多源矛盾时优先可靠数据
  3. 多步推理:拆分子查询,分头检索后综合
  4. 工具调用:检测知识空缺,主动调用外部工具

七、智能体框架生态

| 框架 | 核心抽象 | 适用场景 | 特点 | |------|----------|----------|------| | 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 | | 系统上线后持续保障 | 评估与监控 | | 多任务竞争有限资源 | 优先级排序 | | 开放式创新/科学研究 | 探索与发现 |


十一、关键原则总结

  1. 从简单开始:先用提示链/路由解决,不足再叠加高级模式
  2. 组合使用:真实系统往往是多模式组合(如规划+工具调用+反思+记忆)
  3. 人类在环:高风险场景必须保留人类监督入口
  4. 护栏优先:安全不是事后补丁,而是设计阶段的一等公民
  5. 持续评估:智能体行为具有概率性,需要持续监控和轨迹分析
  6. 资源意识:不是所有任务都需要最强模型,动态路由优化成本
  7. 协议标准化:MCP 连接外部世界,A2A 连接智能体,构建可互操作生态

笔记基于 Jimmy Song《智能体设计模式》在线教程整理,原始内容版权归原作者所有。 来源:https://jimmysong.io/zh/book/agentic-design-patterns/