本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用追蹤追蹤追蹤代理程式step-by-step推理程序
來自 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 – 追蹤 Guardrail 的動作。
每個追蹤 (除了 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 和觀察物件的詳細資訊,請從下列標籤中選取 。
{ "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
– 使用者輸入上的 Guardrail 評估詳細資訊。 -
outputAssessments
– 回應上的 Guardrail 評估詳細資訊。
如需GuardrailAssessment
物件和測試 Guardrail 的詳細資訊,請參閱 測試護欄。
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" }] } }