本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Bedrock 代理的工作原理
Amazon Bedrock 代理由以下两组主要 API 操作组成,可帮助您设置和运行代理:
-
构建时 API 操作,用于创建、配置和管理代理及其相关资源
-
运行时 API 操作,用于使用用户输入调用代理以及启动编排以执行任务
构建时配置
代理包含以下组件:
-
基础模型 – 您需要选择一个基础模型(FM),代理在编排过程中将调用该模型来解释用户输入和后续提示。代理还将调用该 FM 在其流程中生成响应和后续步骤。
-
指令 – 您需要编写指令来说明代理的用途。借助高级提示,您可以针对编排过程的每个步骤进一步为代理自定义指令,并添加 Lambda 函数来解析每个步骤的输出。
-
至少以下配置之一:
-
操作组 – 通过提供以下资源来定义代理应为用户执行的操作:
-
以下架构之一,用于定义代理需要从用户处获取的参数(每个操作组可以使用不同的架构):
-
网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的 OpenAPI 架构,用于定义代理可以调用以执行其任务的 API 操作。这些区域有:OpenAPI 架构包括需要从用户那里获得的参数。
-
函数详细信息架构,用于定义代理可以从用户处获取的参数。随后,这些参数可用于供代理进行进一步编排,也可用于设置它们在您自己的应用程序中的使用方式。
-
-
(可选)具有以下输入和输出的 Lambda 函数:
-
输入 – 编排过程中识别的 API 操作和/或参数。
-
输出 – API 调用的响应或函数调用的响应。
-
-
-
知识库 – 将知识库与代理关联起来。代理将查询知识库以获取额外的上下文,从而增强响应的生成并输入到编排流程的各个步骤。
-
-
提示模板 – 提示模板是创建要提供给 FM 的提示的基础。Amazon Bedrock 代理会公开在预处理、编排、知识库响应生成和后处理期间使用的四个默认基本提示模板。您可以选择编辑这些基本提示模板,以自定义代理在其序列中每个步骤的行为。您也可以出于故障排除目的关闭某些步骤,或者在认为不再需要某个步骤时将其关闭。有关更多信息,请参阅 使用 Amazon Bedrock 中的高级提示模板提高代理的准确性。
在构建时,系统会收集所有这些组件,为代理构建基本提示,以便在用户请求完成之前执行编排。通过高级提示,您可以根据其他逻辑和少样本示例来修改这些基本提示,以提高代理调用每个步骤的准确性。基本提示模板包含指令、操作描述、知识库描述和对话历史记录,您可以自定义所有这些内容,以根据需要修改代理。然后,您可以准备代理,将代理的所有组件(包括安全配置)打包在一起。准备代理会使其进入可在运行时进行测试的状态。下图显示了构建时 API 操作如何构建代理。

运行时流程
运行时由 InvokeAgentAPI 操作。此操作将启动代理序列,该序列由以下三个主要步骤组成。
-
预处理 – 管理代理如何对用户输入进行上下文关联和分类,并可用于验证输入。
-
编排 – 解释用户输入、调用操作组和查询知识库,并将输出返回给用户或将输出作为继续编排的输入。编排包含以下步骤:
-
代理通过根基模型解释输入,并生成理由来阐述下一步行动的逻辑依据。
-
代理可预测应该调用操作组中的哪个操作或应该查询哪个知识库。
-
如果代理预测需要调用操作,则代理会将根据用户提示确定的参数发送到为操作组配置的 Lambda 函数,或者通过在操作组中发送参数来返回控制权 InvokeAgent响应。如果代理没有足够的信息来调用该操作,它可能会执行以下操作之一:
-
查询相关知识库(知识库响应生成)以检索其他上下文并汇总数据,从而增强数据的生成。
-
重新提示用户收集该操作所需的所有参数。
-
-
代理通过调用操作和/或汇总知识库的结果来生成输出(也称为观察结果)。代理使用观察结果来增强基本提示,然后使用根基模型解释基本提示。然后,代理确定是否需要重复编排过程。
-
此循环会一直持续,直到代理向用户返回响应或需要提示用户提供额外信息为止。
在编排过程中,基本提示模板会使用您添加到代理的代理指令、操作组和知识库进行增强。然后,增强的基本提示会用于调用 FM。FM 可以预测最佳的步骤和轨迹,以便完成用户输入。在每次迭代编排过程时,FM 都会预测要调用的 API 操作或要查询的知识库。
-
-
后处理 – 代理将格式化最终响应,并返回给用户。默认情况下,此步骤处于关闭状态。
调用代理时,您可以在运行时开启跟踪。利用跟踪,您可以在代理序列的每个步骤中跟踪代理的理由、操作、查询和观察结果。跟踪包括在每个步骤中发送给基础模型的完整提示,以及基础模型的输出、API 响应和知识库查询。您可以通过跟踪来理解代理在每个步骤的推理。有关更多信息,请参阅 使用跟踪跟踪代理的 step-by-step推理过程。
当用户与代理的会话通过更多的 InvokeAgent
请求继续进行时,对话历史记录将被保留。对话历史记录会利用上下文不断增强基本提示模板编排,帮助提高代理的准确性和性能。下图显示了代理在运行时的工作过程。
