你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:Azure 逻辑应用(标准)
重要
此功能为预览版,受 Microsoft Azure 预览版补充使用条款限制。
对于处理复杂场景或精细任务的 AI 集成解决方案(通常超出单个代理循环的能力),Azure 逻辑应用程序本机支持从简单的组合工作流到复杂的多代理自主系统的常见且经过验证的多代理循环编排模式。 多个代理循环有助于在必须执行复杂任务的复杂工作流中分配角色、职责和工作负荷。
有时,AI 集成解决方案需要处理可能超过单个代理循环的功能、性能或效率的复杂方案或复杂任务。 在这些方案中,请考虑添加和使用多个代理循环来分发工作流中的角色、职责和工作负荷。 Azure 逻辑应用原生支持常见且经过验证的多代理循环业务流程模式,这些模式从简单、组合的工作流到复杂的自治系统。
为了帮助你构建更有效的多代理循环系统,本指南可帮助你了解和了解以下概念:
- 多代理循环工作流与单代理循环工作流的比较方式,例如单一代理循环限制和多代理循环的优势。
- 支持的多智能体循环编排模式,从最简单到最复杂列出。
- 为方案选择最佳模式时要注意的事项。
- 何时以及如何应用每个模式。
单代理循环限制与多代理循环优势
下表列出了当单个代理循环执行复杂解决方案中的所有工作时的挑战,从解释、处理和执行到决策和执行。
| 限度 | Description |
|---|---|
| 认知负载 | 复杂的任务要求代理循环同时处理多个问题,这会导致各个方面的性能下降。 |
| 错误传播 | 一个错误可能会使整个进程脱轨,且没有恢复机制。 |
| 无专用化 | 不能对所有类型的任务同样优化一个代理循环。 |
| 可伸缩性约束 | 向整体代理循环添加功能时,复杂性会呈指数级增加。 |
多代理循环体系结构通过将复杂问题分解为专用的可管理组件来解决单代理循环限制。 使用简单、可组合的模式设计和生成解决方案时,与使用复杂框架相比,实现体验会更加成功。 这种简单性和可组合性的原则存在于多智能体循环设计的核心。
多个代理循环可以承担专用角色、职责,并在工作流中分发工作负荷。 下表列出了围绕可靠性、可维护性、专用化和可伸缩性的主要多代理循环优势:
| 益处 | Description |
|---|---|
| 分离关注事项 | 每个代理循环可以专注于特定的专业知识领域。 |
| 独立优化 | 可以为特定任务优化每个代理循环。 |
| 隔离故障 | 一个代理循环中的错误不一定级联到其他代理循环。 |
| 可重用性 | 可以在不同的工作流中重复使用专用代理循环。 |
| 人机共生 | 你有供人工审核和干预的自然检查点。 |
| 可扩展开发 | 团队可以独立地处理不同的代理循环。 |
Azure 逻辑应用通过提供以下功能来帮助构建多代理循环系统:
| 能力 | Description |
|---|---|
| 视觉设计 | 提供明确的图形表示形式,显示代理循环交互和决策点。 |
| 内置状态管理 | 包括对在代理循环调用中维护上下文的原生支持。 |
| 错误处理 | 提供可靠的错误处理和重试机制。 |
| 监视和可观测性 | 为多代理工作流提供全面的日志记录和监视。 |
| 集成功能 | 通过让你在 Azure 逻辑应用中使用 1,400 多个连接器创建操作支持的代理工具,轻松实现与外部真实服务的集成。 |
| 可伸缩性 | 自动缩放,具有企业级的可靠性。 |
如需了解更多信息,请参阅以下文章:
提示链模式
此工作流模式将任务分解为顺序步骤。 每个步骤对应于特定的代理循环调用。 每个大型语言模型 (LLM) 调用都会处理上一个 LLM 的输出。 在 Azure 逻辑应用中,此模式转换为多个代理循环链,其中每个代理循环的输出将成为下一个代理循环的输入。
低复杂性级别
当工作流满足以下条件时使用:
- 复杂任务需要顺序处理。
- 可以将任务干净地分解为遵循线性序列的固定子任务。
- 需要在步骤之间进行验证检查。
- 每个步骤都受益于特定、集中的注意力。
- 质量比速度更重要。
例子
- 生成市场营销文案 → 翻译为不同语言
- 创建文档大纲 → 验证大纲 → 编写完整文档
- 提取数据 → 验证数据 → 格式数据
关键属性和优势
- 预先确定的步骤遵循线性进度。
- 每个代理循环都侧重于单个定义完善的任务,从而提升更高的准确性。
- 每个步骤都可以包括编程检查点或用于质量控制的验证“入口”。
- 更易于调试和识别链中出现的问题。
- 模块化使你可以独立优化每个步骤。
- 为了获得更好的准确性和结果,降低延迟。
有关详细信息,请参阅以下资源:
路由模式
此工作流模式将输入分类并定向到专用后续任务。 此行为使你能够分离关注点,并允许可针对特定输入类型进行优化的专用提示。
低到中等复杂性级别
当具有需要不同或专用处理的不同输入类别时使用。
例子
分配客户服务查询,例如:
- 计费 → 计费代理循环
- 技术支持 → 技术支持代理循环
对内容进行分类,例如:
- 紧急 → 优先级工作流
- 例程 → 例程工作流
选择 LLM,例如:
- 基本代理循环 → 基本问题
- 高级代理循环 → 高级或复杂问题
密钥属性
- 初始分类步骤确定路由位置。
- 不同类别的项目会得到专门的代理循环。
- 防止不同输入类型之间的优化冲突。
- 可以使用传统的分类算法或基于 LLM 的路由。
有关详细信息,请参阅 实验室:实现路由模式。
传递模式
此工作流模式可在代理循环之间创建无缝转换,同时保留上下文和状态。 此行为在需要模拟人为升级或专业知识转移的场景中非常有效。
中等复杂性级别
需要在不同的专用化代理循环之间传输控制,同时保持会话连续性时使用。
例子
- 客户服务方案,例如常规支持 → 技术专家 → 计费
- 内容创建工作流,例如 研究 → 撰写 → 编辑
- 复杂的问题解决,例如分析 → 设计解决方案 → 实现解决方案
关键属性和优势
- 每个代理循环都侧重于特定于域的专业知识。
- 交接具有明确的标准和触发条件。
- 传输机制具有适当的上下文。
- 代理循环根据聊天流选择何时和何处执行任务。
- 在智能体循环移交过程中保留状态或完整的对话历史记录。
- 模拟人工客户服务升级模式。
- 将一个代理循环中的错误或问题与其他代理循环隔离。
- 初始化操作用于准备接收代理的循环。
有关详细信息,请参阅 实验室:实现交接模式。
并行化模式
此工作流模式具有以下主要变体:
分区:将任务分解为独立的并行子任务。
投票:针对不同的输出多次运行同一任务。
中等复杂性级别
当子任务可以独立处理以提高速度,或者当多个视角提高置信度时使用。
例子
分节
- 内容审核,例如,一个智能体循环检查内容,而另一个智能体循环筛查是否违反策略。
- 查看代码,例如,不同的代理循环检查安全性、性能、样式等。
投票
- 多个代理循环使用不同的阈值评估内容适当性。
- 使用基于共识的决策评估漏洞。
主要特征
- 通过同时执行提高了速度。
- 以编程方式聚合的结果。
- 更好的性能来自于专注于特定方面。
有关详细信息,请参阅 实验室:实现并行化模式。
协调器-工作者模式 - 嵌套代理程序循环作为工具
此工作流模式将代理循环视为其他代理循环可以调用的复杂工具。 一个 LLM 动态分解任务,将工作委托给其他 LLM,并合成其结果。
高复杂性级别
当无法提前预测所需的子任务并且需要动态任务分解时使用。
例子
- 需要更改不确定数量文件的编码任务。
- 从多个动态源收集信息的研究任务。
- 需要不同专用功能的复杂分析任务。
与并行化的主要区别
- 编排器动态确定必要的子任务。
- 更灵活,但也更不可预知。
- 需要复杂的协调逻辑。
有关详细信息,请参阅 实验:实现协调者-工作者模式。
评估器-优化器模式
此工作流模式有一个 LLM 调用生成响应,而另一个 LLM 调用在循环中提供评估和反馈,该循环模拟人工迭代改进过程。
高复杂性级别
当存在明确的评估条件以及迭代优化提供可度量值时使用。
例子
- 通过细致评估和改进翻译文学作品。
- 执行需要多个轮进行分析的复杂搜索任务。
- 创建内容、评估质量,并通过多次迭代改进。
密钥属性
- 运行迭代优化循环。
- 需要明确的评估条件。
- 使用生成器和评估器智能体循环角色。
- 使用终止条件防止无限循环。
有关详细信息,请参阅 实验:实现评估器-优化器模式。