在本笔记本中,我们将演示创建一个代理来协助保险理赔处理。该代理旨在支持保险员工有效地处理任务,如审查未决理赔、检索特定理赔的详细信息、识别未完成的理赔文件以及向保单持有人发送提醒。该代理能够单独管理这些任务或作为多步骤流程的一部分,确保操作流程顺畅。具体来说,该代理可以:
此外,我们将利用 Amazon Bedrock 的最新功能来定义函数并在执行分组操作之前纳入用户确认,进一步增强代理的可靠性和用户控制。
在开始之前,让我们导入所需的软件包并配置支持变量
在将我们的架构文件上传到 OpenAPI 标准之前,了解启用用户确认之前 API 执行的配置很重要。请注意,在 /notify
路径中,在"responses"部分之后,我们有字段 "x-requireConfirmation":"ENABLED"
。这是一个可选字段,默认设置为 DISABLED
。启用此字段以请求用户在操作被调用之前进行确认。
对于此示例,我们将仅启用 /notify
路径以请求用户在执行之前进行确认。
现在,代理需要一个存储在 s3 上的 API 架构。让我们创建一个 S3 存储桶来存储该文件,并将该文件上传到新创建的存储桶:
现在让我们创建代理操作组所需的 lambda 函数。我们首先需要创建 lambda IAM 角色及其策略。之后,我们将 lambda 函数打包成 ZIP 格式以创建该函数。
我们现在将创建代理。为此,我们首先需要创建允许 bedrock 模型调用和代理 IAM 角色的代理策略,并将该策略与角色关联。我们将允许此代理调用 Claude Sonnet 模型。
我们现在将创建和配置代理操作组,该操作组使用之前创建的 lambda 函数和 API 架构文件。
在使用我们的操作组之前,我们需要允许我们的代理调用与操作组关联的 lambda 函数。这是通过基于资源的策略完成的。让我们为创建的 lambda 函数添加基于资源的策略。
让我们创建代理的 DRAFT 版本,以供内部测试使用。
我们现在将创建代理的别名,以便部署代理。
作为第一个测试,我们将使用我们知道用户确认未启用的 API 的提示来调用我们的代理。
最后,我们需要调用代理,将函数结果作为参数传递。这使我们能够使用代理生成最终响应。请注意,如果函数或 API 启用了用户确认,用户将被提示 CONFIRM
或 DENY
响应中指定的操作,该操作位于 confirmationState
字段中。对于此示例,我们将使用 confirmationState
作为 CONFIRM,这意味着用户已确认该操作,允许其执行。
如前一个示例所示,我们将再次调用相同的方法 invoke_agent
,但这次我们将传递 DENY
选项,这意味着用户没有允许执行。
下一步是可选的,演示如何删除我们的代理。要删除代理,我们需要: