Amazon Bedrock のトレースイベント - Amazon Bedrock

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

Amazon Bedrock のトレースイベント

Amazon Bedrock エージェントからの各レスポンスには、エージェントによってオーケストレーションされるステップの詳細を示すトレースが付属しています。トレースにより、エージェントが会話のその時点で返すレスポンスに至るまでの推論プロセスを追跡できます。

トレースを使用して、ユーザー入力からレスポンスを返すまでの、エージェントのパスを追跡します。トレースは、エージェントが呼び出すアクショングループへの入力と、ユーザーに応答するためにクエリするナレッジベースに関する情報を提供します。さらに、トレースは、アクショングループとナレッジベースが返す出力に関する情報を提供します。エージェントが実行するアクションやナレッジベースに対して行うクエリを決定するために使用する推論を確認できます。トレースのステップが失敗した場合、トレースは失敗の理由を返します。トレースの詳細情報を使用して、エージェントのトラブルシューティングを行います。エージェントが問題を起こしたり、予期しない動作を引き起こしたりするステップを特定できます。次に、この情報を使用して、エージェントの動作を改善する方法を検討できます。

トレースを表示する

トレースを表示する方法を以下に示します。選択した方法に対応するタブを選択し、ステップに従います。

Console
エージェントとの会話中にトレースを表示するには

にサインインし AWS Management Console、https://console.aws.amazon.com/bedrock/ で Amazon Bedrock コンソールを開きます。

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

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

  3. メッセージを入力し、「 を実行」を選択します。レスポンスの生成中または生成終了後、トレースを表示 を選択します。

  4. エージェントがオーケストレーションを実行すると、各ステップのトレースをリアルタイムで表示できます。

API

トレースを表示するには、Agents for Amazon Bedrock ランタイムエンドポイントを使用して InvokeAgent リクエストを送信し、 enableTraceフィールドを に設定しますTRUE。デフォルトでは、トレースは無効になっています。

トレースを有効にすると、InvokeAgentレスポンスchunkで、ストリーム内の各 に、TracePartオブジェクトにマッピングされるtraceフィールドが付きます。内にTracePartは、Traceオブジェクトにマッピングされるtraceフィールドがあります。

トレースの構造

トレースは、コンソールと API の両方で JSON オブジェクトとして表示されます。コンソールまたは API Traceの各ステップは、次のいずれかのトレースになります。

  • PreProcessingTrace – 前処理ステップの入力と出力をトレースします。この場合、エージェントはユーザー入力をコンテキスト化して分類し、有効かどうかを判断します。

  • オーケストレーション — オーケストレーションステップの入力と出力をトレースします。このステップでは、エージェントが入力を解釈し、アクショングループを呼び出し、ナレッジベースをクエリします。次に、エージェントはオーケストレーションを続行するか、ユーザーに応答するために出力を返します。

  • PostProcessingTrace – 後処理ステップの入力と出力をトレースします。このステップでは、エージェントがオーケストレーションの最終出力を処理し、ユーザーにレスポンスを返す方法を決定します。

  • FailureTrace – ステップが失敗した理由をトレースします。

  • GuardrailTrace – ガードレールのアクションをトレースします。

各トレース ( を除くFailureTrace) には ModelInvocationInput オブジェクトが含まれています。ModelInvocationInput オブジェクトには、このステップのプロンプトテンプレートに設定された設定と、このステップでエージェントに提供されるプロンプトが含まれます。プロンプトテンプレートを変更する方法の詳細については、「」を参照してくださいAmazon Bedrock の高度なプロンプトModelInvocationInput オブジェクトの構造は次のとおりです。

{ "traceId": "string", "text": "string", "type": "PRE_PROCESSING | ORCHESTRATION | KNOWLEDGE_BASE_RESPONSE_GENERATION | POST_PROCESSING", "inferenceConfiguration": { "maximumLength": number, "stopSequences": ["string"], "temperature": float, "topK": float, "topP": float }, "promptCreationMode": "DEFAULT | OVERRIDDEN", "parserMode": "DEFAULT | OVERRIDDEN", "overrideLambda": "string" }

次のリストでは、 ModelInvocationInput オブジェクトのフィールドについて説明します。

  • traceId - トレースの一意な識別子。

  • text - このステップでエージェントに提供されたプロンプトのテキスト。

  • type - エージェントのプロセスの現在のステップ。

  • inferenceConfiguration - レスポンス生成に影響する推論パラメータ。詳細については、「推論パラメータ」を参照してください。

  • promptCreationMode – このステップでエージェントのデフォルトのベースプロンプトテンプレートが上書きされたかどうか。詳細については、「Amazon Bedrock の高度なプロンプト」を参照してください。

  • parserMode – このステップでエージェントのデフォルトのレスポンスパーサーが上書きされたかどうか。詳細については、「Amazon Bedrock の高度なプロンプト」を参照してください。

  • overrideLambda – デフォルトのパーサーがオーバーライドされた場合にレスポンスを解析するために使用されるパーサー Lambda 関数の Amazon リソースネーム (ARN)。詳細については、「Amazon Bedrock の高度なプロンプト」を参照してください。

各トレースタイプの詳細については、以下のセクションを参照してください。

{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "parsedResponse": { "isValid": boolean, "rationale": "string" }, "traceId": "string" } }

PreProcessingTrace は、 ModelInvocationInput オブジェクトと PreProcessingModelInvocationOutput オブジェクトで構成されます。PreProcessingModelInvocationOutput には、以下のフィールドが含まれています。

  • parsedResponse - 解析されたユーザープロンプトに関する以下の詳細が含まれます。

    • isValid – ユーザープロンプトが有効かどうかを指定します。

    • rationale - エージェントが次に取るべきステップの理由を指定します。

  • traceId - トレースの一意な識別子。

オーケストレーションは、 ModelInvocationInput オブジェクトと、Rationale 、、InvocationInputおよび Observation オブジェクトの任意の組み合わせで構成されます。各オブジェクトの詳細については、次のタブから選択します。

{ "modelInvocationInput": { // see above for details }, "rationale": { ... }, "invocationInput": { ... }, "observation": { ... } }
Rationale

Rationale オブジェクトには、ユーザー入力を与えられたエージェントの推論が含まれています。構造は次のとおりです。

{ "traceId": "string", "text": "string" }

次のリストでは、Rationale オブジェクトのフィールドについて説明します。

  • traceId - トレースのステップの一意な識別子。

  • text – 入力プロンプトに基づくエージェントの推論プロセス。

InvocationInput

InvocationInput オブジェクトには、呼び出される、またはクエリされるアクショングループまたはナレッジベースに入力される情報が含まれます。構造は次のとおりです。

{ "traceId": "string", "invocationType": "ACTION_GROUP | KNOWLEDGE_BASE | FINISH", "actionGroupInvocationInput": { // see below for details }, "knowledgeBaseLookupInput": { "knowledgeBaseId": "string", "text": "string" } }

次のリストでは、 InvocationInput オブジェクトのフィールドについて説明します。

  • traceId - トレースの一意な識別子。

  • invocationType – エージェントがアクショングループまたはナレッジベースを呼び出すか、セッションを終了するかを指定します。

  • actionGroupInvocationInputtypeACTION_GROUP の場合に表示されます。詳細については、「Amazon Bedrock エージェントのアクショングループを作成する」を参照してください。次のいずれかの構造を使用できます。

    • アクショングループが API スキーマで定義されている場合、構造は次のとおりです。

      { "actionGroupName": "string", "apiPath": "string", "verb": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "request": { "content": { "<content-type>": [ { "name": "string", "type": "string", "value": "string" } ] } } }

      フィールドの説明を次に示します。

      • actionGroupName – エージェントが呼び出す必要があると予測するアクショングループの名前。

      • apiPath – API スキーマに従って呼び出す API オペレーションへのパス。

      • verb – API スキーマに従って使用されている API メソッド。

      • parameters - オブジェクトのリストが含まれます。各オブジェクトには、API スキーマで定義されている API オペレーションのパラメータの名前、タイプ、値が含まれます。

      • requestBody – API スキーマで定義されているリクエストボディとそのプロパティが含まれます。

    • アクショングループが関数の詳細で定義されている場合、構造は次のとおりです。

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

      フィールドの説明を次に示します。

      • actionGroupName – エージェントが呼び出す必要があると予測するアクショングループの名前。

      • function – エージェントが呼び出す必要があると予測する関数の名前。

      • parameters – 関数のパラメータ。

  • knowledgeBaseLookupInputtypeKNOWLEDGE_BASE の場合に表示されます。詳細については、「Amazon Bedrock のナレッジベース」を参照してください。ナレッジベースとナレッジベースの検索クエリに関する以下の情報が含まれます。

    • knowledgeBaseId - エージェントが検索するナレッジベースの一意の識別子。

    • text - ナレッジベースに対して実行されるクエリ。

Observation

観察オブジェクトには、アクショングループまたはナレッジベースの結果または出力、またはユーザーへのレスポンスが含まれます。構造は次のとおりです。

{ "traceId": "string", "type": "ACTION_GROUP | KNOWLEDGE_BASE | REPROMPT | ASK_USER | FINISH" "actionGroupInvocation": { "text": "JSON-formatted string" }, "knowledgeBaseLookupOutput": { "retrievedReferences": [ { "content": { "text": "string" }, "location": { "type": "S3", "s3Location": { "uri": "string" } } }, ... ] }, "repromptResponse": { "source": "ACTION_GROUP | KNOWLEDGE_BASE | PARSER", "text": "string" }, "finalResponse": { "text" } }

次のリストは、監視オブジェクトのフィールドについて説明しています。

  • traceId - トレースの一意な識別子。

  • type – エージェントがユーザーを再プロンプトしたり、詳細情報をリクエストしたり、会話を終了したりする場合に、アクショングループまたはナレッジベースの結果からエージェントの監視を返すかどうかを指定します。

  • actionGroupInvocationOutput – アクショングループによって呼び出された API オペレーションによって返された JSON 形式の文字列が含まれます。typeACTION_GROUP の場合に表示されます。詳細については、「Amazon Bedrock でエージェントのアクショングループのOpenAPIスキーマを定義する」を参照してください。

  • knowledgeBaseLookupOutput – データソースの Amazon S3 の場所とともに、プロンプトへの応答に関連するナレッジベースから取得したテキストが含まれます。typeKNOWLEDGE_BASE の場合に表示されます。詳細については、「Amazon Bedrock のナレッジベース」を参照してください。のリスト内の各オブジェクトには、次のフィールドretrievedReferencesが含まれます。

    • content – ナレッジベースクエリから返されたナレッジベースの text が含まれます。

    • location – 返されたテキストが見つかったデータソースの Amazon S3 URI が含まれます。

  • repromptResponsetypeREPROMPT の場合に表示されます。再プロンプトを要求する text と、エージェントが再プロンプトを必要とする理由の source が含まれます。

  • finalResponse - typeASK_USER または FINISH の場合に表示されます。ユーザーに追加情報を求める text またはユーザーへのレスポンスとなるものが含まれます。

{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "parsedResponse": { "text": "string" }, "traceId": "string" } }

PostProcessingTrace は、 ModelInvocationInput オブジェクトと PostProcessingModelInvocationOutput オブジェクトで構成されます。には、次のフィールドPostProcessingModelInvocationOutputが含まれます。

  • parsedResponse – パーサー関数によってテキストが処理された後にユーザーにtext返される が含まれます。

  • traceId - トレースの一意な識別子。

{ "failureReason": "string", "traceId": "string" }

次のリストでは、 FailureTrace オブジェクトのフィールドについて説明します。

  • failureReason - ステップが失敗した理由。

  • traceId - トレースの一意な識別子。

{ "action": "GUARDRAIL_INTERVENED" | "NONE", "inputAssessments": [GuardrailAssessment], "outputAssessments": [GuardrailAssessment] }

次のリストでは、 GuardrailAssessment オブジェクトのフィールドについて説明します。

  • action – ガードレールが入力データに介入したかどうかを示します。オプションは GUARDRAIL_INTERVENEDまたは ですNONE

  • inputAssessments – ユーザー入力のガードレール評価の詳細。

  • outputAssessments – レスポンスの Guardrail 評価の詳細。

GuardrailAssessment オブジェクトとガードレールのテストの詳細については、「」を参照してくださいガードレールのテスト

GuardrailAssessment 例:

{ "topicPolicy": { "topics": [{ "name": "string", "type": "string", "action": "string" }] }, "contentPolicy": { "filters": [{ "type": "string", "confidence": "string", "action": "string" }] }, "wordPolicy": { "customWords": [{ "match": "string", "action": "string" }], "managedWordLists": [{ "match": "string", "type": "string", "action": "string" }] }, "sensitiveInformationPolicy": { "piiEntities": [{ "type": "string", "match": "string", "action": "string" }], "regexes": [{ "name": "string", "regex": "string", "match": "string", "action": "string" }] } }