【第四部分:Agentic 智能体设计模式】15.为什么 Agent 也需要设计模式

简介: 本文介绍 Agent 设计模式的常见编排方式、适用场景与工程实践,重点分析 Prompt Chaining、Routing、Parallelization、Reflection、Planning、Tool Use 和 Multi-Agent 等模式如何解决复杂任务中的拆分、路由、并行、质量检查与协作问题。结合 BaseMetas EKA 企业知识助手案例,以及 OpenAI Agents SDK、LangGraph、DeepSeek Harness 等技术实现,说明设计模式与 Framework、Harness 的区别,并从执行控制、异常恢复、成本和评估等角度介绍模式选型原则,避免 Agent

上一篇我们完成了企业知识助手的综合实践,将 Context、RAG 、Tool Calling、State、Memory 和权限控制等能力组合到一个完整的 Agent 应用中。

但随着任务复杂度增加,仅具备这些能力还不够。例如,用户要求企业知识助手对比新旧采购制度、分析受影响的业务流程、查询相关合同并生成调整建议,系统可能需要完成多次检索、并行分析、结果校验和内容修订。如果完全依赖自由 Agent Loop,虽然可以动态调用工具、持续执行任务,但执行路径、结果质量、运行成本和完成时间都不容易控制。因此,除了 Agent 的基础能力和运行时框架,还需要一套可复用的任务组织方法,也就是 Agent Design Patterns(Agent 设计模式)。

本篇重点介绍常见 Agent 设计模式的分类、适用场景及工程实现思路,为后续的提示链、路由、并行、反思、规划和多智能体协作等专题建立基础。

一、Agent 设计模式的引入背景

传统软件开发通过设计模式解决反复出现的设计问题,例如工厂模式用于对象创建,策略模式用于算法切换,观察者模式用于事件通知。

Agent 同样存在大量可以复用的执行结构,但与传统程序相比,Agent 的一部分处理逻辑由模型动态决定,执行路径具有一定的不确定性。这种不确定性使 Agent 更适合处理开放式任务,同时也给复杂业务场景带来了新的工程问题。

典型问题 可能出现的情况 对应的处理方式
复杂任务 遗漏步骤、执行顺序不合理 Planning、Prompt Chaining
多种任务类型 所有请求使用同一处理流程 Routing
多个独立子任务 串行执行造成额外延迟 Parallelization
结果质量不稳定 内容错误、遗漏或相互矛盾 Reflection
外部系统操作 工具选择错误、重复调用或越权 Tool Use、Human-in-the-Loop
长时间任务 执行中断、反复重试、无法恢复 Recovery、Checkpoint
跨领域任务 单个 Agent 承担过多职责 Multi-Agent

这些问题不能仅靠优化 Prompt 解决。开发者还需要设计任务拆分、路由、并发、反馈、终止条件和异常恢复等机制。

Agent 设计模式的作用,就是针对这些反复出现的问题,提供可复用的任务编排和执行策略。设计模式并不消除模型的不确定性,而是通过更加明确的任务组织方式,使 Agent 的行为更容易理解、控制和评估。

二、设计模式与 Framework、Harness 的关系

前面的文章已经分别介绍了 Agent Framework 和 Agent Harness。设计模式与它们属于不同的抽象层次。

概念 主要职责 典型内容
Agent Design Pattern 定义任务如何组织和执行 Routing、Reflection、Planning
Agent Framework 提供模式实现所需的开发组件 Spring AI、LangChain4j、LangGraph
Agent Harness 提供稳定运行所需的工程机制 Session、Sandbox、Hooks、Permission、Trace

例如,一个需求分析 Agent 在生成需求后,需要进行质量检查,低于指定标准时自动修改并重新检查。这种方式属于 Reflection / Evaluator-Optimizer 模式。

实现时可以使用 LangGraph 的节点和条件边,也可以通过 Java 中的循环和条件判断实现;如果需要持久化、异常恢复、执行追踪和权限控制,则还要进一步依赖 Framework 或 Harness 提供的运行时能力。因此,同一种设计模式可以采用不同的技术实现,而同一个 Agent Framework 也可能支持多种设计模式。

设计模式解决任务组织问题,Framework 解决开发实现问题,Harness 解决运行保障问题。它们并不是相互替代的技术,而是可以组合使用的不同工程抽象。

三、常见 Agent 设计模式

结合目前主流 Agent 开发实践,可以按照任务组织方式,将常见设计模式归纳为以下几类。

设计模式 主要用途 典型应用
Prompt Chaining(提示链) 将任务拆成顺序执行的步骤 文档提取、分析、生成
Routing(路由) 根据请求选择处理路径 意图分类、模型与工具选择
Parallelization(并行化) 同时处理相互独立的子任务 多文档分析、多来源查询
Reflection(反思) 检查结果并进行有限次数修订 质量检查、代码审查
Tool Use(工具使用) 选择、组合并执行外部程序能力 业务 API、数据库、文件操作
Planning(规划) 拆解复杂目标并管理任务依赖 研究分析、长任务执行
Human-in-the-Loop(人在回路) 在关键节点引入人工决策 审批、付款、发布
Recovery(异常恢复) 处理失败、重试、中断和补偿 异步任务、长时间执行
Memory & Adaptation(记忆与适应) 利用历史信息和经验调整行为 偏好复用、经验沉淀
Multi-Agent(多智能体协作) 由多个专业 Agent 分工处理任务 研发协作、综合分析

这些模式并不是十种独立的 Agent 产品,也不存在固定的复杂度顺序。

例如,Prompt Chaining 和 Parallelization 都可以在完全确定性的 Workflow 中实现,不一定需要自由 Agent Loop;Reflection 可以嵌入某个生成节点,Planning 则可以结合 Tool Use 动态执行任务。

Multi-Agent 也不是必然比单 Agent 更高级。只有当任务确实需要不同的专业能力、执行环境或上下文隔离时,拆分多个 Agent 才可能带来收益。因此,设计模式应根据具体任务需要组合,而不是按模式数量衡量 Agent 的复杂程度。

四、设计模式组合:企业采购制度变更分析

继续使用上一篇的企业知识助手作为案例。假设用户提出:

对比 2025 年和 2026 年的采购制度,分析付款、审批和合同管理方面的变化,查询目前仍在执行的相关合同,并生成调整建议。

这个任务涉及制度检索、业务数据查询、文档对比和报告生成,已经超出简单 RAG 问答的范围。

任务路由与规划

首先通过 Routing 识别请求类型,将其归入复杂业务分析,而不是普通制度问答或单次数据库查询。

随后通过 Planning 拆解任务,明确需要获取哪些资料、哪些步骤可以独立执行、哪些结果需要相互依赖。例如,新旧制度的检索与有效合同查询可以分别执行,而合同风险分析必须等待相关证据准备完成。

并行获取资料

对于没有直接依赖关系的任务,可以采用 Parallelization,同时检索两版采购制度,并通过 Business API 查询有效合同。

这里不一定需要三个独立 Agent。调用三个普通 Tool,或者通过线程池、异步任务执行三个函数,同样可以实现并行。

关键是区分:任务是否独立,与任务是否需要独立 Agent,是两个不同的问题。

结果检查与修订

获得资料以后,Agent 对比制度条款、识别差异,再结合合同内容判断潜在影响。

如果发现某些结论缺少证据,可以通过 Reflection 检查证据完整性,并使用 Tool 再次检索。但这种循环应该受到最大检索次数、Token 预算和终止条件的约束,避免重复搜索。

最终报告应包含相关制度条款、合同来源以及调整建议。对于缺少可靠证据的内容,应明确标记,而不是让模型自行补全。

业务操作与人工确认

如果用户只需要分析报告,系统可以直接交付结果;如果进一步要求修改合同、发送通知或提交审批,就进入 Tool Use 和 Human-in-the-Loop。

这些操作会改变真实业务状态,不能仅因为模型认为“分析已经完成”就自动执行,还需要权限校验、参数验证和必要的人工确认。

image.gif 编辑

以上通过BaseMetas EKA企业知识助手架构图展示 Routing、Planning、Parallelization、Reflection、Tool Use 和 Human-in-the-Loop 之间的关系,重点体现普通问答、复杂分析和业务操作三类任务采用不同处理策略,而不是所有请求都进入同一条执行链。

这个案例说明:一个完整的 Agent 应用可以同时使用多种设计模式,但每一种模式都应该解决一个明确的工程问题。

五、设计模式的选择依据

实际开发中,通常不应该先决定采用哪个 Agent Framework,再围绕框架提供的功能设计业务流程,而应该先分析任务特点,确定执行策略,再选择合适的实现工具。

任务特征 优先考虑的方案
单次模型调用即可完成 Direct LLM Call
多个顺序执行、结果可检查的步骤 Prompt Chaining
输入类型差异明显 Routing
多个独立任务可以同时执行 Parallelization
输出需要检查和修改 Reflection
执行路径无法提前完全确定 Agent Loop、Planning
存在不可逆或高风险操作 Human-in-the-Loop
需要等待外部事件或中断恢复 Checkpoint、Recovery
多个专业领域需要独立处理 专业 Tool、Skill,必要时 Multi-Agent

这里需要特别注意 Workflow 与 Agent 的边界。如果一个任务可以被预先定义为固定步骤,而且每一步都有明确的输入输出,那么普通 Workflow 通常更加简单、稳定。例如,将合同文本转换成结构化 JSON,校验 Schema 后写入数据库,并不一定需要引入 Agent。

但如果执行过程中需要根据已有结果动态调整查询策略、选择工具或重新规划后续步骤,Agent 的自主决策才具有更明显的价值。因此,在任务选型时应该优先考虑:确定性程序 → Workflow → 单 Agent → 多 Agent。这不是技术演进的固定顺序,而是控制复杂度的一种原则。能够采用更简单方式解决的问题,没有必要直接使用复杂编排架构。

六、主流框架中的模式实现

截至 2026 年 10 月,主流 Agent 框架已经把许多常见设计模式逐渐封装为可以组合的开发能力,但不同项目的关注点存在明显差异。

OpenAI Agents SDK:Tool 与 Agent 编排

OpenAI Agents SDK 提供 Agent、Tool、Handoff、Guardrail、Session 和 Tracing 等基础能力。

其中,多 Agent 编排主要存在两种不同方式。

Agents as Tools 适合由一个主 Agent 统一负责目标和最终结果,其他专业 Agent 作为可调用工具完成子任务。

Handoff 则用于将当前任务的后续处理交给另一个 Agent,例如支持系统根据用户请求把问题交给订单、退款等专业 Agent。

两者都属于多 Agent 协作,但控制权和任务责任不同。因此设计多 Agent 时,首先要明确哪个 Agent 负责最终结果,而不是简单增加 Agent 数量。

LangGraph:显式 Workflow 与动态 Agent

LangGraph 采用 State、Node 和 Edge 组织任务,在官方文档中提供了 Prompt Chaining、Routing、Parallelization、Orchestrator-Worker 和 Evaluator-Optimizer 等常见模式。

例如,Routing 可以通过结构化输出决定进入哪个节点;Parallelization 可以并发执行相互独立的任务;Evaluator-Optimizer 可以让检查节点依据结果决定是否重新进入生成节点。

这些机制也可以与 Checkpoint、Interrupt 和持久化结合,用于构建具有明确流程边界的复杂 Agent。

DeepSeek Harness:自由循环与插件化扩展

DeepSeek Harness 采用基于 Cordis 的插件化架构,将 Agent Loop、Tool Registry、Model Adapter、Session Log 等拆成可以独立扩展的组件。

其核心仍然是模型调用、工具执行和 Observation 反馈,但可以通过插件、事件和运行时扩展点加入额外处理机制。它与 LangGraph 的显式状态图属于不同的组织方式:LangGraph 更适合预先定义执行关系,DeepSeek Harness 则更适合在自由 Agent Loop 周围扩展工具、运行控制和执行环境。

这些项目共同说明,设计模式正在从抽象的编排经验转变为框架可直接组合的工程能力。但框架只提供实现机制,是否使用、何时使用以及如何组合,仍然需要开发者根据任务特点决定。

七、执行边界与异常处理

Agent 设计模式不能只描述正常执行路径,还需要定义失败和终止行为。例如,Reflection 不能简单实现为“检查不通过就继续修改”,Planning 也不能只关注任务拆解而忽略执行预算。任何包含动态决策的模式,都应该明确以下几个方面。

设计要素 工程要求
触发条件 明确什么情况下启用该模式
输入输出 定义节点之间的数据契约
执行边界 限制循环次数、Token 和耗时
终止条件 明确成功、失败及部分完成状态
异常处理 提供重试、降级、补偿或人工介入
权限控制 对有副作用的 Tool 执行前置检查
可观测性 记录关键决策、工具调用和执行结果

例如,在文档质量检查场景中,可以将最大自动修订次数限制为三次。如果多次修订以后仍然未达到质量要求,系统应转人工处理,而不是无限调用模型。

对于可能重复执行的业务 Tool,还要考虑幂等性。例如支付或审批提交操作发生超时,并不能直接认为执行失败后重新提交,否则可能产生重复操作。因此,模式解决任务结构问题,执行可靠性仍然需要 Runtime、业务规则和权限体系共同保障。

八、设计模式的评估与优化

引入设计模式并不意味着系统一定会更加高效。例如,将一个分析任务从单 Agent 改造成 Planning + Parallelization + Reflection 后,虽然可能提高复杂任务的完成率,但也可能因为规划、检查和多次模型调用而增加整体耗时与 Token 成本。因此应通过实际任务数据评估模式是否有效,而不是仅凭执行流程是否更加完整来判断。

评估维度 主要指标
任务效果 完成率、正确率、遗漏率
工具调用 工具选择准确率、参数正确率
执行效率 响应时间、步骤数、并行收益
运行成本 Token、模型请求数、工具调用成本
稳定性 失败率、超时率、重试次数
可观测性 Trace 完整性、错误定位能力
人工介入 审批次数、人工修正率

例如,对于一组固定的企业采购分析任务,可以分别运行“单 Agent”和“Planning + Parallelization + Reflection”两个方案,再比较结果正确率、执行时间、模型调用次数和人工修改量。

如果增加模式以后正确率没有明显改善,反而显著增加延迟和成本,就应该重新评估架构复杂度。这种评估方式也延续了前一篇企业知识助手中的 Trace/Eval 思路:不仅检查最终答案,还要分析整个执行过程是否合理。

九、设计模式的工程化使用原则

在实际项目中,Agent 设计模式应以任务目标和工程收益为依据,而不是以模式数量或系统复杂度为目标。对于简单任务,优先采用确定性程序或少量模型调用;对于需要多个明确步骤的任务,可以先采用 Prompt Chaining;对于需要动态选择处理路径的任务,再引入 Routing 或 Agent Loop。

当任务包含独立子任务时,可以考虑并行化;需要质量反馈时,增加 Reflection;存在明确的执行依赖与长时间运行需求时,再采用 Planning、Checkpoint 或状态机编排。Multi-Agent 更应该谨慎使用。只有当单 Agent 已经难以承担任务,或者确实需要专业能力隔离、独立上下文和任务委派时,才有必要进一步拆分。

这些原则可以概括为:先确定任务结构,再选择设计模式,最后确定 Framework 和 Runtime 实现。不要把框架能够实现的所有模式都组合到一个 Agent 中。系统设计的最终目标仍然是以合理的成本、延迟和复杂度可靠完成任务。

十、本篇小结

从第 10 篇手写最小 Agent 开始,我们已经逐步学习了 Agent Loop、Framework、State Machine、Memory,并完成了企业知识助手的综合实践。这些内容主要解决 Agent 的基础能力和工程实现问题,而 Agent 设计模式进一步关注如何组织复杂任务,以及不同执行方式之间的取舍。

目前常见的 Prompt Chaining、Routing、Parallelization、Reflection、Planning 和 Multi-Agent 等模式,并不依赖某一个特定框架,也不应该作为固定组件全部引入。真正需要掌握的是根据任务特征判断:哪些步骤应该顺序执行,哪些任务适合并行,什么时候需要模型决策,什么时候应该交给确定性代码,以及怎样通过反馈、验证和异常处理控制整个执行过程。因此可以将几类工程能力作如下区分:Model 提供理解、推理和生成能力;Design Pattern 负责组织任务和决策;Framework 提供开发抽象;Harness 保障执行过程的稳定、安全与可观测。

后续文章将围绕这些模式逐篇展开,结合代码和实际业务案例,分析它们的实现方式、适用场景以及工程限制。

上一篇:

https://developer.aliyun.com/article/1767813?spm=a2c6h.13148508.setting.16.c59f4f0efwwEBu

下一篇:提示链模式——将复杂任务拆成多个步骤。

将从最容易落地的 Prompt Chaining 开始,重点介绍任务拆分、中间结果校验、上下文隔离与失败处理,进一步说明如何通过确定性的多步骤编排提高大模型应用的稳定性。

相关文章
|
22天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
9196 29
|
20天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
4423 16
|
8天前
|
存储 人工智能 并行计算
大模型本地部署终端选型方法论:以 Qwen3.8-27B 为例的四档分层完整流程
本文提出一套大模型本地部署终端选型方法论:定约束、定档位、定框架、定参数四步决策法,配合入门、主力、质量、无损四档分层模型。以 Qwen3.8-27B 实测数据为例,逐环节解读显存、带宽、存储、散热、系统、预算等要素,给出面向不同预算的优选方案、决策自查清单与市场观察框架。文末前瞻 AI 笔记本的 CPU+GPU 与统一内存两条路线,论证四步决策法在新品类上的延续性。
|
20天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
2391 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
6天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型深度拆解:原理解读、实战测评与保姆级落地教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为**System One Model(系统一模型)**,对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
558 1
|
1天前
|
存储 缓存 测试技术
QWT 3D 模块重构记:旧渲染管线改进介绍及实时瀑布图示例
QWT 3D模块完成重大重构:解耦窗口与图形(Plot+Item),摒弃OpenGL 1.x固定管线,迁至Core Profile着色器渲染;支持多图元同场景叠加,并以实时3D瀑布图验证——滑动窗口、固定色域、64帧×256点达61fps。兼容Qt 5.12+/6,LGPL协议。
151 120
|
9天前
|
人工智能 Linux Windows
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面
千问办公(QwenWork)是阿里云推出的AI智能办公平台,支持网页端直接使用及Windows/Mac/Linux客户端下载。提供PPT生成、财报分析、网页搭建等AI功能,个人版免费,企业版198元/席/月。详情见官网qwenwork.cn或阿里云产品页。
1113 0
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面
|
13天前
|
Windows
【保姆级】.NET Framework 3.5离线安装教程(2026最新实测)
.NET Framework 3.5是微软经典运行库,专为兼容老软件、老游戏设计。Win7自带,Win10/11需手动启用(在线或离线安装)。它与4.x系列并存不冲突,缺它会导致“找不到组件”报错。本文详解两种安装方式及常见问题解决,小白也能轻松上手。(239字)
1633 0
|
3天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型全解析:核心原理拆解,性能实战测评与落地部署教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为System One Model(系统一模型),对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
329 0

热门文章

最新文章