森.林木

《Agent设计模式》内容摘要

概述

AI 范式发生了巨大转变,从简单自动化迈向复杂自主系统(见图 2)。最初,工作流依赖基础提示和触发器,利用 LLM 处理数据。随后,检索增强生成(RAG)技术出现,通过事实信息提升模型可靠性。接着,单体智能体诞生,能够调用多种工具。如今,我们正步入智能体 AI 时代,多个专业智能体协作完成复杂目标,AI 的协同能力实现了质的飞跃.
alt text

Agent设计模式

提示链(Prompt Chaining)

  • 提示链将复杂任务拆解为一系列小型、聚焦步骤,亦称流水线模式。
  • 每步链条包含一次 LLM 调用或处理逻辑,以上一步输出为输入。
  • 该模式提升了与语言模型复杂交互的可靠性和可管理性。
  • LangChain/LangGraph、Google ADK 等框架为多步序列定义、管理和执行提供了强大工具。

alt text

路由(Routing)

  • 路由使智能体可根据条件动态决策下一步流程。
  • 智能体可处理多样输入并自适应行为,突破线性执行限制。
  • 路由逻辑可用 LLM、规则系统或嵌入相似度实现。
  • LangGraph、Google ADK 等框架提供结构化路由定义与管理方式,架构风格各异。

alt text

并行化(Parallelization)

  • 并行化是一种通过并发执行独立任务提升效率的设计模式
  • 尤其适用于涉及外部资源(如 API 调用)等待的场景
  • 并发/并行架构会增加设计、调试和日志等开发复杂度与成本
  • LangChain、Google ADK 等框架均支持并行执行定义与管理
  • LCEL 中 RunnableParallel 是并行运行多个 runnable 的关键构造
  • Google ADK 可通过 LLM 驱动的委托,实现协调智能体并行处理子任务
  • 并行化可显著降低整体延迟,让智能体系统在复杂任务下更具响应性

alt text

反思(Reflection)

  • 反思模式的核心优势是能迭代自我纠错和优化输出,显著提升质量、准确性和复杂指令的遵循度。
  • 包含执行、评估/批判和优化的反馈循环,适用于高质量、准确或复杂输出任务。
  • 强大的实现方式是生产者 - 批评者模型,独立智能体评估初始输出,分工提升客观性和结构化反馈。
  • 但需权衡延迟和计算成本增加,以及模型上下文窗口溢出或 API 限流风险。
  • 完整迭代反思需有状态工作流(如 LangGraph),单步反思可在 LangChain 用 LCEL 实现输出批判和优化。
  • Google ADK 可通过顺序工作流实现反思,一智能体输出由另一智能体批判,支持后续优化。
  • 该模式让智能体具备自我纠错和持续性能提升能力。

alt text

alt text

工具使用(Tool Use)

  • 工具使用(函数调用)让智能体能与外部系统交互,获取动态信息。
  • 需定义工具并清晰描述参数,便于 LLM 理解。
  • LLM 决定何时使用工具并生成结构化调用请求。
  • 智能体框架实际执行工具调用并返回结果。
  • 工具使用是构建能执行现实动作、提供最新信息智能体的关键。
  • LangChain 用 @tool 装饰器简化工具定义,并提供 create_tool_calling_agent 和智能体 - Executor 构建工具智能体。
  • Google ADK 内置了如 Google 搜索、代码执行、Vertex AI Search 等实用工具。

alt text

规划(Planning)

  • 规划使智能体能够将复杂目标拆解为可执行的、顺序化的步骤。
  • 该模式对于处理多步骤任务、工作流自动化和复杂环境导航至关重要。
  • 大型语言模型可根据任务描述生成逐步规划,实现自动化分解与执行。
  • 明确提示或设计任务要求规划步骤,可在智能体框架中激发此类行为。
  • Google Deep Research 是一个智能体,利用 Google 搜索工具为用户分析信息来源,具备反思、规划和执行能力。
    alt text

多智能体协作(Multi-Agent Collaboration)

  • 多智能体协作即多个智能体共同实现目标。
  • 该模式利用专长分工、任务分布与智能体间通信。
  • 协作形式包括顺序交接、并行处理、辩论或层级结构。
  • 适用于需多领域专长或多阶段复杂问题。

alt text

记忆管理(Memory Management)

  • 记忆对于智能体跟踪信息、学习和个性化交互至关重要。
  • 对话式 AI 依赖短期记忆维持单次聊天上下文,长期记忆则跨会话保存知识。
  • 短期记忆(即时信息)是临时的,常受 LLM 上下文窗口或框架传递方式限制。
  • 长期记忆(持久信息)通过外部存储(如向量数据库)保存,并通过检索访问。
  • ADK 框架有专用组件:Session(聊天线程)、State(临时数据)、MemoryService(长期知识库)管理记忆。
  • ADK 的 SessionService 管理会话生命周期,包括历史(events)和临时数据(state)。
  • ADK 的 session.state 是临时数据字典,前缀(user:、app:、temp:)标明数据归属和持久性。
  • 在 ADK 中,推荐通过 EventActions.state_delta 或 output_key 更新 state,不要直接修改 state 字典。
  • ADK 的 MemoryService 用于长期存储和检索信息,常通过工具实现。
  • LangChain 提供如 ConversationBufferMemory 等工具,自动将单次对话历史注入提示,实现即时上下文回忆。
  • LangGraph 支持高级长期记忆,通过 store 保存和检索语义事实、情景经历或可更新规则,跨用户会话持久化。
  • Memory Bank 是托管服务,自动提取、存储和回忆用户信息,实现个性化、持续对话,支持 ADK、LangGraph、CrewAI 等框架。

alt text

学习与适应(Learning and Adaptation)

  • 学习与适应让智能体通过经验不断提升能力,应对新情况。
  • “适应”是智能体因学习而表现出的行为或知识变化。
  • SICA 智能体通过自我修改代码实现自我改进,催生了智能编辑器和 AST 符号定位器等工具。
  • 专用“子智能体”和“监督者”有助于自我改进系统分解大任务并保持进度。
  • LLM 的“上下文窗口”结构(系统提示、核心提示、助手消息)对智能体效率至关重要。
  • 此模式适用于需在不断变化、不确定或需个性化环境中运行的智能体。
  • 构建能学习的智能体通常需集成机器学习工具并管理数据流。
  • 配备基础编码工具的智能体可自主编辑自身代码,从而提升基准任务表现。
  • AlphaEvolve 是 Google 的智能体,结合 LLM 和进化框架,实现算法自主发现与优化,推动基础研究和实际计算应用。

alt text

模型上下文协议(MCP)

  • MCP 是开放标准,规范 LLM 与外部应用、数据源和工具的通信。
  • 采用客户端 - 服务器架构,定义资源、Prompt 和工具的暴露与消费方式。
  • ADK 支持消费现有 MCP 服务器,也可将自身工具暴露为 MCP 服务。
  • FastMCP 简化 MCP 服务器开发,尤其适合 Python 工具的快速集成。
  • MCP Genmedia 工具支持智能体集成 Google Cloud 生成式媒体服务(Imagen、Veo、Chirp 3 HD、Lyria)。
  • MCP 让 LLM 和智能体能访问真实世界系统、动态信息,并执行超越文本生成的操作。

alt text

目标设定与监控(Goal Setting and Monitoring)

  • 目标设定与监控赋予智能体目标感和进度追踪机制。
  • 目标应具体、可衡量、可达成、相关且有时限(SMART)。
  • 明确指标和成功标准是有效监控的关键。
  • 监控包括观察智能体行为、环境状态和工具输出。
  • 监控反馈回路让智能体能自适应、修正计划或升级问题。
  • 在 Google 的 ADK 中,目标通常通过智能体指令传递,监控则通过状态管理和工具交互实现。

alt text

异常处理与恢复(Exception Handling and Recovery)

  • 异常处理与恢复是构建健壮可靠智能体的基础。
  • 该模式包括错误检测、优雅处理和恢复策略。
  • 错误检测可通过验证工具输出、检查 API 错误码和超时实现。
  • 处理策略包括日志记录、重试、备用方案、优雅降级和通知。
  • 恢复聚焦于诊断、自我修正或升级,恢复稳定运行。
  • 该模式确保智能体在不可预测的真实环境中依然高效运行。

alt text

人类参与环节(Human-in-the-Loop)

  • Human-in-the-Loop(HITL)将人类智能和判断力融入 AI 工作流。
  • 在复杂或高风险场景下,安全、伦理和效果至关重要。
  • 关键方面包括人类监督、干预、学习反馈和决策增强。
  • 升级策略让智能体知道何时应交由人类处理。
  • HITL 支持负责任的 AI 部署和持续改进。
  • HITL 的主要缺点是可扩展性不足,需在准确性与处理量之间权衡,并高度依赖领域专家的有效干预。
  • 实施过程中还需培训人工操作员生成数据,并通过匿名化处理敏感信息以应对隐私挑战。
    alt text

知识检索(RAG)

  • 知识检索(RAG)让 LLM 能访问外部、最新、专有信息。
  • 包含检索(搜索知识库相关片段)和增强(将片段加入 LLM 提示)两步。
  • RAG 帮助 LLM 克服训练数据过时、减少“幻觉”,实现领域知识集成。
  • RAG 支持可归因答案,响应基于检索来源。
  • GraphRAG 利用知识图谱理解信息间关系,能回答需多源综合的复杂问题。 *智能体 RAG 通过智能体主动推理、验证和精炼外部知识,确保答案更准确可靠。
  • 实践应用涵盖企业搜索、客户支持、法律检索、个性化推荐等场景。

alt text

alt text

智能体间通信(A2A)

  • Google A2A 协议是一项开放、基于 HTTP 的标准,促进不同框架智能体间的通信与协作。
  • AgentCard 是智能体的数字身份,便于其他智能体自动发现和理解其能力。
  • A2A 支持同步请求 - 响应(tasks/send)和流式更新(tasks/sendSubscribe),满足不同通信需求。
  • 协议支持多轮对话,包括 input-required 状态,Agent 可请求补充信息并保持上下文。
  • A2A 鼓励模块化架构,专用智能体可独立运行于不同端口,实现系统可扩展和分布式部署。
  • Trickle AI 等工具可可视化和跟踪 A2A 通信,便于开发者监控、调试和优化多智能体系统。
  • A2A 专注于智能体间任务和工作流管理,MCP 则为 LLM 与外部资源交互提供标准接口。

alt text

资源感知优化(Resource-Aware Optimization)

  • 资源感知优化至关重要:智能体可动态管理计算、时间和财务资源,依据实时约束和目标做出模型和执行路径决策。
  • 多智能体架构实现可扩展性:Google ADK 提供多智能体框架,支持模块化设计,不同智能体(答题、路由、批判)各司其职。
  • 动态 LLM 路由:路由智能体根据查询复杂度和预算分流到 Gemini Flash(简单)或 Gemini Pro(复杂),优化成本与性能。
  • 批判智能体功能:专用批判智能体提供自我纠错、性能监控和路由逻辑优化反馈,提升系统效能。
  • 反馈与灵活性优化:评估能力和模型集成灵活性促成系统自适应和自我提升。
  • 其他资源优化技术:包括自适应工具选择、上下文剪枝与摘要、主动资源预测、多智能体成本敏感探索、能效部署、并行与分布式计算、学习型资源分配策略、优雅降级与回退机制、关键任务优先级分配等。

alt text

推理技术(Reasoning Techniques)

  • 显式推理让智能体能制定透明多步计划,是自主行动和用户信任的基础。
  • ReAct 框架赋予智能体核心操作循环,使其能动态行动并与环境交互。
  • 推理扩展定律表明智能体性能不仅取决于模型大小,还取决于分配的“思考时间”,实现更高质量的自主行动。
  • 链式思维(CoT)是智能体的内部独白,通过分步规划将复杂目标拆解为可执行动作序列。
  • 树式思维和自我纠错赋予智能体深度思考能力,可评估多种策略、纠错并优化方案。
  • 协作框架如辩论链(CoD)推动从单体到多智能体系统,团队协作能解决更复杂问题并减少偏见。
  • Deep Research 等应用展示了这些技术如何让智能体自主执行复杂、长期任务,如深入调查。
  • MASS 框架自动优化智能体提示和交互结构,确保多智能体系统整体性能最优。
  • 集成这些推理技术,打造真正自主、可托付的智能体,能独立规划、行动和解决复杂问题。
    alt text

护栏与安全模式(Guardrails/Safety Patterns)

  • 护栏是构建负责任、合规、安全智能体的基础,防止有害、偏见或跑题输出。
  • 可在输入验证、输出过滤、行为约束、工具限制、外部审核等环节实施。
  • 多种护栏技术组合最为稳健。
  • 护栏需持续监控、评估和优化,适应风险和用户变化。
  • 有效护栏对维护用户信任和智能
  • 构建可靠、工程级智能体的最佳方式,是将其视为复杂软件系统,应用传统系统几十年来成熟的工程实践,如容错设计、状态管理和全面测试。

alt text

评估与监控(Evaluation and Monitoring)

  • 智能体评估超越传统测试,需持续衡量其在实际环境中的有效性、效率和合规性。
  • 典型应用包括生产环境性能追踪、A/B 测试、合规审计、漂移和异常检测。
  • 基础评估关注响应准确性,实际场景需延迟监控、LLM Token 用量等更复杂指标。
  • 轨迹评估关注智能体行为序列,将实际步骤与理想路径对比,发现错误和低效。
  • ADK 提供结构化评估方法,支持单元测试(测试文件)和集成测试(evalset 文件),均定义预期行为。
  • 评估可通过 Web UI 交互测试、pytest 集成 CI/CD、命令行自动化执行。
  • 为提升 AI 在复杂高风险任务中的可靠性,需从简单提示转向正式“合同”,明确定义可验证交付物和范围,支持协商、分解和自我验证,将智能体转变为可问责系统。
    alt text

优先级排序(Prioritization)

  • 优先级排序让智能体在复杂多元环境下高效运作。 *智能体通过紧急性、重要性、依赖关系等标准评估和排序任务。
  • 动态优先级调整使智能体能实时响应环境变化。
  • 优先级排序可应用于战略目标和即时战术决策等多个层级。
  • 有效的优先级排序提升智能体效率和操作稳健性。

alt text

探索与发现(Exploration and Discovery)

  • AI 的探索与发现能力使智能体能主动获取新信息和可能性,适应复杂动态环境。
  • Google Co-Scientist 等系统展示了智能体如何自主生成假设和设计实验,辅助人类科研。
  • Agent Laboratory 的多智能体框架通过自动化文献综述、实验和报告撰写提升科研效率。
  • 这些智能体通过管理计算密集型任务,增强人类创造力和问题解决能力,加速创新与发现。

alt text

总结:智能体设计核心原则

21 种设计模式构成了智能体开发的完整工具箱。每种模式都针对特定设计难题,但整体来看,可以将它们归类为智能体的核心能力:

  • 核心执行与任务分解:智能体最基本的能力是执行任务。Prompt Chaining、Routing、Parallelization 和 Planning 构成了智能体行动的基础。Prompt Chaining 通过线性分步拆解问题,确保每一步输出都能逻辑地指导下一步。当工作流需要更灵活的行为时,Routing 引入条件逻辑,使智能体能根据输入上下文选择最合适的路径或工具。Parallelization 通过并行执行独立子任务提升效率,而 Planning 则让智能体从执行者升级为战略家,能够制定多步计划以实现高层目标。
  • 与外部环境交互:智能体的价值在于能与外部世界互动。Tool Use(函数调用)模式至关重要,使智能体能够调用外部 API、数据库等软件系统,将操作与真实数据和能力结合。为有效使用这些工具,智能体常需从海量信息库中检索特定内容。Knowledge Retrieval(尤其是 RAG)模式让智能体能查询知识库,将相关信息融入响应,提高准确性和上下文感知能力。
  • 状态、学习与自我提升:智能体若要完成多轮任务,必须具备保持上下文和持续改进的能力。Memory Management 模式为智能体提供短期对话上下文和长期知识记忆。真正智能的体还需具备自我提升能力。Reflection 和 Self-Correction 模式让智能体能自我批判输出,发现错误并迭代优化,提升结果质量。Learning and Adaptation 模式则让智能体根据反馈和经验不断进化,变得更高效。
  • 协作与沟通:许多复杂问题需要协作解决。Multi-Agent Collaboration 模式支持多个专职智能体协同工作,各自承担不同角色和能力,共同达成目标。这种分工让系统能解决单一智能体无法应对的多面问题。系统的有效性依赖于高效沟通,Inter-Agent Communication(A2A)和 Model Context Protocol(MCP)模式则规范了智能体与工具的信息交换。

这些原则通过各自的设计模式,为构建智能系统提供了坚实框架,指导开发者打造结构化、可靠且可适应的智能体。

资源

https://www.cnblogs.com/wintersun/p/19072835

https://jimmysong.io/book/agentic-design-patterns/21-exploration-and-discovery/

https://github.com/mahtabsyed/21-Agentic-Patterns