

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Bedrock のエージェントにアクショングループを追加する
<a name="agents-action-add"></a>

アクショングループの OpenAPI スキーマと Lambda 関数を設定したら、アクショングループを作成できます。任意の方法のタブを選択し、その手順に従います。

**注記**  
Anthropic Claude 3.5 Sonnet を使用する場合は、`httpVerb__actionGroupName__apiName` 形式のツール名が Anthropic ツール名の形式 `^[a-zA-Z0-9_-]{1,64}$` に従っていることを確認してください。actionGroupName と apiName に二重アンダースコア `'__'` を含めることはできません。

------
#### [ Console ]

[エージェントの作成](agents-create.md)時に、作業中のドラフトにアクショングループを追加できます。

エージェントの作成後は、次の手順を実行してアクショングループをエージェントに追加できます。

**アクショングループをエージェントに追加するには**

1. Amazon Bedrock コンソールを使用するためのアクセス許可を持つ IAM ID を使用して、AWS マネジメントコンソールにサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで **[エージェント]** を選択します。次に、**[エージェント]** セクションでエージェントを選択します。

1. **[エージェントビルダーで編集]** を選択します。

1. **[アクショングループ]** セクションで **[追加]** を選択します。

1. (オプション) **[アクショングループの詳細]** セクションで、自動的に生成された **[名前]** を変更し、アクショングループの **[説明]** (オプション) を指定します。

1. **[アクショングループタイプ]** セクションで、エージェントがアクションを実行するためにユーザーから取得するパラメータを定義する方法として、次のいずれかを選択します。

   1. **関数の詳細で定義** – アクションを実行するためにエージェントがユーザーから取得するパラメータを定義します。関数の追加について詳しくは、「[Amazon Bedrock エージェントで使用するアクショングループの関数の詳細を定義する](agents-action-function.md)」を参照してください。

   1. **API スキーマで定義** — エージェントが呼び出すことができる API オペレーションとパラメータを定義します。作成済みの OpenAPI スキーマを使用するか、コンソールのテキストエディタを使用してスキーマを作成します。OpenAPI スキーマの設定について詳しくは、「[Amazon Bedrock でエージェントのアクショングループの OpenAPI スキーマを定義する](agents-api-schema.md)」を参照してください。

1. **[アクショングループの呼び出し]** セクションで、呼び出すべき API または関数を予測して必要なパラメータを受け取った後のエージェントの動作を設定します。以下のオプションのいずれかを選択します。
   + **新しい Lambda 関数をすばやく作成する – (*推奨*)** – Amazon Bedrock がエージェント用の基本的な Lambda 関数を作成し、後でユーザーがユースケースに合わせて AWS Lambda で変更できます。エージェントは、セッションに基づいて、予測した API または関数とパラメータを Lambda 関数に渡します。
   + **既存の Lambda 関数を選択する** – AWS Lambda で[以前に作成した Lambda 関数](agents-lambda.md)と、使用する関数のバージョンを選択します。エージェントは、セッションに基づいて、予測した API または関数とパラメータを Lambda 関数に渡します。
**注記**  
Amazon Bedrock サービスプリンシパルが Lambda 関数にアクセスできるようにするには、[Lambda 関数にリソースベースのポリシーをアタッチ](agents-permissions.md#agents-permissions-lambda)します。
   + **コントロールを返す** - 予測した API または関数のパラメータを Lambda 関数に渡す代わりに、エージェントは、セッションから決定したアクションのパラメータと情報、加えて予測した呼び出すべきアクションを [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) レスポンスで渡すことで、アプリケーションにコントロールを返します。詳細については、「[InvokeAgent レスポンスで引き出された情報を送信して、エージェントデベロッパーにコントロールを返す](agents-returncontrol.md)」を参照してください。

1. **[アクショングループタイプ]** の選択に応じて、次のいずれかのセクションが表示されます。
   + **[関数の詳細で定義]** を選択した場合は、**[アクショングループ関数]**セクションが表示されます。以下を実行して関数を定義します。

     1. **[名前]** とオプションの **[説明]** (記述することを推奨) を入力します。

     1. 関数が呼び出される前にユーザーからの確認をリクエストするには、**[有効]** を選択します。関数を呼び出す前に確認をリクエストすると、悪意のあるプロンプトインジェクションによるアクションが実行されないようにアプリケーションを保護できる場合があります。

     1. **[パラメータ]** サブセクションで、**[パラメータを追加]** を選択します。以下のフィールドを定義します。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/agents-action-add.html)

     1. 別のパラメータを追加するには、**[パラメータを追加]** を選択します。

     1. パラメータのフィールドを編集するには、フィールドを選択し、必要に応じて編集します。

     1. パラメータを削除するには、パラメータが含まれる行の削除アイコン (![\[Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family.\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/images/icons/trash.png)) を選択します。

     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. **[フォーマット]** の横にあるドロップダウンメニューを使用して、スキーマのフォーマットを選択します。

       1. S3 から既存のスキーマをインポートして編集するには、**[スキーマのインポート]** を選択し、S3 URI を指定して **[インポート]** を選択します。

       1. スキーマを元のサンプルスキーマに復元するには、**[リセット]** を選択し、もう一度 **[リセット]** を選択して表示されるメッセージを確認します。

1. アクショングループの作成が完了したら、**[追加]** を選択します。API スキーマを定義した場合、問題がなければ成功を示す緑色のバナーが表示されます。スキーマの検証に問題がある場合は、赤いバナーが表示されます。次のオプションがあります。
   + スキーマをスクロールして、フォーマットに関するエラーまたは警告がある行を確認します。X はフォーマットエラーを示し、感嘆符はフォーマットに関する警告を示します。
   + 赤いバナーの **[詳細を表示]** を選択すると、API スキーマのコンテンツに関するエラーのリストが表示されます。

1. テストする前に、必ず **[準備]** を選択してエージェントに加えた変更を適用します。

------
#### [ API ]

アクショングループを作成するには、[Amazon Bedrock エージェントのビルドタイムエンドポイント](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)を使用して [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html) リクエストを送信します。[関数スキーマ](agents-action-function.md)と [OpenAPI スキーマ](agents-api-schema.md)のいずれかを指定する必要があります。

次のリストで、リクエストのフィールドについて説明します。
+ 以下のフィールドが必要です。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/agents-action-add.html)
+ アクショングループのパラメータを定義するには、次のいずれかのフィールドを指定する必要があります (両方を指定することはできません)。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/agents-action-add.html)

  以下は、`functionSchema` と `apiSchema` の一般的な形式を示しています。
  + `functionSchema` 配列内の各項目は [FunctionSchema](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FunctionSchema.html) オブジェクトです。各関数に、以下を指定します。
    + `name` とオプションの `description` (指定することを推奨) を指定します。
    + オプションで、関数が呼び出される前にユーザーからの確認をリクエストする場合は、`requireConfirmation` フィールドに `ENABLED` を指定します。関数を呼び出す前に確認をリクエストすると、悪意のあるプロンプトインジェクションによるアクションが実行されないようにアプリケーションを保護できる場合があります。
    + `parameters` オブジェクトの各キーはパラメータ名であり、[ParameterDetail](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ParameterDetail.html) オブジェクト内のパラメータの詳細にマッピングされます。

    `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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_APISchema.html) は、以下の形式のいずれかになります。

    1. 次の形式では、JSON または YAML 形式の OpenAPI スキーマを値として直接貼り付けることができます。

       ```
       "apiSchema": {
           "payload": "string"
       }
       ```

    1. 次の形式では、OpenAPI スキーマが保存されている Amazon S3 バケットの名前とオブジェクトキーを指定します。

       ```
       "apiSchema": {
           "s3": {
               "s3BucketName": "string",
               "s3ObjectKey": "string"
           }
       }
       ```
+ ユーザーからパラメータを取得した後にアクショングループがアクショングループの呼び出しをどのように処理するかを設定するには、`actionGroupExecutor` フィールド内で次のいずれかのフィールドを指定する必要があります。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/agents-action-add.html)
+ 次のフィールドはオプションです。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/agents-action-add.html)

  ```
      def create_agent_action_group(
              self, name, description, agent_id, agent_version, function_arn, api_schema
      ):
          """
          Creates an action group for an agent. An action group defines a set of actions that an
          agent should carry out for the customer.
  
          :param name: The name to give the action group.
          :param description: The description of the action group.
          :param agent_id: The unique identifier of the agent for which to create the action group.
          :param agent_version: The version of the agent for which to create the action group.
          :param function_arn: The ARN of the Lambda function containing the business logic that is
                               carried out upon invoking the action.
          :param api_schema: Contains the OpenAPI schema for the action group.
          :return: Details about the action group that was created.
          """
          try:
              response = self.client.create_agent_action_group(
                  actionGroupName=name,
                  description=description,
                  agentId=agent_id,
                  agentVersion=agent_version,
                  actionGroupExecutor={"lambda": function_arn},
                  apiSchema={"payload": api_schema},
              )
              agent_action_group = response["agentActionGroup"]
          except ClientError as e:
              logger.error(f"Error: Couldn't create agent action group. Here's why: {e}")
              raise
          else:
              return agent_action_group
  ```

  詳細については、「[Amazon Bedrock エージェントの始め方](bedrock-agent_example_bedrock-agent_Hello_section.md)」を参照してください。

------