在 Amazon Bedrock 中向你的代理添加一个行动组 - Amazon Bedrock

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

在 Amazon Bedrock 中向你的代理添加一个行动组

为操作组设置OpenAPI架构和 Lambda 函数后,您可以创建操作组。选择与您选择的方法相对应的选项卡,然后按照步骤操作。

Console

创建代理时,可以在工作草案中添加操作组。

创建代理后,您可以通过执行以下步骤向其添加操作组:

向代理添加操作组
  1. AWS Management Console 使用具有 Amazon Bedrock 权限的 IAM 角色登录,然后通过 https://console.aws.amazon.com/bedrock/ 打开亚马逊 Bedrock 控制台。

  2. 从左侧导航窗格中选择 “代理”。然后,在 “代理” 部分中选择一个代理

  3. 在代理生成器中选择编辑

  4. 在 “操作组” 部分中,选择 “添加”。

  5. (可选)在操作组详细信息部分,更改自动生成的名称,并为操作组提供可选的描述

  6. 操作组类型部分,选择以下方法之一来定义代理可以从用户那里获得的参数以帮助执行操作:

    1. 使用功能详细信息进行定义-为代理定义参数,以便从用户那里获取信息,以便执行操作。有关添加函数的更多信息,请参阅在 Amazon Bedrock 中为代理的操作组定义职能详情

    2. 使用 API 架构定义-定义代理可以调用的 API 操作和参数。使用您创建的 OpenAPI 架构或使用控制台文本编辑器创建架构。有关设置 OpenAPI 架构的更多信息,请参阅 在 Amazon Bedrock 中OpenAPI为代理的行动组定义架构

  7. 在 “操作组调用” 部分,您可以设置代理在预测应调用的 API 或函数并收到所需的参数之后执行的操作。选择以下选项之一:

  8. 根据您选择的操作组类型,您将看到以下部分之一:

    • 如果您选择 “使用函数详细信息定义”,则会出现一个操作组函数部分。执行以下操作来定义函数:

      1. 提供名称和可选(但建议使用)描述

      2. 在 “参数” 子部分中,选择 “添加参数”。定义以下字段:

        字段 描述
        名称 为参数命名。
        Description(可选) 描述参数。
        类型 指定参数的数据类型。
        必需 指定代理是否要求用户提供参数。
      3. 要添加其他参数,请选择添加参数

      4. 要编辑参数中的字段,请选择该字段并根据需要对其进行编辑。

      5. 要删除参数,请在包含该参数的行中选择删除图标 ( Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family. )。

      如果您更喜欢使用 JSON 对象定义函数,请选择 JSON 编辑器而不是。JSON 对象格式如下(parameters对象中的每个键都是您提供的参数名称):

      { "name": "string", "description": "string", "parameters": [ { "name": "string", "description": "string", "required": "True" | "False", "type": "string" | "number" | "integer" | "boolean" | "array" } ] }

      要通过定义另一组参数向操作组添加其他函数,请选择添加操作组函数

    • 如果您选择了 “使用 API 架构定义”,则会有一个包含以下选项的操作组架构部分:

      • 要使用您之前为操作组准备的 API 描述、结构和参数的 OpenAPI 架构,请选择选择 API 架构并提供指向该架构的 Amazon S3 URI 的链接。

      • 要使用内联架构编辑器定义 OpenAPI 架构,请选择 “通过内联架构编辑器定义”。此时将出现一个您可以编辑的示例架构。

        1. 使用格式旁边的下拉菜单选择架构的格式。

        2. 要从 S3 导入现有架构进行编辑,请选择导入架构,提供 S3 URI,然后选择导入

        3. 要将架构恢复为原始示例架构,请选择重置,然后再次选择重置来确认显示的消息。

  9. 创建完操作组后,选择 “添加”。如果您定义了 API 架构,则如果没有问题,则会显示绿色成功横幅。如果验证架构时出现问题,将会出现红色横幅。您有以下选项:

    • 滚动浏览架构,查看存在有关格式的错误或警告的行。X 表示存在格式错误,而感叹号表示存在有关格式的警告。

    • 选择红色横幅中的查看详细信息,查看有关 API 架构内容的错误列表。

  10. 在测试代理之前,请务必准备应用您对代理所做的更改。

API

要创建操作组,请使用适用于 Amazon Bedrock 的代理构建时终端节点发送CreateAgentActionGroup请求(请求和响应格式以及字段详情参见链接)。您必须提供函数架构OpenAPI 架构。

参见代码示例

以下列表描述了请求中的字段:

  • 以下字段是必填字段:

    字段 简短描述
    agentId 操作组所属代理的 ID。
    agentVersion 操作组所属代理的版本。
    actionGroupName 操作组的名称。
  • 要定义操作组的参数,必须指定以下字段之一(不能同时指定这两个字段)。

    字段 简短描述
    函数架构 定义代理从用户那里获得的操作组的参数。有关更多信息,请参阅 在 Amazon Bedrock 中为代理的操作组定义职能详情
    ApisChema 指定定义操作组参数的 OpenAPI 架构,或者指向包含该操作组的 S3 对象的链接。有关更多信息,请参阅 在 Amazon Bedrock 中OpenAPI为代理的行动组定义架构

    下面显示了functionSchema和的一般格式apiSchema

    • functionSchema数组中的每个项目都是一个FunctionSchema对象。为每个功能提供一个name和可选(但建议使用)description。在parameters对象中,每个键都是一个参数名称,映射到ParameterDetail对象中有关它的详细信息。的一般格式functionSchema如下:

      "functionSchema": [ { "name": "string", "description": "string", "parameters": { "<string>": { "type": "string" | number | integer | boolean | array, "description": "string", "required": boolean }, ... // up to 5 parameters } }, ... // up to 11 functions ]
    • A piSchema 可以采用以下格式之一:

      1. 对于以下格式,您可以直接粘贴 JSON 或 YAML 格式的OpenAPI架构作为值。

        "apiSchema": { "payload": "string" }
      2. 对于以下格式,请指定存储OpenAPI架构的 Amazon S3 存储桶名称和对象密钥。

        "apiSchema": { "s3": { "s3BucketName": "string", "s3ObjectKey": "string" } }
  • 要配置操作组在从用户那里获得参数后如何处理操作组的调用,您必须在字段中指定以下字段之一。actionGroupExecutor

    字段 简短描述
    lambda 要将参数发送到 Lambda 函数以处理操作组调用结果,请指定 Lambda 的亚马逊资源名称 (ARN)。有关更多信息,请参阅 配置 Lambda 函数以发送 Amazon Bedrock 代理从用户那里获得的信息,以便在 Amazon Bedrock 中执行操作组
    自定义控件 要跳过使用 Lambda 函数,而是返回预测的操作组及其所需的参数和信息,请在InvokeAgent响应中指定。RETURN_CONTROL有关更多信息,请参阅 通过在响应中发送所得信息,将控制权交还给代理开发者 InvokeAgent
  • 以下字段为可选字段:

    字段 简短描述
    parentActionGroup签名 如果代理没有足够的信息来完成另一个操作组,则指定AMAZON.UserInput允许其重新提示用户输入更多信息。如果指定此字段 descriptionapiSchema,则必须将、和actionGroupExecutor字段留空。
    description 对操作组的描述。
    actionGroupState 是否允许代理调用操作组。
    clientToken 用于防止请求被重复的标识符。