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