エージェントの動作テストとトラブルシューティング - Amazon Bedrock

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

エージェントの動作テストとトラブルシューティング

エージェントを作成すると、作業用のドラフトが作成されます。作業用のドラフトは、エージェントを反復的に構築するために使用できるエージェントのバージョンです。エージェントを変更するたびに、作業ドラフトが更新されます。エージェントの設定が完了したら、エージェントのスナップショットであるバージョンと、バージョンを指すエイリアスを作成できます。その後、エイリアスを呼び出すことで、エージェントをアプリケーションにデプロイできます。詳細については、「Amazon Bedrock エージェントをアプリケーションにデプロイして統合する」を参照してください。

次のリストは、エージェントのテスト方法を示しています。

  • Amazon Bedrock コンソールで、サイドテストウィンドウを開き、エージェントが応答するための入力を送信します。作業用のドラフトまたは作成したバージョンを選択できます。

  • ではAPI、作業ドラフトは DRAFTバージョンです。を使用してエージェントに入力を送信する InvokeAgent テストエイリアス、TSTALIASID、または静的バージョンを指す別のエイリアスを持つ 。

エージェントの動作のトラブルシューティングに役立つように、Amazon Bedrock エージェントはエージェントとのセッション中にトレースを表示する機能を提供します。トレースは、エージェントの step-by-step推論プロセスを示します。トレースの詳細については、「トレースを使用してエージェントのステップバイステップの推論プロセスを追跡する」を参照してください。

エージェントをテストするための手順を以下に示します。任意の方法のタブを選択し、ステップに従います。

Console
エージェントをテストするには
  1. IAM Amazon Bedrock のアクセス許可を持つ ロール AWS Management Console を使用して にサインインし、 で Amazon Bedrock コンソールを開きますhttps://console.aws.amazon.com/bedrock/

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

  3. [エージェント] セクションで、エージェントのリストからテストするエージェントのリンクを選択します。

  4. 右側のペインに [テスト] ウィンドウが表示されます。

    注記

    [テスト] ウィンドウが閉じている場合は、エージェントの詳細ページの上部にある [テスト]、またはその中の任意のページを選択して、再度開くことができます。

  5. エージェントを作成したら、次のいずれかの方法で準備して、作業用のドラフトの変更を含めパッケージ化する必要があります。

    • [テスト] ウィンドウで、[準備] を選択します。

    • [作業用のドラフト] ページで、ページの上部にある [準備] を選択します。

    注記

    作業用のドラフトを更新するたびに、最新の変更を含めてエージェントをパッケージ化するようにエージェントを準備する必要があります。ベストプラクティスとして、[作業用のドラフト] ページの [エージェントの概要] セクションで、エージェントの [最後の準備] 時間を常に確認し、最新のエージェントをテストしていることを確認することをお勧めします。

  6. [テスト] ウィンドウの上部にあるドロップダウンメニューを使用して、テストするエイリアスおよび関連するバージョンを選択します。デフォルトでは、 TestAlias: ドラフトの組み合わせの作業が選択されます。

  7. (オプション) エイリアスのプロビジョンドスループットを選択するには、選択したテストエイリアスの下のテキストに ODTの使用または PT の使用が表示されます。プロビジョンドスループットモデルを作成するには、[変更] を選択します。詳細については、「Amazon Bedrock のプロビジョンドスループットでモデル呼び出し容量を増やす」を参照してください。

  8. (オプション) プロンプト管理のプロンプトを使用するには、メッセージボックスのオプションアイコン ( Vertical ellipsis icon representing a menu or more options. ) を選択し、プロンプトのインポートを選択します。プロンプトとバージョンを選択します。「テスト変数値」セクションにプロンプト変数の値を入力します。プロンプト管理のプロンプトの詳細については、「」を参照してくださいAmazon Bedrock でプロンプト管理を使用して再利用可能なプロンプトを構築して保存する

  9. エージェントをテストするには、メッセージを入力して [実行] を選択します。レスポンスの生成を待つ間、または生成後に、次のオプションを使用できます。

    • プロンプト、推論設定、各ステップのエージェントの推論プロセス、アクショングループとナレッジベースの使用など、エージェントのオーケストレーションプロセスの各ステップの詳細を表示するには、[トレースを表示] を選択します。トレースはリアルタイムで更新されるため、レスポンスが返される前に確認できます。ステップのトレースを展開または折りたたむには、ステップの横にある矢印を選択します。[トレース] ウィンドウと表示される詳細については、「トレースを使用してエージェントのステップバイステップの推論プロセスを追跡する」を参照してください。

    • エージェントがナレッジベースを呼び出す場合、レスポンスには脚注が含まれます。レスポンスの特定部分の引用情報を含む S3 オブジェクトへのリンクを表示するには、関連する脚注を選択します。

    • Lambda 関数を使用してアクショングループを処理するのではなく、エージェントにコントロールを返すように設定した場合、レスポンスには予測されたアクションとそのパラメータが含まれます。アクションの APIまたは 関数からの出力値の例を指定し、送信を選択してエージェントのレスポンスを生成します。例については、次の画像を参照してください。

      アクションの出力例を提供するテストウィンドウリクエスト。

    [テスト] ウィンドウでは、次のアクションを実行できます。

    • エージェントと新しい会話を開始するには、更新アイコンを選択します。

    • [トレース] ウィンドウを表示するには、展開アイコンを選択します。[トレース] ウィンドウを閉じるには、縮小アイコンを選択します。

    • [テスト] ウィンドウを閉じるには、右矢印アイコンを選択します。

アクショングループとナレッジベースを有効または無効にできます。この機能を使用して、異なる設定でのエージェントの動作を評価し、更新が必要なアクショングループまたはナレッジベースを特定することで、エージェントのトラブルシューティングを行います。

アクショングループまたはナレッジベースを有効にするには
  1. IAM Amazon Bedrock のアクセス許可を持つ ロール AWS Management Console を使用して にサインインし、 で Amazon Bedrock コンソールを開きますhttps://console.aws.amazon.com/bedrock/

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

  3. [エージェント] セクションで、エージェントのリストからテストするエージェントのリンクを選択します。

  4. エージェントの詳細ページでの [作業用のドラフト] セクションで、[作業用のドラフト] のリンクを選択します。

  5. [アクショングループ] または [ナレッジベース] セクションで、状態を変更するアクショングループまたはナレッジベースの [状態] にカーソルを合わせます。

  6. [編集] ボタンが表示されます。編集アイコンを選択して、ドロップダウンメニューでアクショングループまたはナレッジベースに対し、[有効] または [無効] を選択します。

  7. アクショングループが [無効] の場合、エージェントはアクショングループを使用しません。ナレッジベースが [無効] の場合、エージェントはナレッジベースを使用しません。アクショングループまたはナレッジベースを有効または無効にし、[テスト] ウィンドウを使用してエージェントのトラブルシューティングを行います。

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

API

エージェントを初めてテストする前に、 PrepareAgent Agents for Amazon Bedrock ビルドタイムエンドポイントを使用した リクエスト。リクエストに agentId を含めます。TSTALIASID エイリアスが指す DRAFT バージョンに変更が適用されます。

コード例を見る

注記

作業用のドラフトを更新するたびに、最新の変更を含めてエージェントをパッケージ化するようにエージェントを準備する必要があります。ベストプラクティスとして、 GetAgent リクエスト (リクエストとレスポンスの形式とフィールドの詳細のリンクを参照) と Agents for Amazon Bedrock ビルドタイムエンドポイント。エージェントが最新の設定でエージェントをテストしていることを確認するpreparedAt時間を確認します。

エージェントをテストするには、 InvokeAgent Agents for Amazon Bedrock ランタイムエンドポイントを使用した リクエスト。

注記

は をサポート AWS CLI していません InvokeAgent.

コード例を見る

リクエストには以下のフィールドが含まれます。

  • 少なくとも、次の必須フィールドを指定します。

    フィールド 簡単な説明
    agentId エージェントの ID
    agentAliasId エイリアスの ID。TSTALIASID を使用して DRAFT バージョンを呼び出します
    sessionId セッションの英数字 ID (2~100 文字)
    inputText エージェントに送信するユーザープロンプト
  • 次のフィールドはオプションです。

    フィールド 簡単な説明
    enableTrace トレースを表示するには TRUE を指定します。
    endSession このリクエスト後にエージェントとのセッションを終了するには、TRUE を指定します。
    sessionState エージェントの動作またはエージェントにアタッチされたナレッジベースの動作に影響を与えるコンテキストが含まれます。詳細については、「エージェントセッションコンテキストのコントロール」を参照してください。

レスポンスはイベントストリームで返されます。各イベントには、bytes フィールド内にレスポンスの一部を含む chunk が含まれています。これはデコードする必要があります。エージェントがナレッジベースをクエリした場合、chunk には citations も含まれます。次のオブジェクトが返される場合もあります。

  • トレースを有効にすると、trace オブジェクトも返されます。エラーが発生すると、フィールドがエラーメッセージとともに返されます。トレースの読み取り方法の詳細については、「トレースを使用してエージェントのステップバイステップの推論プロセスを追跡する」を参照してください。

  • Lambda 関数の使用をスキップするようにアクショングループを設定すると、 returnControlフィールドに ReturnControlPayload オブジェクトが返されます。ReturnControlPayload オブジェクトの一般的な構造は次のとおりです。

    { "invocationId": "string", "invocationInputs": [ ApiInvocationInput or FunctionInvocationInput, ... ] }

    invocationInputs リストの各メンバーは、次のいずれかです。

    • エージェントが予測するAPIオペレーションを含むApiInvocationInputオブジェクトは、 を満たすためにユーザーから取得するパラメータやその他の情報に加えて、ユーザー入力に基づいて呼び出す必要がありますAPI。ApiInvocationInput オブジェクトの構造は次の通りです。

      { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "requestBody": { <content-type>: { "properties": [ { "name": "string", "type": "string", "value": "string" } ] } } }
    • エージェントが予測する関数を含むFunctionInvocationInputオブジェクトは、ユーザーから取得する関数のパラメータに加えて、ユーザー入力に基づいて呼び出す必要があります。の構造FunctionInvocationInputは次のとおりです。

      { "actionGroup": "string", "function": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" } ] }