构建代理工作流的设计模式
引言
在以下先进模型推动下,基于人工智能的应用正在从响应显式输入的被动、静态助手,演变为增强我们知识和能力的自主系统:(i) 增强的上下文理解,(ii) 多模态能力的整合,以及 (iii) 推理时的扩展 [1]。
这场转型的核心是人工智能代理(AI Agents),这些系统利用语言模型来解释自然语言指令,与环境交互,并采取行动以实现目标。代理可以以不同程度的自主性运行,并与其他代理和人类协作。与遵循预定逻辑的传统软件不同,代理根据观察、过去的交互和反思来调整其行为。这种灵活性使代理能够主动响应不断变化的条件,并在多个系统之间进行协调。然而,这种方法在设计、验证、生产中的可扩展性、成本管理和维护方面带来了挑战。
本文提供了构建和编排能够推理、规划和行动的人工智能代理的综合指南,并介绍了六种基本设计模式:评估器-优化器、上下文增强、提示链、并行化、路由和协调器-工作器。
目录
评估器-优化器模式
此模式借鉴了自我反思,这是一种人类解决问题的基本过程,涉及对思想、行动和经验进行内省性审查,以获得洞察力并改进结果。举例来说,作家如何撰写文章:起草初步想法,审阅作品以识别不清楚的段落或验证事实,然后进行相应的修改。这个循环一直持续到作者对结果满意为止。评估器-优化器模式 [2] [3] [4] 将类似的迭代细化应用于大型语言模型(LLM)的响应生成。
实际上,它引入了一个认知层,在此层中,大型语言模型通过系统的反馈和细化来增强其响应。它不是接受首次尝试的输出,而是建立了一个结构化的过程,使人工智能系统能够自我反思过去的行为并实施有针对性的改进。
架构
其名称反映了其核心架构:评估器提供对输出的批判性评估,而生成器/优化器将此类可操作的反馈和指导转化为具体的改进。该模式实现了以下工作流:

- 生成:大型语言模型生成初始响应,或使用其标准功能完成任务。第一次尝试作为基线输出,尽管它可能包含错误,缺乏清晰度,或遗漏相关事实。
- 反思 - 评估器:同一个大型语言模型(或专门的评估器模型)检查生成的输出,并根据给定的要求、指南或外部观察进行系统评估。
- 细化 - 优化器:将反思性反馈转化为具体的改进。这可能涉及重组内容、添加缺失元素或纠正已识别的问题。
- 迭代:该过程重复进行,直到输出满足预定的质量标准或停止条件。每次迭代都可以发现新的改进机会。
这些步骤可以在每个阶段由单个大型语言模型执行,也可以分布在针对评估和生成任务进行优化的专用大型语言模型之间。
用例
预期的任务通常需要生成高质量的输出,其特点是完整性、正确性和准确性
- 关键软件代码生成:生成代码、根据测试用例进行验证、调试错误以及优化风格和效率。
- 写作:改善语言流畅性,减少偏见,并确保与目标受众保持一致。
- 分析工作:需要细致判断和多重视角的复杂任务。
- 可信度:将生成的内容与搜索引擎或可信知识库进行交叉引用,以确保准确性。
考量
- 平衡成本效益:最重要的实施决策是确定何时质量提升能够抵消额外的计算成本。每次迭代都会增加延迟和令牌使用量,因此必须明确定义何时这种方法能带来价值的标准。
- 有效停止标准:设计不当的停止条件可能会使系统陷入次优状态——要么过早终止并遗漏明显的改进,要么无限期地进行微小的细化。健壮的实现会包含多重保障:
- 质量门(例如通过测试套件的代码)
- 最大迭代次数限制
- 令牌预算限制
- 相似性检查,以识别连续版本何时显示最小但有意义的变化
- 可操作的反馈:评估器提供的反馈必须具体且可操作,以指导生成器/优化器。
上下文增强模式
此模式解决了大型语言模型(LLM)的一个基本限制:它们的能力是静态的,受限于训练数据。思考我们如何在现实生活中解决复杂问题:我们不只依赖记忆,还会查阅数据库、在线查找信息并使用专业工具。
上下文增强模式通过动态扩展大型语言模型(LLM)的上下文,使其超出预训练知识的范围,从而将这种方法引入LLM。它以函数调用模式 [5] [6] [7] 为基础,使LLM能够连接并使用工具和外部系统。这些交互已通过模型上下文协议 [8] 标准化,使该模式在生产应用程序中变得可靠。其主要优点是灵活性和可扩展性,因为可以轻松地为模型添加新功能。
架构

- 需求识别:大型语言模型(LLM)分析预期任务并识别超出其内部能力的需求。
- 资源选择:模型从可用资源中选择合适的工具、系统或数据源(基于特定需求)。这可能涉及在计算器、网络搜索或数据库查询之间进行选择。
- 上下文增强:大型语言模型(LLM)与工具和外部系统交互,以将额外信息整合到其工作上下文中。此步骤从根本上扩展了模型针对当前任务的知识。
- 综合:增强的上下文使模型能够提供结合其推理能力和任务特定信息的响应。
- 编排:复杂任务可能需要与资源进行多次交互,其中每个结果都会为后续的资源选择和使用提供信息。
用例
- 实时信息:访问频繁变化且在训练期间不可用的数据,例如天气状况、股票市场数据和最新新闻文章。
- 计算任务:执行需要精确度超过语言模型所能提供的复杂数学运算或数据分析。
- 知识整合:搜索公司文档、访问客户支持数据库或查询技术规范。
- 设备控制:管理物联网(IoT)生态系统,例如智能家居设备和工业传感器。
- 企业编排:整合专业服务,用于支付处理、通信管理和软件开发工作流等业务任务。
考量
- 安全和访问控制:工具集成和与 MCP 服务器的交互带来了显著的安全风险。可靠的实现需要谨慎的身份验证、授权和沙盒化,以防止意外访问敏感系统或数据。
- 可靠性和错误处理:外部依赖项可能会失败或返回意外结果。这需要回退策略和错误恢复机制。
- 操作挑战:当有多个可用资源时,资源选择策略变得至关重要——糟糕的选择可能导致效率低下的工作流和次优结果。此外,API 调用和第三方服务可能带来额外的成本。
- 技术限制:上下文窗口限制要求平衡信息检索和上下文管理,可能需要摘要或选择性保留。
提示链工作流
提示链工作流 [9] 从思维链(CoT)提示演变而来,通过应用认知分解,这是一种在解决问题中常见的处理复杂任务的方法,即将复杂任务分解成更小、更易于管理的子任务。实际上,人工智能工程师为每个子任务生成一系列专门的提示,其中一个提示的输出成为下一个提示的输入,从而聚合每个步骤的收益。它不是用一个复杂的指令来使模型过载,而是创建了一个结构化的管道,在每一步充分利用模型的注意力,同时在整个过程中保持上下文的连续性。
除了实现更好的性能,提示链还增强了LLM应用的透明度、可控性和灵活性。此外,这种结构化方法使得更容易调试模型响应,在工作流程的特定阶段实现有针对性的性能改进,并支持不同的路径。
架构

- 任务分解:分析复杂任务并将其分解为逻辑子任务。这种分解可以通过手动方式或在大型语言模型辅助下使用元提示技术完成。
- 顺序处理:每个子任务由专用大型语言模型调用中的专门提示处理,从而能够专注于特定子任务。
- 信息交接:每个提示的输出都经过结构化,以提供下一步所需的上下文。这可能涉及数据转换、格式化或过滤,以确保阶段之间平稳过渡。
- 上下文保留:链在不同步骤之间保持相关上下文,同时避免信息过载。每个步骤应仅接收其特定任务所需的信息,防止上下文稀释。
- 门控:可以在步骤之间集成条件检查点,以验证输出、根据内容分析路由工作流或在满足特定条件时终止链。
用例
- 文档分析:将大型文档分解为可管理的任务,例如关键词提取、摘要和分类。
- 内容创建:包括起草、编辑、格式化和翻译等任务。
- 研究辅助:用于系统评估假设、结果分析和文献综述。
考量
- 平衡成本效益:与单提示方法相比,提示链可以产生更优的结果。然而,这种改进伴随着计算成本和延迟的增加。
- 选择性上下文管理:前一步骤的输出必须仅包含下一步任务所需的信息,因为冗余或不相关的信息可能超出上下文窗口限制并干扰后续步骤。
- 中间验证:错误可能会在整个链中级联和累积。为了减轻这些错误,建议在进入下一步之前实施质量门,这可能包括:
- 程序化检查(例如,内容长度、格式验证)
- 基于大型语言模型(LLM)的输出验证(例如,事实准确性)
- 置信度评分
- 错误处理:处理失败输出可以采取以下方式:
- 重试
- 重新提示,包括错误详细信息
- 回退机制,例如日志记录和终止,或路由.
并行化工作流
该工作流遵循分而治之的方法,将工作负载分配给代理,以并行处理独立任务。这与分布式计算中的散布-收集模式类似,其中一个任务被分解并分配给多个工作器,然后将它们的独立结果聚合以形成完整的输出。在代理式人工智能系统中,此工作流通常以两种主要变体实现 [10]:
- 分段:将任务分解为独立运行的子任务。
- 投票:多次运行同一任务以获得多样化的输出。
并行化通常用于可预测、可分割的工作负载,以提高准确性并加快完成速度。
架构

- 任务分解:分析传入任务并识别可以同时处理的独立子任务。
- 并行处理:子任务由工作器分配和处理,每个工作器接收特定的指令、上下文和成功标准。
- 聚合:通过各种综合方法聚合所有工作器的结果,以生成一致的最终输出。
用例
分段
- 内容护栏:一个模型实例处理用户查询,而另一个实例筛选不当内容。
- 自动化评估:多次大型语言模型调用评估模型在给定提示上的不同性能方面。
- 文档分析:将章节等文档部分分配给不同的工作器,然后综合或聚合输出。
投票
- 代码安全审查:不同的提示审查并标记代码中的漏洞,多视角可提高检测准确性。
- 内容审核:多个提示评估输入的各个方面,或需要不同的投票阈值以平衡误报和漏报。
考量
- 任务独立性:确保子任务真正独立。具有顺序依赖性的任务更适合提示链模式。
- 分解策略:
- 分段/分片:将长文档或数据集等大型输入分成更小的块,每个块并行处理
- 基于方面:适用于需要分析多个独立方面 Tasks
- 用于多样性或投票的相同任务:通过不同的提示或模型多次运行相同的核心任务,目标是获得更可靠的结果
- 聚合策略:并行任务完成后,可以通过以下方法组合输出:
- 连接:将输出连接在一起,例如附加单独的章节摘要
- 比较和选择:在同一任务的替代输出中进行选择
- 投票/多数规则:基于共识的决策。当多个代理独立执行相同任务时,选择最常出现的输出作为最终答案,从而提高准确性。
- 合成器:一个专门的大型语言模型(LLM)从不同的输出中创建连贯的最终响应
路由工作流
路由评估输入并将其委托给专门的函数、工具或子代理。此工作流支持:关注点分离、资源优化、灵活性和可扩展性。
架构
它通过两步架构运行:任务分类和任务分派。

任务分类:系统分析传入请求以确定其类型、类别、意图或复杂程度。可以通过各种方法实现:
- 基于规则:使用预定义逻辑、关键词匹配或条件语句
- 基于大型语言模型(LLM)的分类:利用上下文理解进行更细致的分类
- 混合方法:结合两种方法
任务分派:根据分类结果,系统路由输入。实际上,处理路径选择取决于:
- 代理专业化和专业知识
- 资源需求
- 性能特征(速度、成本、准确性)
- 当前系统负载和容量
用例
- 电子商务/客户服务:自动将不同类型的用户请求引导至不同的下游流程、提示和工具。
- 工作负载分支:根据类型和复杂性分配输入,将简单的查询路由到轻量级模型,将复杂的问题路由到功能更强大的模型,以优化成本和速度。
- 多领域问答:将领域特定问题定向到专门的知识代理。
考量
- 分类准确性:工作流的有效性完全取决于准确的输入分类。如果任务被错误分类,它可能会被发送到错误的代理,从而导致效率低下或结果不正确。
- 专业化平衡:虽然专业化可以提高特定任务的性能,但系统应保持适当的泛化和灵活性,以确保边缘案例和新颖输入能够找到最合适的处理路径。
- 动态路由:高级实现将实时系统状态纳入路由决策,考虑代理可用性、当前工作负载和性能指标等因素。
- 可扩展性和维护:随着系统增长,潜在的路由路径可能会显著增加。
协调器-工作器工作流
在此工作流中,一个中心大型语言模型(LLM)动态地分解任务,将其委托给工作器代理,并将其输出合成为连贯的结果。
架构
协调器是主导代理,提供智能协调和合成,而工作器执行专门的子任务。

- 任务分析:协调器实时分析传入请求,动态确定必要的子任务,而不是遵循预定义的工作流。这考虑了任务复杂性、可用资源和最佳分解。
- 委托:协调器选择合适的工作器来委托子任务,为每个工作器提供明确的目标、输出格式和工具指导。
- 结果合成:协调器收集所有工作器的输出,并将其合成为统一、连贯的响应。
用例
此工作流非常适用于子任务未预定义,而是由协调器根据输入动态确定的场景,例如:
- 商业智能:需要从多个来源收集信息、合成并生成报告。此工作流可以适应查询复杂性,并从简单的事实查找扩展到全面的分析。
- 软件开发:编码任务,其中协调器可以动态确定需要修改的文件,并协调专门的子代理进行代码生成、测试、调试和文档。
考量
- 编排效率:编排器必须处理复杂的任务分解和工作器选择。这可能造成瓶颈,并需要仔细的资源管理、控制循环和错误处理,以避免任务分发和编排器-工作器通信中的单点故障。
- 复杂性管理:生产系统通常需要数百个对话回合,因此需要上下文压缩、外部内存系统和可观察性机制。
- 评估挑战:多智能体系统需要专门的评估方法,包括用于快速迭代的小规模测试和用于复杂请求的LLM作为判断的评估。
参考文献
- [1] Balachandran, et al. 2025. 推理时复杂任务的扩展:我们所处的位置和未来展望。 arxiv:2504.00294。
- [2] Madaan, et al. 2023. Self-Refine: Iterative Refinement with Self-Feedback. arxiv:2303.17651。
- [3] Shinn, et al. 2023. Reflexion: Language Agents with Verbal Reinforcement Learning. arxiv:2303.11366
- [4] Gou, et al. 2024. CRITIC: 大型语言模型可使用工具交互式批评论进行自我纠正. arxiv:2305.11738
- [5] Patil, et al. 2023. Gorilla: 连接海量API的大型语言模型. arxiv:2305.15334
- [6] Yang, et al. 2023. MM-REACT: 提示ChatGPT进行多模态推理和行动. arxiv:2303.11381
- [7] Gao, et al. 2024. 高效工具使用与抽象链推理. arxiv:2401.17464
- [8] Anthropic. 2024. 模型上下文协议. anthropic:mcp
- [9] Wu, et al. 2022. AI 链:通过链接大型语言模型提示实现透明且可控的人机交互. dl.acm:3491102.3517582
- [10] Anthropic. 2024. 构建高效代理. anthropic:agents
- [11] Cheng, et al. 2024. 探索基于大型语言模型的智能代理:定义、方法和前景. arxiv:2401.03428
- [12] Anthropic. 2025. 我们如何构建多代理研究系统. anthropic:multi-agent-research