

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

# エージェントセッションコンテキストのコントロール
<a name="agents-session-state"></a>

セッションコンテキストをより詳細にコントロールするために、エージェント内の [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState) オブジェクトを変更できます。[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState) オブジェクトには、ターン (個別の [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) リクエストとレスポンス) 全体で維持できる情報が含まれています。この情報を使用して、ユーザーの会話中にエージェントの会話コンテキストを提供できます。

[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState) オブジェクトの一般的な形式は次のとおりです。

```
{
    "sessionAttributes": {
        "<attributeName1>": "<attributeValue1>",
        "<attributeName2>": "<attributeValue2>",
        ...
    },
     "conversationHistory": {
          "messages": [{
              "role": "user | assistant",
              "content": [{
                  "text": "string"
              }]
          }],
               },
    "promptSessionAttributes": {
        "<attributeName3>": "<attributeValue3>",
        "<attributeName4>": "<attributeValue4>",
        ...
    },
    "invocationId": "string",
    "returnControlInvocationResults": [
        [ApiResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ApiResult.html) or [FunctionResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_FunctionResult.html),
        ...
    ],
    "knowledgeBases": [
       {
        "knowledgeBaseId": "string",
        "retrievalConfiguration": {
            "vectorSearchConfiguration": {
                "overrideSearchType": "HYBRID | SEMANTIC",
                "numberOfResults": int,
                "filter": [RetrievalFilter](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrievalFilter.html) object
            }
        }
       },
       ...
    ]
}
```

[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_SessionState.html#bedrock-Type-agent-runtime_SessionState) オブジェクト内のフィールドの詳細については、以下のトピックを参照してください。

**Topics**
+ [セッション属性とプロンプトセッション属性](#session-state-attributes)
+ [セッション属性の例](#session-attribute-ex)
+ [プロンプトセッション属性の例](#prompt-session-attribute-ex)
+ [アクショングループ呼び出しの結果](#session-state-return-control)
+ [ナレッジベースの取得設定](#session-state-kb)

## セッション属性とプロンプトセッション属性
<a name="session-state-attributes"></a>

Amazon Bedrock のエージェントでは、セッションの一部で保持される以下のタイプのコンテキスト属性を定義できます。
+ **sessionAttributes** – ユーザーとエージェント間の[セッション](advanced-prompts.md#advanced-prompts-terminology)で保持される属性。セッション時間制限 (`idleSessionTTLinSeconds`) を超過しない限り、同じ `sessionId` で行われたすべての [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) リクエストは同じセッションに属します。
+ **conversationHistory** – マルチエージェントコラボレーションでは、コラボレーターエージェントに対して `conversationalHistorySharing` が有効になっている場合、ランタイムリクエストを処理するために追加のコンテキストを受け入れます。デフォルトでは、このフィールドは、コラボレーターエージェントを呼び出すときにスーパーバイザーエージェントによって自動的に構築されます。必要に応じて、このフィールドを使用して追加のコンテキストを指定できます。詳細については、「[Amazon Bedrock エージェントでマルチエージェントコラボレーションを使用する](agents-multi-agent-collaboration.md)」を参照してください。
+ **promptSessionAttributes** – 1 [ターン](advanced-prompts.md#advanced-prompts-terminology) (1 回の [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) 呼び出し) で保持される属性。オーケストレーションベースのプロンプトテンプレートを編集する際は、\$1prompt\$1session\$1attributes\$1 [プレースホルダー](prompt-placeholders.md)を使用できます。このプレースホルダーには、実行時に `promptSessionAttributes` フィールドで指定した属性が入力されます。

セッション状態属性は、次の 2 つの別の手順で定義できます。
+ アクショングループを設定し、[Lambda 関数 を記述する](agents-lambda.md)ときは、Amazon Bedrock に返される[レスポンスイベント](agents-lambda.md#agents-lambda-response)に `sessionAttributes` または `promptSessionAttributes` を含めます。
+ 実行時に [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) リクエストを送信するときは、リクエスト本文に `sessionState` オブジェクトを含め、会話の途中でセッション状態属性を動的に変更します。

## セッション属性の例
<a name="session-attribute-ex"></a>

以下の例では、セッション属性を使用して、ユーザーにメッセージをパーソナライズします。

1. ユーザーにユーザーの名とエージェントへのリクエストを入力するよう求めるアプリケーションコードを記述して、回答を変数 *<first\$1name>* および *<request>* として保存します。

1. 次の本文を使用して [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) リクエストを送信するアプリケーションコードを記述します。

   ```
   {
       "inputText": "<request>",
       "sessionState": {
           "sessionAttributes": {
               "firstName": "<first_name>"
           }
       }
   }
   ```

1. ユーザーがアプリケーションを使用してユーザーの名を入力すると、コードはセッション属性としてユーザーの名を送信し、エージェントは[セッション](advanced-prompts.md#advanced-prompts-terminology)の期間中ユーザーの名を保存します。

1. セッション属性は [Lambda 入力イベント](agents-lambda.md#agents-lambda-input)で送信されるため、アクショングループの Lambda 関数でこれらのセッション属性を参照できます。例えば、アクション [API スキーマ](agents-api-schema.md)でリクエスト本文にユーザーの名が必要な場合、アクショングループの Lambda 関数を記述するときに `firstName` セッション属性を使用して、API リクエストの送信時にそのフィールドを自動的に入力できます。

## プロンプトセッション属性の例
<a name="prompt-session-attribute-ex"></a>

以下の一般的な例では、プロンプトセッション属性を使用して、エージェントの一時的なコンテキストを提供します。

1. ユーザーリクエストを *<request>* という変数に保存するアプリケーションコードを記述します。

1. ユーザーが *<request>* で相対時間を示す単語(「明日」など) を使用している場合は、ユーザーの場所のタイムゾーンを取得するアプリケーションコードを記述して、*<timezone>* という変数に保存します。

1. 次の本文を使用して [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) リクエストを送信するアプリケーションを記述します。

   ```
   {
       "inputText": "<request>",
       "sessionState": {
           "promptSessionAttributes": {
               "timeZone": "<timezone>"
           }
       }
   }
   ```

1. ユーザーが相対時間を示す単語を使用すると、コードは `timeZone` プロンプトセッション属性を送信し、エージェントは[ターン](advanced-prompts.md#advanced-prompts-terminology)の間保存します。

1. 例えば、ユーザーが **I need to book a hotel for tomorrow** と尋ねると、コードはユーザーのタイムゾーンをエージェントに送信し、エージェントは「明日」が指す正確な日付を決定できます。

1. プロンプトセッション属性は、次の手順で使用できます。
   + オーケストレーションプロンプトテンプレートに \$1prompt\$1session\$1attributes\$1 [プレースホルダー](prompt-placeholders.md)を含めると、FM へのオーケストレーションプロンプトにはプロンプトセッション属性が含まれます。
   + プロンプトセッション属性は [Lambda 入力イベント](agents-lambda.md#agents-lambda-input)で送信され、API リクエストの入力や[レスポンス](agents-lambda.md#agents-lambda-response)で返されるのに役立ちます。

## アクショングループ呼び出しの結果
<a name="session-state-return-control"></a>

[[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) 応答でコントロールを返す](agents-returncontrol.md)ようにアクショングループを設定した場合、次のフィールドを含めることで、後続の [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) 応答の `sessionState` でアクショングループ呼び出しの結果を送信できます。
+ `invocationId` – この ID は、[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) レスポンスの `returnControl` フィールドの [ReturnControlPayload](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ReturnControlPayload.html) オブジェクトで返された `invocationId` と一致する必要があります。
+ `returnControlInvocationResults` – アクション呼び出しで得られる結果が含まれます。[ReturnControlPayload](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ReturnControlPayload.html) オブジェクトを渡して API リクエストを実行するか、定義した関数を呼び出すようにアプリケーションを設定できます。その後、このアクションの結果をここで指定できます。`returnControlInvocationResults` リストの各メンバーは、次のいずれかです。
  + エージェントが予測した API オペレーションを含む [ApiResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ApiResult.html) オブジェクトは、前の [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) シーケンスで呼び出されたもので、その結果はシステムでアクションを呼び出すことによるものです。一般的な形式は次のとおりです。

    ```
    {
        "actionGroup": "string",
        "agentId" : :string",
        "apiPath": "string",
        "confirmationState" : "CONFIRM | DENY",
        "httpMethod": "string",
        "httpStatusCode": integer,
        "responseBody": {
            "TEXT": {
                "body": "string"
            }
        }
    }
    ```
  + エージェントが予測した関数を含む [FunctionResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_FunctionResult.html) オブジェクトは、前の [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) シーケンスで呼び出されたもので、その結果はシステムでアクションを呼び出すことによるものです。一般的な形式は次のとおりです。

    ```
    {
        "actionGroup": "string",
        "agentId" : :string",
        "confirmationState" : "CONFIRM | DENY",
        "function": "string",
        "responseBody": {
            "TEXT": {
                "body": "string"
            }
        }
    }
    ```

提供される結果は、さらなるオーケストレーションのコンテキストとして使用したり、エージェントがレスポンスをフォーマットするための後処理に送信したり、またはエージェントのユーザーへのレスポンスで直接使用したりできます。

## ナレッジベースの取得設定
<a name="session-state-kb"></a>

エージェントにアタッチされているナレッジベースの取得設定を変更するには、設定を指定するナレッジベースごとに設定のリストを含む `knowledgeBaseConfigurations` フィールドを含めます。`knowledgeBaseId` を指定します。`vectorSearchConfiguration` フィールドでは、次のクエリ設定を指定できます (これらの設定の詳細については、「[クエリとレスポンスの生成を設定してカスタマイズする](kb-test-config.md)」を参照してください)。
+ **検索タイプ** – ナレッジベースがベクトル埋め込み (`SEMANTIC`) のみを検索するか、ベクトル埋め込みと未加工テキスト (`HYBRID`) の両方を検索するか。`overrideSearchType` フィールドを使用します。
+ **取得された結果の最大数** – レスポンスで使用するクエリ取得からの結果の最大数。
+ **メタデータとフィルタリング** – データソースファイルのメタデータ属性に基づいて結果をフィルタリングするように設定できるフィルター。