Amazon Bedrock 代理的工作原理 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Bedrock 代理的工作原理

Amazon Bedrock 代理由以下两组主要的 API 操作组成,可帮助您设置和运行代理:

构建时配置

代理包含以下组件:

  • 基础模型 — 您可以选择一个基础模型 (FM),代理调用该模型来解释其编排过程中的用户输入和后续提示。代理还调用 FM 以生成响应和流程中的后续步骤。

  • 说明-您编写说明来描述代理的设计用途。借助高级提示,您可以在编排的每个步骤中为代理进一步自定义指令,并包含用于解析每个步骤输出的 Lambda 函数。

  • 以下至少一项:

    • 操作组-您可以通过提供以下资源来定义代理应为用户执行的操作):

      • 以下架构之一,用于定义代理需要从用户那里获得的参数(每个操作组可以使用不同的架构):

        • 一种OpenAPI架构,用于定义代理可以调用以执行其任务的 API 操作。该OpenAPI架构包括需要从用户那里获得的参数。

        • 一种函数详细信息架构,用于定义代理可以从用户那里获得的参数。然后,代理可以使用这些参数进行进一步的编排,或者您可以设置如何在自己的应用程序中使用它们。

      • (可选)具有以下输入和输出的 Lambda 函数:

        • 输入-编排过程中识别的 API 操作和/或参数。

        • 输出-来自 API 调用的用的响应。

    • 知识库-将知识库与代理相关联。代理会查询知识库以获取额外的上下文,以增强响应生成和对编排过程步骤的输入。

  • 提示模板 — 提示模板是创建要提供给 FM 的提示的基础。Amazon Bedrock 代理公开了预处理、编排、知识库响应生成和后处理期间使用的默认四个基本提示模板。您可以选择编辑这些基本提示模板,以自定义代理在其序列的每个步骤中的行为。您也可以出于故障排除目的或在您认为不需要某个步骤时关闭步骤。有关更多信息,请参阅 Amazon Bedrock 中的高级提示

在构建时,将收集所有这些组件来构造基本提示,供代理执行编排,直到用户请求完成。通过高级提示,您可以根据其他逻辑和少样本示例来修改这些基本提示,以提高代理调用每个步骤的准确性。基本提示模板包含说明、操作描述、知识库描述和对话历史记录,您可以自定义所有这些内容以修改代理以满足您的需求。然后,您需要准备代理,该代理将代理的所有组件打包,包括安全配置。准备代理会使其进入可以在运行时对其进行测试的状态。下图显示了构建时 API 操作是如何构造代理的。

构建时 API 是如何构造代理的。操作组由OpenAPI架构和一个 Lambda 函数组成,用于定义代理可以调用哪些 API 操作以及代理应如何处理请求和响应。代理综合来自基本提示模板、向其提供的说明以及任何附加的操作组和知识库的信息,以使用其使用的模型生成提示。这些提示将添加到代理的提示存储中。

运行时进程

运行时由 InvokeAgentAPI 操作管理。此操作将启动代理序列,该序列由以下三个主要步骤组成。

  1. 预处理-管理代理如何对用户输入进行情境化和分类,并可用于验证输入。

  2. 编排 — 解释用户输入,调用操作组和查询知识库,并将输出返回给用户或作为输入返回给用户或作为输入继续编排。编排包括以下步骤:

    1. 代理通过根基模型解释输入,并生成理由来阐述下一步行动的逻辑依据。

    2. 代理可以预测它应该在操作组中调用哪个操作或者应该查询哪个知识库。

    3. 如果代理预测需要调用操作,则代理会将根据用户提示确定的参数发送到为操作组配置的 Lambda 函数,或者通过在响应中发送参数来返回控制权InvokeAgent如果代理没有足够的信息来调用操作,它可能会执行以下操作之一:

      • 查询关联的知识库(知识库响应生成)以检索其他上下文并汇总数据以增强其生成。

      • 重新提示用户收集操作所需的所有参数。

    4. 代理通过调用操作和/或汇总知识库的结果生成一个输出,称为观察。代理使用观察结果来增强基本提示,然后使用根基模型解释基本提示。然后,代理确定是否需要重复编排过程。

    5. 此循环一直持续到代理向用户返回响应或需要提示用户提供额外信息为止。

    在编排过程中,基本提示模板会使用您添加到代理中的代理说明、操作组和知识库进行扩展。然后,使用增强的基本提示符来调用 FM。FM 可以预测满足用户输入的最佳步伐和轨迹。在编排的每次迭代中,FM 都会预测要调用的 API 操作或要查询的知识库。

  3. 后处理-代理格式化最终响应以返回给用户。默认情况下,此步骤处于关闭状态。

调用代理时,可以在运行时开启跟踪。通过跟踪,您可以在代理序列的每个步骤中跟踪代理的理由、操作、查询和观察结果。跟踪包括每个步骤向基础模型发送的完整提示以及基础模型的输出、API 响应和知识库查询。您可以使用跟踪来了解代理在每个步骤中的推理。有关更多信息,请参阅 在 Amazon Bedrock 中追踪事件

随着用户与代理的会话继续InvokeAgent处理更多请求,对话历史记录会被保留。对话历史记录不断为编排基础提示模板添加上下文,有助于提高代理的准确性和性能。下图显示了代理在运行时的进程:

您的代理在运行时是如何工作的。收到用户输入后,代理会从提示存储中提取增强的提示,从会话存储中获取对话历史记录。如果启用了预处理步骤,代理将使用预处理提示调用 FM 以验证用户输入。在编排步骤中,代理使用编排提示调用 FM 并解析响应。然后,它会根据需要确定操作组并查询知识库,并生成可能触发新的编排提示的观察结果。编排阶段会循环,直到观察结果向用户返回最终响应。