英语轻松读发新版了,欢迎下载、更新

Amazon Bedrock Agents 自定义编排器入门 |亚马逊网络服务

2024-11-27 20:32:26 英文原文

生成式人工智能代理被设计为与环境交互以实现特定目标,例如自动化重复任务和增强人类能力。通过编排实时适应不断变化的目标的多步骤工作流程,这些代理可以提高生产力、减少错误并提供更加个性化的体验。为了有效地管理这些复杂的工作流程,代理依赖于协调与各种工具、知识源和其他代理的交互的编排策略。这种编排允许代理分析数据、解释上下文、排序任务并适应不断变化的需求,确保工作流程保持高效、准确和弹性。

亚马逊基岩代理通过提供完全托管的解决方案,简化生成式人工智能应用程序的开发,该解决方案使用基础模型(FM)和增强工具,可通过精心策划的多步骤工作流程自主运行任务并实现目标。使用默认的编排策略、推理和行动(反应),用户可以快速构建和部署代理解决方案。ReAct 是一种通用的问题解决方法,它使用 FM 的规划功能来动态调整每一步的操作。尽管 ReAct 允许代理根据不断变化的需求不断重新评估其决策,从而提供了灵活性,但当涉及许多工具时,其迭代方法可能会导致更高的延迟。

为了更好地进行编排控制,Amazon Bedrock Agents 推出了自定义编排器功能,用户可以使用它来微调代理行为并管理每个工作流程步骤的工具交互。这种定制允许​​组织根据其特定的运营需求定制代理功能,从而提高精度、适应性和效率。在这篇文章中,我们将探讨自定义编排器的工作原理,并通过默认的 Bedrock Agent 的 ReAct 和无需观察的推理来演示其应用程序(瑞沃)的例子。

自定义编排器概述

由用户实施为AWS Lambda功能上,Amazon Bedrock Agents 自定义编排器提供对任务规划、完成和验证的精细控制。与优先考虑决策透明度和逐步推理的默认 ReAct 编排方法不同,自定义编排器使用户能够定义更符合特定用例要求的策略。在 ReAct 中,FM 和工具调用遵循顺序、逐步的过程,其中每个操作都取决于前一个操作的结果。这种结构化的线性方法提供了透明度,可以更轻松地追踪每个行动和决策背后的推理,同时还通过可预测的工作流程促进一致性。尽管 ReAct 的设计通过允许代理重新评估每个步骤的操作来提供增量适应性,但当需要快速并行操作或工作流程需要跨多个步骤的即时响应时,其顺序结构可能会引入延迟。这使得 ReAct 不太适合速度和快速顺序处理至关重要的场景,例如复杂的大容量工作流程。

自定义编排器提供了一种更灵活的替代方法,用户可以使用它来定义更符合其特定需求的编排策略。通过对 FM 和工具交互的实时调整和精确控制,用户可以创建在性能、准确性和弹性之间实现最佳平衡的工作流程。创建自定义编排器后,可以通过在配置新代理时更新单个引用来在多个代理之间重用它。

自定义编排器的主要优点包括:

  • 完全控制编排策略– 定制代理工作流程,以实现各种指标(例如准确性、速度和弹性)的最佳性能。使用 Amazon Bedrock Agents 与操作组、知识库和护栏的内置集成来简化交互。
  • 实时调整– 根据当前上下文、工具输出或不断变化的用户需求动态调整代理操作,以便代理高效且有效地适应新信息。
  • 可重用性和一致性– 创建编排策略后,可以在所有相关代理中实施,从而节省时间并提高一致性。

在本文中,我们将使用默认 ReAct 提示的 Amazon Bedrock 代理的调用与使用实施 ReWoo 策略的自定义编排的 Amazon Bedrock 代理的调用进行比较。首先,我们检查驱动其适应性的底层合约和状态管理原则。

自定义编排器工作流程管理

自定义编排器通过 Amazon Bedrock Agents 和 AWS Lambda 之间基于合同的交互实现动态决策和适应性工作流管理。Lambda 函数充当编排引擎,处理上下文输入(例如状态、对话历史记录、会话参数和用户请求)以生成指令并定义后续操作的状态。收到用户输入后,Amazon Bedrock Agents 使用自定义编排器逻辑和亚马逊 Bedrock 匡威 API管理底层 FM 和各种工具(例如操作组、知识库和护栏)之间的交互。

下图说明了用户、Amazon Bedrock 代理和管理工作流程的自定义编排器之间的交互流程:

自定义编排器工作流程包括以下步骤:

  1. 用户输入– 当用户提交请求或查询时,该过程开始。此输入将发送到 Amazon Bedrock Agents,启动工作流程。
  2. 自定义编排器启动– Amazon Bedrock Agents 将用户输入传递给自定义编排器,该编排器在开始状态。协调器通过中间步骤指导工作流程来处理输入。
  3. 工具交互– Amazon Bedrock Agents 与各种工具交互来管理请求:
    • 知识库– 根据用户输入提供相关上下文或信息。
    • 行动小组– 调用预定义的操作组,其中包括:
      • 用于自定义逻辑的 Lambda 函数
      • 将控制 (RoC) 功能返回到序列步骤
      • 用于代码执行的代码解释器 (CI) 函数
    • 护栏– 确保响应符合预定义的标准或安全标准。
    • 匡威API– 管理 Amazon Bedrock Agent 和 FM 之间的对话流并处理自然语言响应。
    • 会话属性– 管理特定于会话的数据,例如长期记忆、会话属性和知识库配置,跨交互个性化和维护上下文。
  4. 自定义编排器工作流程– 当 Amazon Bedrock Agents 与各种工具交互时,自定义编排器会跟踪状态的进度,并根据需要调整工作流程。工作流完成后,编排器使用结束动作事件。
  5. 最终输出– Amazon Bedrock Agents 生成最终输出并将其传递给用户,完成交互。

此工作流程重点介绍了 Amazon Bedrock 代理如何在自定义编排器的指导下协调各个步骤并管理信息流以满足用户请求。通过状态转换,编排器确保每个操作都遵循结构化序列,从而实现对工作流程的动态和灵活控制。接下来,我们探讨状态转换和基于契约的交互如何构建可定制的工作流管理。

状态和事件管理

状态管理对于指导交互的进展和确定工作流程中的后续步骤至关重要。状态代表特定的阶段或条件,允许编排引擎跟踪和管理操作。这些状态确保工作流程有序进行,每个操作都依赖于当前状态。状态在请求架构中从 Amazon Bedrock 代理传递到通过 Lambda 函数处理的客户编排器。相反,事件是驱动状态转换或调用进一步操作的操作。事件在响应架构中从 AWS Lambda 传递到 Amazon Bedrock 代理。

代理和自定义编排器之间的每次交互都以“START”状态开始,并以“FINISH”事件结束。在编排过程中,自定义编排器 Lambda 可以接收“START”、“MODEL_INVOKED”、“TOOL_INVOKED”、“APPLY_GUARDRAILS_INVOKED”或自定义定义的状态作为输入,并将输出““完成”,–INVOKE_MODEL –、 –INVOKE_TOOL –、 –APPLY_GUARDRAILS – 或自定义事件。状态和事件之间的流程如下图所示。

每个状态转换都会响应特定事件而发生,从而允许工作流根据输入和上下文动态调整。例如,当收到 FINISH 事件响应时,协调器会发出工作流已完成的信号。然后,自定义编排器 Lambda 函数将输出流式传输回 Amazon Bedrock Agents,后者再将其流式传输给用户。这种机制提供了流畅且响应迅速的交互,从而实现了任务的有效编排。基于合约的请求和响应交互通过 JSON 事件进行处理,详细信息这里

通过使用这些基于合同的交互,Amazon Bedrock Agent 和自定义编排器 Lambda 函数可以有效协作,处理上下文输入、管理状态转换并生成准确的定制响应。这种灵活的架构对于处理需要实时调整和精确控制座席行为的复杂工作流程至关重要。

自定义编排器工作流程模式:ReAct 和 ReWoo

为了说明自定义编排器的强大功能和灵活性,下一部分将研究两种编排策略(默认的 Bedrock Agent ReAct 和 ReWoo),并探讨每种策略如何解决代理工作流程中的权衡问题。为了进一步探索自定义编排器的灵活性和潜力,请考虑一个餐厅示例用例。在此用例中,我们有一个 Amazon Bedrock 代理,它有一个可以连接到三个 API 的操作组:创建预留、更新现有预留和删除预留。该代理还连接到一个知识库,该知识库为该餐厅提供的食物的不同菜单编制了索引。下图显示了代理架构。

默认协调器:ReAct

默认的 Amazon Bedrock Agents ReAct 方法是一个迭代决策过程,其中模型分析每个步骤,根据每个阶段收集的信息决定下一步操作,如下图所示。

此方法提供透明度,并允许对操作进行清晰的逐步细分,使其非常适合受益于增量调整的工作流程。尽管在实时重新评估有利的动态环境中有效,但 ReAct 的顺序结构在需要复杂计划时可能会引入延迟。例如,以餐厅助理为例,当询问诸如“您晚餐供应什么?”或“您可以在今晚 7 点为两个人预订吗?”等简单查询时,代理计划将由单个操作组成,且延迟不会太高。但是,当考虑更复杂的查询时,例如“您晚餐供应什么?”您可以在今晚 9 点为四人预订吗?代理计划将包含多个步骤。在每个步骤中都会观察结果,并如下图所示调整计划。请注意,计划是隐含的,并且想法提供了下一步。每个步骤之后,都会调用新的模型来确定下一步或提供最终答案。

瑞沃

瑞沃该技术通过预先生成完整的任务计划并执行它而不检查中间输出来优化性能,如下流程图所示。

这种方法最大限度地减少了模型调用,从而显着缩短了需要与多个工具交互的查询的响应时间。对于速度优先于迭代调整的任务,或者出于安全原因应隐藏中间推理步骤的任务,ReWoo 比默认的 ReAct 策略具有明显的优势。

代理延迟的一个关键来源是完成任务所需的 FM 调用数量。虽然默认的 ReAct 策略至少需要N+1呼吁步骤后,ReWoo 将任意数量的工具减少为至多两次对模型的调用,从而减少了模型调用,从而缩短了响应时间。例如,对于使用 ReAct 进行 3 次模型调用耗时 9 秒的任务,使用 ReWoo 时差异很小,因为该任务仍需要两次模型调用。然而,随着复杂性的增加,延迟差异会变得更大。例如,一项需要 18 秒进行六次模型调用的任务,使用 ReWoo 则只需 9 秒和两次模型调用,这种差异随着工作流程的复杂性而变化。

分析查询时 – 你晚餐吃什么?您可以在今晚 9 点为四人预订吗?代理将与 ReWoo 一起创建一个计划来访问晚餐菜单信息的知识库,并创建一个操作组来创建新的晚餐预订,而无需验证中间步骤,如图所示在下面的视频剪辑中。

当使用 Anthropic 的 Claude Sonnet 3.5 v2 的代理运行此查询时,我们观察到复杂查询的延迟减少了 50% - 70%。您可以在我们的 GitHub 存储库中找到此解决方案的实现亚马逊基岩样品

需要注意的是,虽然 ReWoo 在速度上有优势,但它确实有更复杂的提示,并且您需要为输出构建解析器,这使得它成为更难以实施的策略。这就是为什么在创建新的编排策略时应权衡解决方案的速度、准确性和复杂性的原因之一。

结论

在这篇文章中,我们探讨了 Amazon Bedrock Agents 如何简化生成式 AI 工作流程的编排,特别是引入了自定义编排器功能。您可以使用自定义编排器来微调和优化代理工作流程,使其更符合特定的业务和运营需求。我们概述了该功能的主要优势,包括完全控制编排、实时调整和可重用性,然后详细介绍了它如何管理状态转换以及 Amazon Bedrock Agents 和 AWS Lambda 之间基于合同的交互。

然后,我们深入研究了默认的 ReAct 和自定义的 ReWoo 编排策略,并讨论了灵活性和性能之间的权衡。通过应用于自定义 ReWoo 实现的详细工作流程管理、状态事件和合约交互,我们重点介绍了自定义编排器如何适应动态条件,因此您可以构建更高效、更准确的 AI 应用程序。我们还举例说明了简化的 ReAct 和 ReWoo 编排策略以及灵活性和性能之间的权衡。

要了解有关自定义编排器技术的更多信息并开始使用端到端示例,请参阅我们的GitHub 存储库


关于作者

凯尔·布​​洛克索姆是位于南加州的 AWS 高级解决方案架构师。Kyle 热衷于将人们聚集在一起并利用技术提供客户喜爱的解决方案。工作之余,他喜欢冲浪、吃饭、与狗摔跤以及宠爱他的侄女和侄子。

玛伊拉·拉代拉·坦克是 AWS 生成 AI 代理的 Amazon Bedrock 技术主管。她拥有机器学习背景,拥有 10 多年与各行业客户一起设计和构建 AI 应用程序的经验。作为技术主管,她通过 Amazon Bedrock 上的生成式 AI 解决方案帮助客户加速实现业务价值。在空闲时间,Maira 喜欢旅行、和她的猫玩耍以及与家人在温暖的地方共度时光。

马克·罗伊是 AWS 的首席机器学习架构师,帮助客户设计和构建生成式 AI 解决方案。自 2023 年初以来,他的重点一直是领导推出 Amazon Bedrock 的解决方案架构工作,这是 AWS 为构建者提供的旗舰生成式 AI 产品。Mark 的工作涵盖了广泛的用例,主要关注生成式 AI、代理以及在整个企业中扩展 ML。他为保险、金融服务、媒体和娱乐、医疗保健、公用事业和制造等领域的公司提供过帮助。在加入 AWS 之前,Mark 担任架构师、开发人员和技术领导者超过 25 年,其中 19 年从事金融服务工作。Mark 拥有六项 AWS 认证,包括 ML 专业认证。

约翰·贝克是 AWS 的首席 SDE,他负责 Amazon Bedrock,特别是 Amazon Bedrock Agents。他在 Amazon 工作了 10 多年,曾在 AWS、Alexa 和 Amazon.com 工作过。在业余时间,约翰喜欢在太平洋西北地区滑雪和进行其他户外活动。

苏迪普·杜塔是一位高级软件开发工程师,负责领导 Amazon Bedrock Agents 自定义编排器的开发。他拥有超过 17 年的分布式系统和架构开发经验,过去 6 年一直在 AWS 工作,专注于 ML 和 AI 服务,例如 Bedrock 和 Lex。在空闲时间,苏迪普喜欢在太平洋西北部的森林中徒步旅行或阅读悬疑小说!

关于《Amazon Bedrock Agents 自定义编排器入门 |亚马逊网络服务》的评论


暂无评论

发表评论

摘要

本文全面概述了 Amazon Bedrock Agents,特别强调了自定义编排器功能的介绍,该功能允许更好地控制生成式 AI 工作流程。以下是讨论的摘要和要点:### 自定义 Orchestrator 功能概述- **主要优势**:自定义编排器提供对编排流程的完全控制、实时调整和可重用性,以更紧密地满足特定业务需求。- **状态转换和基于合约的交互**:它使用基于合约的交互来管理 Amazon Bedrock 代理和 AWS Lambda 之间的状态转换。### 默认 ReAct 与自定义 ReWoo 策略1. **反应(React)**:- 此默认策略通过允许验证和调整中间步骤来强调灵活性。- 使用案例:非常适合需要高度动态交互且需要实时调整的应用程序。2. **ReWoo**:- 旨在通过减少模型调用来减少延迟来提高性能的自定义策略。- 权衡:提供更快的执行速度,但需要更复杂的提示构建和输出解析,与 ReAct 相比,实现起来更加困难。### 示例场景- 处理诸如“晚餐供应什么?今晚 9 点可以预订四人吗?”之类的查询时**反应**:- 逐步验证每个步骤(检查菜单、确认预订)。**ReWoo**:- 创建优化计划,直接访问知识库和行动组,无需中间验证,从而加快执行速度。### 性能比较- 使用 ReAct 进行 6 次模型调用需要 18 秒的任务,使用 ReWoo 进行 2 次模型调用则只需 9 秒。这凸显了复杂查询的延迟显着减少,使得 ReWoo 随着复杂性的增加而变得更加高效。### 实施和资源要开始并探索自定义编排器技术的示例,请参阅 GitHub 存储库“amazon-bedrock-samples”。### 结论Amazon Bedrock Agents 中引入的自定义编排器使开发人员能够微调 AI 工作流程,以更好地满足业务需求。通过详细的工作流程管理和状态事件处理,它可以构建更高效、更准确的生成式人工智能应用程序。此功能强调了 AWS 致力于帮助企业利用专门针对其运营需求量身定制的先进 AI 解决方案。### 关于作者本文最后感谢几位专门从事机器学习、AI 代理和分布式系统开发的 AWS 专家的贡献。他们的集体专业知识确保 Amazon Bedrock Agent 仍然是企业级生成式 AI 应用程序的强大平台。