翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トレースを使用してエージェントのステップバイステップの推論プロセスを追跡する
Amazon Bedrock エージェントからの各レスポンスには、エージェントによってオーケストレーションされるステップの詳細を示すトレースが添付されています。トレースにより、エージェントが会話のその時点で返すレスポンスに至るまでの推論プロセスを追跡できます。
トレースを使用して、ユーザー入力からレスポンスを返すまでの、エージェントのパスを追跡します。トレースは、エージェントが呼び出すアクショングループと、ユーザーに応答するために問い合わせるナレッジベースへの入力に関する情報を提供します。さらに、トレースは、アクショングループとナレッジベースが返す出力に関する情報も提供します。エージェントが実行するアクションやナレッジベースに対して行うクエリを決定するために使用する推論を確認できます。トレースのステップが失敗した場合、トレースは失敗の理由を返します。トレースの詳細な情報を使用して、エージェントのトラブルシューティングを行います。エージェントが問題を起こしたり、予期せぬ動作をするステップを特定することができます。そして、この情報を使用して、エージェントの動作を改善する方法を検討できます。
トレースの構造
トレースを有効にすると、InvokeAgent レスポンスで、ストリーム内の各 chunk
には TracePart オブジェクトにマッピングされる trace
フィールドが伴います。tracePart
オブジェクトには、エージェントとセッションに関する情報と、エージェントの推論プロセス、および API 関数を呼び出した結果が含まれます。
{ "agentId": "string", "agentName": "string", "collaboratorName": "string", "agentAliasId": "string", "sessionId": "string", "agentVersion": "string", "trace": { ...}, "callerChain": [{ "agentAliasArn": "
agent alias arn
" }] }
次のリストでは、 TracePart オブジェクトのフィールドについて説明します。
-
agentId
– エージェントの一意の識別子。 -
agentName
– エージェントの名前。 -
collaboratorName
– マルチエージェントコラボレーションが有効になっている場合、コラボレーターエージェントの名前。 -
agentVersion
– エージェントのバージョン。 -
agentAliasId
– エージェントのエイリアスの一意の識別子。 -
sessionId
– エージェントとのセッションの一意の識別子。 -
trace
– エージェントの推論プロセスと API アクションを呼び出した結果が含まれます。詳細については、以下を参照してください。 -
callerChain
– このトレースを発行したエージェントとエンドユーザーの間の発信者のリスト。単一のエージェントの場合、このフィールドにはトレースを発行したのと同じエージェントのエイリアス Arn が含まれます。
マルチエージェントコラボレーションが有効になっている場合、このフィールドには、エンドユーザーリクエストを現在のエージェントに転送したすべてのエージェントのエイリアス Arn が含まれます。
TracePart 内には、Trace オブジェクトにマッピングされる trace
フィールドがあります。トレースは、コンソールと API の両方で JSON オブジェクトとして表示されます。コンソールの各ステップ、または API の Trace は、次のいずれかのトレースになります。
-
PreProcessingTrace — 前処理ステップの入力と出力をトレースします。このステップでは、エージェントがユーザー入力をコンテキスト化して分類し、有効かどうかを判断します。
-
OrchestrationTrace — エージェントが入力を解釈し、アクショングループを呼び出し、ナレッジベースにクエリを実行するオーケストレーションステップの、入力と出力をトレースします。その後エージェントは、オーケストレーションを継続するか、ユーザーに応答するための出力を返します。
-
PostProcessingTrace — 後処理ステップの入力と出力をトレースします。このステップでは、エージェントがオーケストレーションの最終出力を処理し、レスポンスをユーザーに返す方法を決定します。
-
FailureTrace — ステップが失敗した理由をトレースします。
-
GuardrailTrace – ガードレールのアクションをトレースします。
各トレース (FailureTrace
を除く) には ModelInvocationInput オブジェクトが含まれています。ModelInvocationInput オブジェクトは、このステップでエージェントに提供されるプロンプトとともに、ステップのプロンプトテンプレートに設定されたコンフィギュレーションを含みます。プロンプトテンプレートを変更する方法の詳細については、「Amazon Bedrock で詳細プロンプトのテンプレートを使用してエージェントの精度を高める」を参照してください。ModelInvocationInput
オブジェクトの構造は次の通りです。
{ "traceId": "string", "text": "string", "type": "PRE_PROCESSING | ORCHESTRATION | ROUTING_CLASSIFIER | KNOWLEDGE_BASE_RESPONSE_GENERATION | POST_PROCESSING", "foundationModel":string", "inferenceConfiguration": { "maximumLength": number, "stopSequences": ["string"], "temperature": float, "topK": float, "topP": float }, "promptCreationMode": "DEFAULT | OVERRIDDEN", "parserMode": "DEFAULT | OVERRIDDEN", "overrideLambda": "string" }
次のリストでは、ModelInvocationInput オブジェクトのフィールドについて説明します。
-
traceId
- トレースの一意な識別子。 -
text
- このステップでエージェントに提供されたプロンプトのテキスト。 -
type
- エージェントのプロセスの現在のステップ。 -
foundationModel
– マルチエージェントコラボレーションにおける共同作業者エージェントの基盤モデル。このフィールドは、type
が の場合にのみ入力されますROUTING_CLASSIFIER
。ルーティングプロンプトに使用されるデフォルトモデルが上書きされた場合、このフィールドには、プロンプトのルーティングに使用されるスーパーバイザーエージェントのモデルが表示されます。 -
inferenceConfiguration
- レスポンス生成に影響する推論パラメータ。詳細については、「推論パラメータでレスポンスの生成に影響を与える」を参照してください。 -
promptCreationMode
- エージェントのデフォルトのベースプロンプトテンプレートがこのステップでオーバーライドされたかどうか。詳細については、「Amazon Bedrock で詳細プロンプトのテンプレートを使用してエージェントの精度を高める」を参照してください。 -
parserMode
- エージェントのデフォルトレスポンスパーサーがこのステップでオーバーライドされたかどうか。詳細については、「Amazon Bedrock で詳細プロンプトのテンプレートを使用してエージェントの精度を高める」を参照してください。 -
overrideLambda
- デフォルトのパーサーがオーバーライドされた場合の、レスポンスの解析に使用されるパーサー Lambda 関数の Amazon Resource Name (ARN)。詳細については、「Amazon Bedrock で詳細プロンプトのテンプレートを使用してエージェントの精度を高める」を参照してください。
各トレースタイプの詳細は、以下のセクションを参照してください。
{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "metadata": { "usage": { "inputToken":: int, "outputToken":: int }, "rawResponse": { "content": "string" } "parsedResponse": { "isValid": boolean, "rationale": "string" }, "traceId": "string" } }
PreProcessingTrace は、ModelInvocationInput オブジェクトと PreProcessingModelInvocationOutput オブジェクトで構成されます。PreProcessingModelInvocationOutput には、以下のフィールドが含まれています。
-
metadata
– 基盤モデルの出力に関する以下の情報が含まれます。usage
– 基盤モデルの使用に関する以下の情報が含まれます。-
inputTokens
– 基盤モデルの使用からの入力トークンに関する情報が含まれます。 -
outputTokens
– 基盤モデルの使用からの出力トークンに関する情報が含まれます。
-
-
rawResponse
– 基盤モデルからの未加工出力が含まれます。-
content
– 基盤モデルの未加工出力コンテンツ。
-
-
parsedResponse
- 解析されたユーザープロンプトに関する以下の詳細が含まれます。-
isValid
- ユーザープロンプトが有効かどうかを指定します。 -
rationale
- エージェントが次に取るべきステップの理由を指定します。
-
-
traceId
- トレースの一意な識別子。
OrchestrationTrace は ModelInvocationInput オブジェクトとOrchestrationModelInvocationOutput オブジェクト、および Rationale、InvocationInput、Observation オブジェクトの任意の組み合わせで構成されます。OrchestrationModelInvocationOutput には、以下のフィールドが含まれています。Rationale、InvocationInput、および Observation オブジェクトの詳細については、次のタブから選択してください。
{ "modelInvocationInput": { // see above for details }, "modelInvocationOutput": { "metadata": { "usage": { "inputToken":: int, "outputToken":: int }, "rawResponse": { "content": "string" }, "rationale": { ... }, "invocationInput": { ... }, "observation": { ... } }
type
が AGENT_COLLABORATOR
で、スーパーバイザーエージェントに対してルーティングが有効になっている場合、 OrchestrationModelInvocationOutputには次の構造が含まれます。
routingClassifierModelInvocationOutput: { traceId: "string", rawResponse: "string", routerClassifierParsedResponse: {...} metadata: { inputTokens: "..." outputTokens: "..." } }
{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "rawResponse": { "content": "string" }, "metadata": { "usage": { "inputToken": int, "outputToken": int } }, "parsedResponse": { "text": "string" }, "traceId": "string" } }
PostProcessingTrace は、ModelInvocationInput オブジェクトと PostProcessingModelInvocationOutput オブジェクトで構成されます。PostProcessingModelInvocationOutput には、以下のフィールドが含まれています。
-
rawResponse
– 基盤モデルからの未加工出力が含まれます。-
content
– 基盤モデルの未加工出力コンテンツ。
-
-
metadata
– 基盤モデルの出力に関する以下の情報が含まれます。usage
– 基盤モデルの使用に関する以下の情報が含まれます。-
inputTokens
– 基盤モデルの使用からの入力トークンに関する情報が含まれます。 -
outputTokens
– 基盤モデルの使用からの出力トークンに関する情報が含まれます。
-
-
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
– レスポンスに対するガードレール評価の詳細。
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" }] } }