Verfolgen Sie den step-by-step Argumentationsprozess des Agenten mithilfe von Trace - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verfolgen Sie den step-by-step Argumentationsprozess des Agenten mithilfe von Trace

Jede Antwort eines Amazon Bedrock-Agenten wird von einer Ablaufverfolgung begleitet, in der die vom Agenten orchestrierten Schritte detailliert beschrieben werden. Der Trace hilft Ihnen dabei, den Argumentationsprozess des Agenten zu 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 über die Eingaben in die Aktionsgruppen, die der Agent aufruft, sowie über die Wissensdatenbanken, die er abfragt, um dem Benutzer zu antworten. Darüber hinaus liefert der Trace Informationen über die Ausgaben, 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 der Trace einen Grund für den Fehler zurück. Verwenden Sie die detaillierten Informationen in der Ablaufverfolgung, um Probleme mit Ihrem Agenten zu beheben. Sie können Schritte identifizieren, bei denen der Agent Probleme hat oder bei denen er zu unerwartetem Verhalten führt. Anhand dieser Informationen können Sie dann überlegen, wie Sie das Verhalten des Agenten verbessern können.

Struktur der Spur

Der Trace wird sowohl in der Konsole als auch in der als JSON Objekt angezeigtAPI. Jeder Schritt in der Konsole oder Traceim API kann sich eine der folgenden Spuren befinden:

  • PreProcessingTrace— Verfolgt die Eingabe und Ausgabe des Vorverarbeitungsschritts, in dem der Agent Benutzereingaben kontextualisiert und kategorisiert und bestimmt, ob sie gültig sind.

  • OrchestrationTrace— Verfolgt die Eingabe und Ausgabe des Orchestrierungsschritts, in dem der Agent die Eingabe interpretiert, Aktionsgruppen aufruft und Wissensdatenbanken abfragt. Anschließend gibt der Agent die Ausgabe zurück, um entweder 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.

  • FailureTrace— Verfolgt den Grund, warum ein Schritt fehlgeschlagen ist.

  • GuardrailTrace— Zeichnet die Aktionen der Leitplanke nach.

Jede der Spuren (außerFailureTrace) enthält eine ModelInvocationInputObjekt. Die ModelInvocationInputDas Objekt enthält Konfigurationen, die in der Eingabeaufforderungsvorlage für den Schritt festgelegt wurden, sowie die Aufforderung, die dem Agenten in diesem Schritt zur Verfügung gestellt wurde. Weitere Informationen zum Ändern von Aufforderungsvorlagen finden Sie unterVerbessern Sie die Genauigkeit Ihrer Mitarbeiter mithilfe erweiterter Vorlagen für Eingabeaufforderungen in Amazon Bedrock. Die Struktur des ModelInvocationInput Objekts ist wie folgt:

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

Die folgende Liste beschreibt die Felder des ModelInvocationInputObjekt:

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 PreProcessingTracebesteht aus einem ModelInvocationInputObjekt und ein PreProcessingModelInvocationOutputObjekt. Die PreProcessingModelInvocationOutputenthält die folgenden Felder.

  • metadata— Enthält die folgenden Informationen zur Ausgabe des Foundation-Modells.

    • usage— Enthält die folgenden Informationen zur Verwendung des Foundation-Modells.

      • inputTokens— Enthält die Informationen über die Eingabe-Token aus der Verwendung des Foundation-Modells.

      • outputTokens— Enthält die Informationen über die Ausgabetokens aus der Verwendung des Foundation-Modells.

  • rawResponse— Enthält die Rohausgabe des Foundation-Modells.

    • content— Der Rohausgabeinhalt des Foundation-Modells.

  • parsedResponse: Enthält die folgenden Details zur analysierten Benutzeraufforderung.

    • isValid— Gibt an, ob die Benutzeraufforderung gültig ist.

    • rationale: Gibt die Argumentation des Agenten für die nächsten Schritte an.

  • traceId – die eindeutige Kennung des Trace.

Der OrchestrationTracebesteht aus ModelInvocationInputObjekt, OrchestrationModelInvocationOutputObjekt und eine beliebige Kombination der Objekte Rationale InvocationInput, und Observation. Die OrchestrationModelInvocationOutputenthält die folgenden Felder. Weitere Informationen zu den Objekten Rationale und Observation erhalten Sie, wenn Sie eine der folgenden Registerkarten auswählen. InvocationInput

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

Das Rationale-Objekt enthält die Argumentation des Agenten anhand der Benutzereingabe. Es folgt die Struktur:

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

In der folgenden Liste werden die Felder des Rationale-Objekts beschrieben:

  • traceId – die eindeutige Kennung des Trace-Schritts.

  • text— Der Argumentationsprozess des Agenten, der auf der Eingabeaufforderung basiert.

InvocationInput

Das InvocationInputObjekt enthält Informationen, die in die Aktionsgruppe oder Wissensdatenbank eingegeben werden, die aufgerufen oder abgefragt werden soll. Es folgt die Struktur:

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

Die folgende Liste beschreibt die Felder des InvocationInputObjekts:

  • traceId – die eindeutige Kennung des Trace.

  • invocationType— Gibt an, ob der Agent eine Aktionsgruppe oder eine Wissensdatenbank aufruft oder die Sitzung beendet.

  • actionGroupInvocationInput: Erscheint, wenn der type ACTION_GROUP ist. Weitere Informationen finden Sie unter Definieren Sie Aktionen in der Aktionsgruppe. Kann eine der folgenden Strukturen sein:

    • Wenn die Aktionsgruppe durch ein API Schema definiert ist, sieht die Struktur wie folgt aus:

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

      Im Folgenden finden Sie Beschreibungen der Felder:

      • actionGroupName— Der Name der Aktionsgruppe, von der der Agent prognostiziert, dass sie aufgerufen werden sollte.

      • apiPath— Der Pfad zu der API Operation, die gemäß dem Schema aufgerufen werden soll. API

      • verb— Die API Methode, die gemäß dem API Schema verwendet wird.

      • parameters: Enthält eine Liste von Objekten. Jedes Objekt enthält den Namen, den Typ und den Wert eines Parameters in der API Operation, wie im API Schema definiert.

      • requestBody— Enthält den Hauptteil der Anfrage und seine Eigenschaften, wie im API Schema definiert.

      • executionType— Ob die Ausführung der Aktion an eine Lambda-Funktion (LAMBDA) übergeben wird oder ob die Steuerung durch die InvokeAgent Antwort (RETURN_CONTROL) zurückgegeben wird. Weitere Informationen finden Sie unter Kümmere dich um die Erfüllung der Aktion.

      • invocationId— Die eindeutige Kennung des Aufrufs. Wird nur zurückgegeben, wenn der executionType istRETURN_CONTROL.

    • Wenn die Aktionsgruppe durch Funktionsdetails definiert ist, sieht die Struktur wie folgt aus:

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

      Im Folgenden finden Sie Beschreibungen der Felder:

      • actionGroupName— Der Name der Aktionsgruppe, von der der Agent prognostiziert, dass sie aufgerufen werden sollte.

      • function— Der Name der Funktion, von der der Agent vorhersagt, dass sie aufgerufen werden soll.

      • parameters— Die Parameter der Funktion.

      • executionType— Ob die Ausführung der Aktion an eine Lambda-Funktion (LAMBDA) übergeben wird oder ob die Steuerung durch die InvokeAgent Antwort (RETURN_CONTROL) zurückgegeben wird. Weitere Informationen finden Sie unter Kümmere dich um die Erfüllung der Aktion.

      • invocationId— Die eindeutige Kennung des Aufrufs. Wird nur zurückgegeben, wenn der executionType istRETURN_CONTROL.

  • knowledgeBaseLookupInput: Erscheint, wenn der type KNOWLEDGE_BASE ist. Weitere Informationen finden Sie unter Rufen Sie Daten ab und generieren Sie KI-Antworten mit Wissensdatenbanken. Enthält die folgenden Informationen über die Wissensdatenbank und die Suchabfrage für die Wissensdatenbank:

    • knowledgeBaseId: Die eindeutige Kennung der Wissensdatenbank, nach der der Agent sucht.

    • text: Die an die Wissensdatenbank gestellte Abfrage.

Observation

Das Observation-Objekt enthält das Ergebnis oder die Ausgabe einer Aktionsgruppe oder Wissensdatenbank oder die Antwort an den Benutzer. Es folgt die Struktur:

{ "traceId": "string", "type": "ACTION_GROUP | KNOWLEDGE_BASE | REPROMPT | ASK_USER | FINISH", "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" } }

In der folgenden Liste werden die Felder des Observation-Objekts beschrieben:

  • traceId – die eindeutige Kennung des Trace.

  • type— Gibt an, ob die Beobachtung des Agenten anhand des Ergebnisses einer Aktionsgruppe oder einer Wissensdatenbank zurückgegeben wird, wenn der Agent den Benutzer erneut auffordert, weitere Informationen anfordert oder die Konversation beendet.

  • actionGroupInvocationOutput— Enthält die Zeichenfolge im JSON -Format, die von der API Operation zurückgegeben wurde, die von der Aktionsgruppe aufgerufen wurde. Erscheint, wenn der type ACTION_GROUP ist. Weitere Informationen finden Sie unter Definieren OpenAPI Schemas für die Aktionsgruppen Ihres Agenten in Amazon Bedrock.

  • knowledgeBaseLookupOutput— Enthält aus der Wissensdatenbank abgerufenen Text, der für die Beantwortung der Aufforderung relevant ist, sowie den Amazon S3 S3-Speicherort der Datenquelle. Erscheint, wenn der type KNOWLEDGE_BASE ist. Weitere Informationen finden Sie unter Rufen Sie Daten ab und generieren Sie KI-Antworten mit Wissensdatenbanken. Jedes Objekt in der Liste von retrievedReferences enthält die folgenden Felder:

    • content: Enthält text aus der Wissensdatenbank, der aufgrund der Abfrage der Wissensdatenbank zurückgegeben wird.

    • location— Enthält den Amazon S3 URI der Datenquelle, aus der der zurückgegebene Text gefunden wurde.

  • repromptResponse: Erscheint, wenn der type REPROMPT ist. Enthält den text, der erneut nach einer Eingabeaufforderung fragt, zusammen mit der source, warum der Agent eine weitere Eingabeaufforderung ausgibt.

  • finalResponse: Erscheint, wenn der type ASK_USER oder FINISH ist. Enthält den text, der den Benutzer nach weiteren Informationen fragt oder eine Antwort an den Benutzer ist.

{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "rawResponse": { "content": "string" }, "metadata": { "usage": { "inputToken": int, "outputToken": int } }, "parsedResponse": { "text": "string" }, "traceId": "string" } }

Das PostProcessingTracebesteht aus einem ModelInvocationInputObjekt und ein PostProcessingModelInvocationOutputObjekt. Die PostProcessingModelInvocationOutputenthält die folgenden Felder:

  • rawResponse— Enthält die Rohausgabe des Foundation-Modells.

    • content— Der Rohausgabeinhalt des Foundation-Modells.

  • metadata— Enthält die folgenden Informationen zur Ausgabe des Foundation-Modells.

    • usage— Enthält die folgenden Informationen zur Verwendung des Foundation-Modells.

      • inputTokens— Enthält die Informationen über die Eingabe-Token aus der Verwendung des Foundation-Modells.

      • outputTokens— Enthält die Informationen über die Ausgabetokens aus der Verwendung des Foundation-Modells.

  • parsedResponse— Enthält die Informationentext, die an den Benutzer zurückgegeben werden sollen, nachdem der Text von der Parser-Funktion verarbeitet wurde.

  • traceId – die eindeutige Kennung des Trace.

{ "failureReason": "string", "traceId": "string" }

Die folgende Liste beschreibt die Felder des FailureTraceObjekts:

  • 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 Leitplanken in die Eingabedaten eingegriffen haben oder nicht. Die Optionen sind oder. GUARDRAIL_INTERVENED NONE

  • inputAssessments— Die Einzelheiten der Guardrail-Bewertung anhand der Benutzereingabe.

  • outputAssessments— Die Einzelheiten der Guardrail-Bewertung in der Antwort.

Weitere Informationen zum GuardrailAssessment Objekt und zum Testen eines Guardrails finden Sie unter. Testen Sie eine Leitplanke

GuardrailAssessment Beispiel:

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