本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon Bedrock 中向你的代理添加一个行动组
设置完毕后 OpenAPI 您的操作组的架构和 Lambda 函数,您可以创建操作组。选择与您选择的方法相对应的选项卡,然后按照以下步骤操作:
注意
如果你正在使用 Anthropic Claude 3.5 Sonnet,请确保您的工具名称(格式为 Anthropic)httpVerb__actionGroupName__apiName
遵循 Anthropic 工具名称格式^[a-zA-Z0-9_-]{1,64}$
。您的 actionGroupName 和 apiName 不得包含双下划线'__'
。
- Console
-
创建代理时,可以在工作草案中添加操作组。
创建代理后,您可以通过执行以下步骤向其添加操作组:
向代理添加操作组
-
AWS Management Console 使用具有 Amazon Bedrock 权限的IAM角色登录,然后通过以下网址打开 Amazon Bedrock 控制台。https://console.aws.amazon.com/bedrock/
-
从左侧导航窗格中选择代理。然后,在 “代理” 部分中选择一个代理。
-
在代理生成器中选择编辑。
-
在操作组部分,选择添加。
-
(可选)在操作组详细信息部分,更改自动生成的名称,并为操作组提供可选的描述。
-
在操作组类型部分,选择以下方法之一来定义代理可以从用户那里获得的参数以帮助执行操作:
-
使用功能详细信息进行定义-为代理定义参数,以便从用户那里获取信息,以便执行操作。有关添加函数的更多信息,请参阅在 Amazon Bedrock 中为代理的操作组定义职能详情。
-
使用API架构定义-定义代理可以调用的API操作和参数。使用您创建的 Open API 架构或使用控制台文本编辑器创建架构。有关设置开放API架构的更多信息,请参阅 定义 OpenAPI Amazon Bedrock 中代理人行动小组的架构
-
-
在 “操作组调用” 部分,您可以设置代理在预测应调用的API或函数并收到所需的参数之后执行的操作。选择以下选项之一:
-
快速创建新的 Lambda 函数(推荐)让 Amazon Bedrock 为您的代理创建一个基本的 Lambda 函数,您可以稍后根据自己的用例对其进行修改。 AWS Lambda 代理会将其预测的API或函数以及基于会话的参数传递给 Lambda 函数。
-
选择现有的 Lambda 函数-选择您之前在中创建的 Lambda 函数 AWS Lambda 以及要使用的函数版本。代理会将其预测的API或函数以及基于会话的参数传递给 Lambda 函数。
注意
要允许亚马逊 Bedrock 服务委托人访问 Lambda 函数,请在 Lambda 函数中附加基于资源的策略,以允许亚马逊 Bedrock 服务委托人访问 Lambda 函数。
-
返回控制 — 代理不是将其预测的API或函数的参数传递给 Lambda 函数,而是通过传递其预测应调用的操作以及它从会话中确定的操作的参数和信息来将控制权返回给您的应用程序 InvokeAgent响应。有关更多信息,请参阅 通过在响应中发送所得信息,将控制权交还给代理开发者 InvokeAgent 。
-
-
根据您选择的操作组类型,您将看到以下部分之一:
-
如果您选择 “使用函数详细信息定义”,则会出现一个操作组函数部分。执行以下操作来定义函数:
-
提供名称和可选(但建议使用)描述。
-
要在调用函数之前请求用户进行确认,请选择启用。在调用该函数之前请求确认可以防止您的应用程序因恶意提示注入而采取行动。
-
在 “参数” 子部分中,选择添加参数。定义以下字段:
字段 描述 名称 为参数命名。 Description(可选) 描述参数。 类型 指定参数的数据类型。 必需 指定代理是否要求用户提供参数。 -
要添加其他参数,请选择添加参数。
-
要编辑参数中的字段,请选择该字段并根据需要对其进行编辑。
-
要删除参数,请在包含该参数的行中选择删除图标 ( )。
如果您更喜欢使用JSON对象来定义函数,请选择JSON编辑器而不是表格。JSON对象格式如下(
parameters
对象中的每个键都是您提供的参数名称):{ "name": "string", "description": "string", "parameters": [ { "name": "string", "description": "string", "required": "True" | "False", "type": "string" | "number" | "integer" | "boolean" | "array" } ] }
要通过定义另一组参数向操作组添加其他函数,请选择添加操作组函数。
-
-
如果您选择了使用API架构定义,则会有一个包含以下选项的操作组架构部分:
-
要使用您之前为操作组准备的API包含描述、结构和参数的开放架API构,请选择选择API架构并提供指向该架构的 Amazon S3 URI 的链接。
-
要使用行内API架构编辑器定义 Open 架构,请选择 “通过内联架构编辑器定义”。此时将出现一个您可以编辑的示例架构。
-
使用格式旁边的下拉菜单选择架构的格式。
-
要从 S3 导入现有架构进行编辑,请选择导入架构,提供 S3URI,然后选择导入。
-
要将架构恢复为原始示例架构,请选择重置,然后再次选择重置来确认显示的消息。
-
-
-
-
创建完操作组后,选择 “添加”。如果您定义了架API构,则如果没有问题,则会显示绿色成功横幅。如果验证架构时出现问题,将会出现红色横幅。您有以下选项:
-
滚动浏览架构,查看存在有关格式的错误或警告的行。X 表示存在格式错误,而感叹号表示存在有关格式的警告。
-
选择红色横幅中的查看详细信息以查看有关API架构内容的错误列表。
-
-
在测试代理之前,请务必准备应用您对代理所做的更改。
-
- API
-
要创建操作组,请发送 CreateAgentActionGroup使用 Amazon Bedrock 代理构建时终端节点请求(有关请求和响应格式以及字段详情,请参阅链接)。必须提供函数架构或 Op e n API 架构。
以下列表描述了请求中的字段:
-
以下字段是必填字段:
字段 简短描述 agentId 操作组所属代理的 ID。 agentVersion 操作组所属代理的版本。 actionGroupName 操作组的名称。 -
要定义操作组的参数,必须指定以下字段之一(不能同时指定这两个字段)。
字段 简短描述 functionSchema 定义代理从用户那里获得的操作组的参数。有关更多信息,请参阅 在 Amazon Bedrock 中为代理的操作组定义职能详情。 apiSchema 指定 Open API 架构,定义操作组的参数或指向包含该操作组的 S3 对象的链接。有关更多信息,请参阅 定义 OpenAPI Amazon Bedrock 中代理人行动小组的架构。 下面显示了
functionSchema
和的一般格式apiSchema
:-
functionSchema
数组中的每个项目都是一个FunctionSchema对象。为每个函数指定以下内容:-
提供 a
name
和可选(但建议使用)description
。 -
或者,指定
ENABLED
要在调用函数之前请求用户确认的requireConfirmation
字段。在调用该函数之前请求确认可以防止您的应用程序因恶意提示注入而采取行动。 -
在
parameters
对象中,每个键都是一个参数名称,映射到ParameterDetail对象中有关它的详细信息。
的一般格式
functionSchema
如下:"functionSchema": [ { "name": "string", "description": "string", "requireConfirmation": ENABLED | DISABLED, "parameters": { "
<string>
": { "type": "string" | number | integer | boolean | array, "description": "string", "required": boolean }, ... // up to 5 parameters } }, ... // up to 11 functions ] -
-
APISchema可以采用以下格式之一:
-
对于以下格式,您可以直接粘贴JSON或YAML格式的 OpenAPI 架构作为值。
"apiSchema": { "payload": "string" }
-
对于以下格式,请指定 Amazon S3 存储桶名称和对象密钥,其中 OpenAPI 架构已存储。
"apiSchema": { "s3": { "s3BucketName": "string", "s3ObjectKey": "string" } }
-
-
-
要配置操作组在从用户那里获得参数后如何处理操作组的调用,您必须在字段中指定以下字段之一。
actionGroupExecutor
字段 简短描述 lambda 要将参数发送到 Lambda 函数以处理操作组调用结果,请指定 Lambda 的亚马逊资源名称 (ARN)。有关更多信息,请参阅 配置 Lambda 函数以发送 Amazon Bedrock 代理从用户那里获得的信息。 customControl 要跳过使用 Lambda 函数,而是返回预测的操作组及其所需的参数和信息,请在 InvokeAgent
响应中指定。RETURN_CONTROL
有关更多信息,请参阅 通过在响应中发送所得信息,将控制权交还给代理开发者 InvokeAgent 。 -
以下字段为可选字段:
字段 简短描述 parentActionGroup签名 如果代理没有足够的信息来完成另一个操作组,则指定 AMAZON.UserInput
允许其重新提示用户输入更多信息。如果指定此字段description
apiSchema
,则必须将、和actionGroupExecutor
字段留空。description 对操作组的描述。 actionGroupState 是否允许代理调用操作组。 clientToken 用于防止请求被重复的标识符。
-