本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon Bedrock 中追踪事件
Amazon Bedrock 代理的每一次回复都附有一条跟踪记录,详细说明了该代理正在策划的步骤。跟踪记录可以帮助您跟踪代理的推理过程,该过程可引导它做出它当时在对话中做出的响应。
使用跟踪记录来跟踪代理从用户输入到它返回的响应的路径。跟踪提供有关代理调用的操作组的输入信息,以及代理为响应用户而查询的知识库的信息。此外,跟踪还提供有关行动组和知识库返回的产出的信息。您可以查看代理用来确定其采取的操作或对知识库的查询的推理。如果跟踪中的某个步骤失败,则跟踪功能会返回失败的原因。使用跟踪中的详细信息对您的代理进行故障排除。您可以确定代理在哪些步骤中遇到问题或在哪些步骤中会产生意外行为。然后,您可以使用这些信息来考虑如何改善代理的行为。
查看踪迹
以下介绍如何查看跟踪。选择与您选择的方法相对应的选项卡,然后按照步骤操作。
轨迹的结构
该跟踪在控制台和 API 中均以 JSON 对象的形式显示。控制台或 API Trace中的每个步骤都可以是以下轨迹之一:
-
PreProcessingTrace— 跟踪预处理步骤的输入和输出,在该步骤中,代理对用户输入进行情境化和分类,并确定其是否有效。
-
OrchestrationTrace— 跟踪编排步骤的输入和输出,在该步骤中,代理解释输入、调用操作组和查询知识库。然后,代理返回输出以继续编排或响应用户。
-
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 函数的亚马逊资源名称 (ARN)。有关更多信息,请参阅 Amazon Bedrock 中的高级提示。
有关每种跟踪类型的更多信息,请参阅以下各节:
{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "parsedResponse": { "isValid": boolean, "rationale": "string" }, "traceId": "string" } }
PreProcessingTrace由一个ModelInvocationInput对象和一个PreProcessingModelInvocationOutput对象组成。PreProcessingModelInvocationOutput 包含以下字段。
-
parsedResponse
– 包含已解析的用户提示的以下相关详细信息。-
isValid
— 指定用户提示是否有效。 -
rationale
– 用于指定代理对后续行动的推理。
-
-
traceId
– 跟踪的唯一标识符。
OrchestrationTrace由ModelInvocationInput对象以及 “基本原理” 和 “观察” 对象的任意组合组成。InvocationInput有关每个对象的更多信息,请从以下选项卡中进行选择:
{ "modelInvocationInput": { // see above for details }, "rationale": { ... }, "invocationInput": { ... }, "observation": { ... } }
{ "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
— 根据用户输入进行的 Guardrail 评估的详细信息。 -
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" }] } }