使用追蹤追蹤追蹤代理程式step-by-step推理程序 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用追蹤追蹤追蹤代理程式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 物件的欄位:

如需每種追蹤類型的詳細資訊,請參閱下列各節:

{ "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物件,以及 RationaleInvocationInputObservation 物件的任意組合。OrchestrationModelInvocationOutput 包含下列欄位。如需 RationaleInvocationInput觀察物件的詳細資訊,請從下列標籤中選取 。

{ "modelInvocationInput": { // see above for details }, "modelInvocationOutput": { "metadata": { "usage": { "inputToken":: int, "outputToken":: int }, "rawResponse": { "content": "string" }, "rationale": { ... }, "invocationInput": { ... }, "observation": { ... } }

如果 typeAGENT_COLLABORATOR,且如果為主管客服人員啟用路由,則 OrchestrationModelInvocationOutput將包含下列結構:

routingClassifierModelInvocationOutput: { traceId: "string", rawResponse: "string", routerClassifierParsedResponse: {...} metadata: { inputTokens: "..." outputTokens: "..." } }
Rationale

Rationale 物件包含給使用者輸入的代理程式原因。以下是 結構:

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

下列清單說明 Rationale 物件的欄位:

  • traceId – 追蹤步驟的唯一識別符。

  • text – 根據輸入提示的代理程式推理程序。

InvocationInput

InvocationInput 物件包含將輸入至要叫用或查詢的動作群組或知識庫的資訊。以下是 結構:

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

下列清單說明 InvocationInput 物件的欄位:

  • traceId – 追蹤的唯一識別符。

  • invocationType – 指定代理程式是否叫用協作者代理程式、動作群組或知識庫,或結束工作階段。

  • agentCollaborationInvocationInput – 包含對協作者代理程式的調用輸入。如果 typeAGENT_COLLABORATOR,且如果為主管客服人員啟用路由,則會顯示 。如需詳細資訊,請參閱使用與 Amazon Bedrock Agents 的多代理程式協同合作

    • agentCollaborationInvocationInput 結構如下:

      { "agentCollaboratorName": "string", "agentCollaboratorAliasArn": "string", "input": { "text": "string" } }

      以下是欄位的說明:

      • agentCollaboratorName – 與主管客服人員相關聯的協作者客服人員名稱。

      • agentCollaboratorAliasArn – 協作者代理程式的別名 Arn。

      • input – 協作者代理程式的輸入字串。

  • actionGroupInvocationInput— 如果 typeACTION_GROUP 則會顯示。如需詳細資訊,請參閱在動作群組中定義動作。可以是下列其中一個結構:

    • 如果動作群組是由 API 結構描述定義,則結構如下:

      { "actionGroupName": "string", "apiPath": "string", "verb": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "requestBody": { "content": { "<content-type>": [ { "name": "string", "type": "string", "value": "string" } ] } }, "executionType": "LAMBDA | RETURN_CONTROL", "invocationId": "string" }

      以下是欄位的說明:

      • actionGroupName – 應叫用客服人員預測的動作群組名稱。

      • apiPath – 根據 API 結構描述,要呼叫的 API 操作路徑。

      • verb – 根據 API 結構描述,使用的 API 方法。

      • parameters— 包含物件清單。每個物件都包含 API 操作中參數的名稱、類型和值,如 API 結構描述所定義。

      • requestBody – 包含請求內文及其屬性,如 API 結構描述所定義。

      • executionType – 動作的履行是否傳遞至 Lambda 函數 (LAMBDA),還是透過InvokeAgent回應 () 傳回控制項RETURN_CONTROL。如需詳細資訊,請參閱處理動作的履行

      • invocationId – 調用的唯一識別符。只有在 executionType為 時才傳回RETURN_CONTROL

    • 如果動作群組是由函數詳細資訊定義,則結構如下所示:

      { "actionGroupName": "string", "function": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "executionType": "LAMBDA | RETURN_CONTROL", "invocationId": "string" }

      以下是欄位的說明:

      • actionGroupName – 應叫用客服人員預測的動作群組名稱。

      • function – 應呼叫代理程式預測的函數名稱。

      • parameters – 函數的參數。

      • executionType – 動作的履行是否傳遞至 Lambda 函數 (LAMBDA),還是透過InvokeAgent回應 () 傳回控制項RETURN_CONTROL。如需詳細資訊,請參閱處理動作的履行

      • invocationId – 調用的唯一識別符。只有在 executionType為 時才傳回RETURN_CONTROL

  • knowledgeBaseLookupInput— 如果 typeKNOWLEDGE_BASE 則會顯示。如需詳細資訊,請參閱使用 Amazon Bedrock 知識庫擷取資料並產生 AI 回應。包含有關知識庫和知識庫搜尋查詢的下列資訊:

    • knowledgeBaseId – 代理程式將查詢之知識庫的唯一識別碼。

    • text – 對知識庫進行的查詢。

Observation

觀察物件包含代理程式協作者的結果或輸出、動作群組或知識庫,或對使用者的回應。以下是 結構:

{ "traceId": "string", "type": "AGENT_COLLABORATOR |ACTION_GROUP | KNOWLEDGE_BASE | REPROMPT | ASK_USER | FINISH", "agentCollaboratorInvocationOutput": { "agentCollaboratorName": "string", "agentCollaboratorAliasArn": "string", "output": { "text": "string" }, "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 – 指定代理程式的觀察是從代理程式協作者、動作群組或知識庫的結果傳回,如果代理程式正在重新提示使用者、請求更多資訊或結束對話。

  • agentCollaboratorInvocationOutput – 包含來自協作者代理程式或最終回應的回應。如果 typeAGENT_COLLABORATOR,且如果為主管客服人員啟用路由,則會顯示 。如需詳細資訊,請參閱使用與 Amazon Bedrock Agents 的多代理程式協同合作 。每個回應都包含下列欄位:

    • agentCollaboratorName – 傳送回應的協作者代理程式名稱。

    • agentCollaboratorAliasArn – 傳送回應之協作者代理程式的別名 Arn。

    • output – 包含協作者代理程式傳送的回應。

  • actionGroupInvocationOutput – 包含由動作群組調用之 API 操作傳回的 JSON 格式字串。如果 typeACTION_GROUP,則會顯示。如需詳細資訊,請參閱OpenAPI 在 Amazon Bedrock 中為您的代理程式動作群組定義結構描述

  • knowledgeBaseLookupOutput – 包含從知識庫擷取的文字,該知識庫與回應提示相關,以及資料來源的 Amazon S3 位置。如果 typeKNOWLEDGE_BASE,則會顯示。如需詳細資訊,請參閱使用 Amazon Bedrock 知識庫擷取資料並產生 AI 回應。清單中的每個物件retrievedReferences都包含下列欄位:

    • content – 包含 text 從知識庫查詢傳回的知識庫文字。

    • location – 包含資料來源的 Amazon S3 URI,其中找到傳回的文字。

  • repromptResponse— 如果 typeREPROMPT 則會顯示。包含再次要求提示的 text,以及代理程式需要重新提示 source 的原因。

  • finalResponse— 如果 typeASK_USERFINISH,則會顯示。包含要求使用者提供更多資訊或回應使用者的 text

{ "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_INTERVENEDNONE

  • 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" }] } }