Tieni traccia del processo di step-by-step ragionamento dell'agente utilizzando trace - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tieni traccia del processo di step-by-step ragionamento dell'agente utilizzando trace

Ogni risposta di un agente Amazon Bedrock è accompagnata da una traccia che descrive in dettaglio i passaggi orchestrati dall'agente. La traccia è utile per capire il ragionamento che l'agente ha seguito per dare risposta in quel momento della conversazione.

Usa la traccia per monitorare il percorso dell'agente dall'input dell'utente alla risposta restituita. La traccia fornisce informazioni sugli input ai gruppi di azioni richiamati dall'agente e alle basi di conoscenza che interroga per rispondere all'utente. Inoltre, la traccia fornisce informazioni sugli output restituiti dai gruppi di azione e dalle basi di conoscenza. Puoi visualizzare il ragionamento utilizzato dall'agente per determinare l'azione da eseguire o la query che esegue su una knowledge base. Se un passaggio nella traccia non riesce, viene restituito il motivo dell'errore. Utilizza le informazioni dettagliate contenute nella traccia per risolvere i problemi del tuo agente. È possibile identificare le fasi in cui l'agente ha problemi o in cui produce un comportamento imprevisto. È quindi possibile utilizzare queste informazioni per valutare i modi in cui è possibile migliorare il comportamento dell'agente.

Struttura della traccia

La traccia viene mostrata come JSON oggetto sia nella console che inAPI. Ogni Step nella console o Tracein API può essere presente una delle seguenti tracce:

  • PreProcessingTrace— Traccia l'input e l'output della fase di pre-elaborazione, in cui l'agente contestualizza e classifica l'input dell'utente e determina se è valido.

  • OrchestrationTrace— Traccia l'input e l'output della fase di orchestrazione, in cui l'agente interpreta l'input, richiama i gruppi di azioni e interroga le knowledge base. Quindi l'agente restituisce l'output per continuare l'orchestrazione o per rispondere all'utente.

  • PostProcessingTrace— Traccia l'input e l'output della fase di post-elaborazione, in cui l'agente gestisce l'output finale dell'orchestrazione e determina come restituire la risposta all'utente.

  • FailureTrace— Traccia il motivo per cui un passaggio non è riuscito.

  • GuardrailTrace— Traccia le azioni del Guardrail.

Ciascuna delle tracce (tranneFailureTrace) contiene un ModelInvocationInputoggetto. Il ModelInvocationInputl'oggetto contiene le configurazioni impostate nel modello di prompt per la fase, insieme al prompt fornito all'agente in questa fase. Per ulteriori informazioni su come modificare i modelli di prompt, vedere. Migliora la precisione degli agenti utilizzando modelli di prompt avanzati in Amazon Bedrock La struttura dell'ModelInvocationInputoggetto è la seguente:

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

L'elenco seguente descrive i campi di ModelInvocationInputoggetto:

Per ulteriori informazioni su ciascun tipo di traccia, consulta le seguenti sezioni:

{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "parsedResponse": { "isValid": boolean, "rationale": "string" }, "traceId": "string" } }

PreProcessingTraceÈ costituito da un ModelInvocationInputoggetto e un PreProcessingModelInvocationOutputoggetto. Il PreProcessingModelInvocationOutputcontiene i seguenti campi.

  • parsedResponse: contiene i seguenti dettagli sul prompt dell'utente analizzato.

    • isValid— specifica se il prompt dell'utente è valido.

    • rationale: specifica il ragionamento dell'agente per i passaggi successivi da eseguire.

  • traceId: l'identificatore univoco della traccia.

È OrchestrationTracecomposto da ModelInvocationInputoggetto e qualsiasi combinazione degli oggetti Rationale e Observation. InvocationInput Per ulteriori informazioni su ciascun oggetto, selezionate una delle seguenti schede:

{ "modelInvocationInput": { // see above for details }, "rationale": { ... }, "invocationInput": { ... }, "observation": { ... } }
Rationale

L'oggetto Rationale contiene il ragionamento dell'agente in base all'input dell'utente. Di seguito è riportata la struttura:

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

L'elenco seguente descrive i campi dell'oggetto Rationale:

  • traceId: l'identificatore univoco della fase della traccia.

  • text— Il processo di ragionamento dell'agente, basato sulla richiesta di input.

InvocationInput

L'InvocationInputoggetto contiene informazioni che verranno inserite nel gruppo di azioni o nella knowledge base da richiamare o interrogare. Di seguito è riportata la struttura:

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

L'elenco seguente descrive i campi dell'InvocationInputoggetto:

  • traceId: l'identificatore univoco della traccia.

  • invocationType— Speciifica se l'agente sta richiamando un gruppo di azione o una knowledge base o sta terminando la sessione.

  • actionGroupInvocationInput: appare se type è ACTION_GROUP. Per ulteriori informazioni, consulta Definire le azioni nel gruppo di azioni. Può essere una delle seguenti strutture:

    • Se il gruppo di azioni è definito da uno API schema, la struttura è la seguente:

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

      Di seguito sono riportate le descrizioni dei campi:

      • actionGroupName— Il nome del gruppo di azioni che l'agente prevede dovrebbe essere invocato.

      • apiPath— Il percorso dell'APIoperazione da chiamare, in base allo API schema.

      • verb— Il API metodo utilizzato, in base allo API schema.

      • parameters: contiene un elenco di oggetti. Ogni oggetto contiene il nome, il tipo e il valore di un parametro nell'APIoperazione, come definito nello API schema.

      • requestBody— Contiene il corpo della richiesta e le relative proprietà, come definito nello API schema.

      • executionType— Se l'adempimento dell'azione viene passato a una funzione Lambda (LAMBDA) o il controllo viene restituito tramite response (). InvokeAgent RETURN_CONTROL Per ulteriori informazioni, consulta Gestire l'adempimento dell'azione.

      • invocationId— L'identificatore univoco della chiamata. Restituito solo se è. executionType RETURN_CONTROL

    • Se il gruppo di azioni è definito dai dettagli della funzione, la struttura è la seguente:

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

      Di seguito sono riportate le descrizioni dei campi:

      • actionGroupName— Il nome del gruppo di azioni che l'agente prevede dovrebbe essere invocato.

      • function— Deve essere chiamato il nome della funzione prevista dall'agente.

      • parameters— I parametri della funzione.

      • executionType— Se l'adempimento dell'azione viene passato a una funzione Lambda (LAMBDA) o il controllo viene restituito tramite response (). InvokeAgent RETURN_CONTROL Per ulteriori informazioni, consulta Gestire l'adempimento dell'azione.

      • invocationId— L'identificatore univoco della chiamata. Restituito solo se è. executionType RETURN_CONTROL

  • knowledgeBaseLookupInput: appare se type è KNOWLEDGE_BASE. Per ulteriori informazioni, consulta Recupera dati e genera risposte AI con le knowledge base. Contiene le seguenti informazioni sulla knowledge base e sulla query di ricerca per la knowledge base:

    • knowledgeBaseId: l'identificatore univoco della knowledge base che l'agente cercherà.

    • text: la query da eseguire sulla knowledge base.

Observation

L'oggetto Observation contiene il risultato o l'output di un gruppo di azioni o di una knowledge base oppure la risposta all'utente. Di seguito è riportata la struttura:

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

L'elenco seguente descrive i campi dell'oggetto Observation:

  • traceId: l'identificatore univoco della traccia.

  • type— Speciifica se l'osservazione dell'agente viene restituita dal risultato di un gruppo di azione o da una knowledge base, se l'agente sta richiamando l'attenzione dell'utente, richiedendo ulteriori informazioni o terminando la conversazione.

  • actionGroupInvocationOutput— Contiene la stringa JSON formattata restituita dall'APIoperazione richiamata dal gruppo di azioni. Appare se type è ACTION_GROUP. Per ulteriori informazioni, consulta Definire OpenAPI schemi per i gruppi di azioni del tuo agente in Amazon Bedrock.

  • knowledgeBaseLookupOutput— Contiene il testo recuperato dalla knowledge base pertinente per rispondere alla richiesta, oltre alla posizione Amazon S3 dell'origine dati. Appare se type è KNOWLEDGE_BASE. Per ulteriori informazioni, consulta Recupera dati e genera risposte AI con le knowledge base. Ogni oggetto nell'elenco retrievedReferences contiene i seguenti campi:

    • content: contiene il text della knowledge base che viene restituito dalla query alla knowledge base.

    • location— Contiene l'Amazon S3 URI dell'origine dati da cui è stato trovato il testo restituito.

  • repromptResponse: appare se type è REPROMPT. Contiene text che richiede un altro prompt, oltre a source per cui l'agente deve inviare nuovamente il prompt.

  • finalResponse: appare se type è ASK_USER o FINISH. Contiene il text che richiede all'utente ulteriori informazioni o è una risposta all'utente.

{ "modelInvocationInput": { // see above for details } "modelInvocationOutput": { "parsedResponse": { "text": "string" }, "traceId": "string" } }

PostProcessingTraceConsiste in un ModelInvocationInputoggetto e un PostProcessingModelInvocationOutputoggetto. Il PostProcessingModelInvocationOutputcontiene i seguenti campi:

  • parsedResponse— Contiene il codice text da restituire all'utente dopo che il testo è stato elaborato dalla funzione parser.

  • traceId: l'identificatore univoco della traccia.

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

L'elenco seguente descrive i campi dell'FailureTraceoggetto:

  • failureReason: il motivo per cui il passaggio non è riuscito.

  • traceId: l'identificatore univoco della traccia.

{ "action": "GUARDRAIL_INTERVENED" | "NONE", "inputAssessments": [GuardrailAssessment], "outputAssessments": [GuardrailAssessment] }

L'elenco seguente descrive i campi dell' GuardrailAssessment oggetto:

  • action— indica se i guardrail sono intervenuti o meno sui dati di input. Le opzioni sono o. GUARDRAIL_INTERVENED NONE

  • inputAssessments— I dettagli della valutazione Guardrail sull'input dell'utente.

  • outputAssessments— I dettagli della valutazione Guardrail sulla risposta.

Per maggiori dettagli sull'GuardrailAssessmentoggetto e sul test di un Guardrail, vedi. Prova un guardrail

GuardrailAssessment esempio:

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