Nachverfolgen des schrittweisen Argumentationsprozesses des Agenten mit Trace
Jede Antwort eines Agenten für Amazon Bedrock wird von einem Trace begleitet, die es Ihnen ermöglicht, Ereignisse zu den Schritten zu empfangen, die vom Agenten orchestriert werden. Mithilfe des Trace können Sie den Argumentationsprozess des Agenten verfolgen, der diesen zu der Antwort führt, die er zu diesem Zeitpunkt in der Konversation gibt.
Verwenden Sie den Trace, um den Pfad des Agenten von der Benutzereingabe bis zur zurückgegebenen Antwort nachzuverfolgen. Der Trace liefert Informationen zu den Eingaben in die Aktionsgruppen, die der Agent aufruft, und die Wissensdatenbanken, die er abfragt, um dem Benutzer zu antworten. Darüber hinaus stellt der Trace Informationen zu den Ausgaben bereit, die von den Aktionsgruppen und Wissensdatenbanken zurückgegeben werden. Sie können sich die Argumentation ansehen, anhand derer der Agent bestimmt, welche Aktion er ausführt, oder die Abfrage, die er an eine Wissensdatenbank stellt. Wenn ein Schritt im Trace fehlschlägt, gibt diese einen Grund für den Fehler zurück. Verwenden Sie die detaillierten Informationen im Trace, um Probleme mit Ihrem Agenten zu beheben. Sie können Schritte identifizieren, die beim Agent zu Problemen oder zu einem unerwarteten Verhalten führen. Anhand dieser Informationen können Sie dann überlegen, wie Sie das Verhalten des Agenten verbessern können.
Struktur des Trace
Wenn Sie den Trace aktivieren, wird in der InvokeAgent-Antwort jedes chunk-Element im Stream von einem trace-Feld begleitet, das einem TracePart-Objekt zugeordnet ist. Das tracePart-Objekt enthält Informationen zum Agenten und zu den Sitzungen sowie den Argumentationsprozess des Agenten und die Ergebnisse des Aufrufs von API-Funktionen.
{ "agentId": "string", "agentName": "string", "collaboratorName": "string", "agentAliasId": "string", "sessionId": "string", "agentVersion": "string", "trace": { ...}, "callerChain": [{ "agentAliasArn": "agent alias arn" }] }
Die folgende Liste beschreibt die Felder des TracePart-Objekts:
-
agentId– Die eindeutige Kennung des Agenten. -
agentName– Der Name des Agenten. -
collaboratorName– Wenn die Zusammenarbeit mehrerer Agenten aktiviert ist, der Name des Agenten. -
agentVersion– Die Version des Agenten. -
agentAliasId– Die eindeutige Kennung des Agenten. -
sessionId– Die eindeutige Kennung der Sitzung mit den Agenten. -
trace– Enthält den Argumentationsprozess des Agenten und die Ergebnisse des Aufrufs von API-Aktionen. Weitere Informationen hierzu finden Sie unten. -
callerChain– Die Liste der Anrufer zwischen dem Agenten, der diesen Trace veröffentlicht hat, und dem Endbenutzer.Wenn es sich um einen einzelnen Agenten handelt, enthält dieses Feld den Alias „Arn“ desselben Agenten, der den Trace veröffentlicht hat.
Wenn die Zusammenarbeit mehrerer Agenten aktiviert ist, enthält dieses Feld den Alias „Arn“ aller Agenten, die die Endbenutzeranforderung an den aktuellen Agenten weitergeleitet haben.
Im TracePart befindet sich ein trace-Feld, das einem Trace-Objekt zugeordnet ist. Der Trace wird sowohl in der Konsole als auch in der API als JSON-Objekt angezeigt. Jeder Schritt in der Konsole oder jede Trace in der API kann eine der folgenden Ablaufverfolgungen sein:
-
PreProcessingTrace – Verfolgt die Eingabe und Ausgabe des Vorverarbeitungsschritts, in dem der Agent Benutzereingaben kontextualisiert und kategorisiert und deren Gültigkeit überprüft.
-
OrchestrationTrace – Verfolgt die Eingabe und Ausgabe des Orchestrierungsschritts, in dem der Agent die Eingabe interpretiert, Aktionsgruppen aufruft, Wissensdatenbanken abfragt. Dann gibt der Agent die Ausgabe zurück, um die Orchestrierung fortzusetzen oder dem Benutzer zu antworten.
-
PostProcessingTrace – Verfolgt die Eingabe und Ausgabe des Nachbearbeitungsschritts, in dem der Agent die endgültige Ausgabe der Orchestrierung verarbeitet und bestimmt, wie die Antwort an den Benutzer zurückgegeben werden soll.
-
CustomOrchestrationTrace – Details zum benutzerdefinierten Orchestrierungsschritt, in dem der Agent die Reihenfolge bestimmt, in der Aktionen ausgeführt werden.
-
RoutingClassifierTrace – Verfolgt die Eingabe und Ausgabe des Routing-Klassifizierers.
-
FailureTrace – Verfolgt den Grund für das Fehlschlagen eines Schritts.
-
GuardrailTrace – Verfolgt die Aktionen des Integritätsschutzes.
Jede der Ablaufverfolgungen (außerFailureTrace) enthält ein ModelInvocationInput-Objekt. Das ModelInvocationInput-Objekt enthält neben dem Prompt, die dem Agenten in diesem Schritt zur Verfügung gestellt wird, Konfigurationen, die in der Prompt-Vorlage für den Schritt festgelegt sind. Weitere Informationen zum Ändern von Prompt-Vorlagen finden Sie unter Verbessern der Korrektheit von Agenten mithilfe erweiterter Prompt-Vorlagen in Amazon Bedrock. Die Struktur des ModelInvocationInput-Objekts ist wie folgt:
{ "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" }
Die folgende Liste beschreibt die Felder des ModelInvocationInput-Objekts:
-
traceId– Die eindeutige Kennung des Trace. -
text– Der Text aus dem Prompt, die dem Agenten in diesem Schritt zur Verfügung gestellt wurde. -
type– Der aktuelle Schritt im Prozess des Agenten. -
foundationModel– Das Basismodell des Collaborator-Agenten in der Zusammenarbeit mehrerer Agenten. Dieses Feld wird nur verwendet, wenntypeaufROUTING_CLASSIFIERfestgelegt ist. Wenn das für die Weiterleitung des Prompts verwendete Standardmodell außer Kraft gesetzt wird, zeigt dieses Feld das Modell des Supervisor-Agenten, der für die Weiterleitung des Prompts verwendet wird. -
inferenceConfiguration– Inferenzparameter, die die Antwortgenerierung beeinflussen. Weitere Informationen finden Sie unter So beeinflussen Sie die Antwortgenerierung mit Inferenzparametern. -
promptCreationMode– Gibt an, ob die standardmäßige Prompt-Basisvorlage des Agenten für diesen Schritt außer Kraft gesetzt wurde oder nicht. Weitere Informationen finden Sie unter Verbessern der Korrektheit von Agenten mithilfe erweiterter Prompt-Vorlagen in Amazon Bedrock. -
parserMode– Gibt an, ob der standardmäßige Antwort-Parser des Agenten für diesen Schritt außer Kraft gesetzt wurde oder nicht. Weitere Informationen finden Sie unter Verbessern der Korrektheit von Agenten mithilfe erweiterter Prompt-Vorlagen in Amazon Bedrock. -
overrideLambda– Der Amazon-Ressourcenname (ARN) der Parser-Lambda-Funktion, die zum Analysieren der Antwort verwendet wird, falls der Standard-Parser außer Kraft gesetzt wurde. Weitere Informationen finden Sie unter Verbessern der Korrektheit von Agenten mithilfe erweiterter Prompt-Vorlagen in Amazon Bedrock.
Weitere Informationen zu den einzelnen Trace-Typen finden Sie in den folgenden Abschnitten:
{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "metadata": { "usage": { "inputToken":: int, "outputToken":: int }, "rawResponse": { "content": "string" } "parsedResponse": { "isValid": boolean, "rationale": "string" }, "traceId": "string" } }
Der PreProcessingTrace besteht aus einem ModelInvocationInput- und einem PreProcessingModelInvocationOutput-Objekt. Die PreProcessingModelInvocationOutput enthält die folgenden Felder.
-
metadata– Enthält die folgenden Informationen zur Ausgabe des Basismodells.usage– Enthält die folgenden Informationen zur Verwendung des Basismodells.-
inputTokens– Enthält die Informationen zu den Eingabe-Token aus der Verwendung des Basismodells. -
outputTokens– Enthält die Informationen zu den Ausgabe-Token aus der Verwendung des Basismodells.
-
-
rawResponse– Enthält die Rohausgabe des Basismodells.-
content– Der Inhalt der Rohausgabe des Basismodells.
-
-
parsedResponse– Enthält die folgenden Details zur analysierten Benutzeraufforderung.-
isValid– Gibt an, ob der Benutzer-Prompt gültig ist oder nicht. -
rationale– Gibt die Argumentation des Agenten für die nächsten Schritte an.
-
-
traceId– Die eindeutige Kennung des Trace.
Der OrchestrationTrace besteht aus dem ModelInvocationInput-Objekt, dem OrchestrationModelInvocationOutput-Objekt und einer beliebigen Kombination der Objekte Rationale, InvocationInput und Observation. Die OrchestrationModelInvocationOutput enthält die folgenden Felder. Weitere Informationen zu den Objekten Rationale, InvocationInput und Observation erhalten Sie durch Auswahl einer der folgenden Registerkarten.
{ "modelInvocationInput": { // see above for details }, "modelInvocationOutput": { "metadata": { "usage": { "inputToken":: int, "outputToken":: int }, "rawResponse": { "content": "string" }, "rationale": { ... }, "invocationInput": { ... }, "observation": { ... } }
Wenn der type auf AGENT_COLLABORATOR festgelegt und das Routing für den Vorgesetzten-Agenten aktiviert wurde, enthält OrchestrationModelInvocationOutput die folgende Struktur:
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" } }
Der PostProcessingTrace besteht aus einem ModelInvocationInput- und einem PostProcessingModelInvocationOutput-Objekt. Die PostProcessingModelInvocationOutput enthält die folgenden Felder.
-
rawResponse– Enthält die Rohausgabe des Basismodells.-
content– Der Inhalt der Rohausgabe des Basismodells.
-
-
metadata– Enthält die folgenden Informationen zur Ausgabe des Basismodells.usage– Enthält die folgenden Informationen zur Verwendung des Basismodells.-
inputTokens– Enthält die Informationen zu den Eingabe-Token aus der Verwendung des Basismodells. -
outputTokens– Enthält die Informationen zu den Ausgabe-Token aus der Verwendung des Basismodells.
-
-
parsedResponse– Enthält dentext, der nach der Verarbeitung durch die Parser-Funktion an den Benutzer zurückgegeben werden soll. -
traceId– Die eindeutige Kennung des Trace.
{ "failureReason": "string", "traceId": "string" }
Die folgende Liste beschreibt die Felder des FailureTrace-Objekts:
-
failureReason– Der Grund, warum der Schritt fehlgeschlagen ist. -
traceId– Die eindeutige Kennung des Trace.
{ "action": "GUARDRAIL_INTERVENED" | "NONE", "inputAssessments": [GuardrailAssessment], "outputAssessments": [GuardrailAssessment] }
Die folgende Liste beschreibt die Felder des GuardrailAssessment-Objekts:
-
action– Gibt an, ob bei den Eingabedaten der Integritätsschutz eingegriffen hat oder nicht. Die Optionen lautenGUARDRAIL_INTERVENEDoderNONE. -
inputAssessments– Die Details der Bewertung des Integritätsschutzes hinsichtlich der Benutzereingabe. -
outputAssessments– Die Details der Bewertung des Integritätsschutzes hinsichtlich der Antwort.
Weitere Informationen zum GuardrailAssessment-Objekt und zum Testen des Integritätsschutzes finden Sie unter So testen Sie Ihren Integritätsschutz.
Beispiel für 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" }] } }