Rastreie o processo de step-by-step raciocínio do agente usando trace - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Rastreie o processo de step-by-step raciocínio do agente usando trace

Cada resposta de um agente do Amazon Bedrock é acompanhada por um rastreamento que detalha as etapas que estão sendo orquestradas pelo agente. O rastreamento ajuda você a acompanhar o processo de raciocínio do agente que o leva à resposta que ele dá naquele momento da conversa.

Use o rastreamento para rastrear o caminho do agente desde a entrada do usuário até a resposta que ele retorna. O rastreamento fornece informações sobre as entradas dos grupos de ação que o agente invoca e as bases de conhecimento que ele consulta para responder ao usuário. Além disso, o rastreamento fornece informações sobre os resultados que os grupos de ação e as bases de conhecimento exibem. Você pode ver o raciocínio que o agente usa para determinar a ação que ele executa ou a consulta que ele faz a uma base de conhecimento. Se uma etapa do rastreamento falhar, o rastreamento retornará o motivo da falha. Use as informações detalhadas no rastreamento para solucionar problemas com o agente. Você pode identificar etapas nas quais o agente tem problemas ou nas quais ele produz um comportamento inesperado. Assim, você pode usar essas informações para considerar maneiras de melhorar o comportamento do agente.

Estrutura do rastreamento

Se você ativar o rastreamento, no InvokeAgentresposta, cada uma chunk no fluxo é acompanhada por um trace campo mapeado para um TracePartobjeto. O tracePart objeto contém informações sobre o agente e as sessões, juntamente com o processo de raciocínio do agente e os resultados da chamada de API funções.

{ "agentId": "string", "agentName": "string", "collaboratorName": "string", "agentAliasId": "string", "sessionId": "string", "agentVersion": "string", "trace": { ...}, "timeStamp": "string", "callerChain": [{ "agentAliasArn": "agent alias arn" }] }

A lista a seguir descreve os campos de TracePartobjeto:

  • agentId— O identificador exclusivo do agente.

  • agentName— O nome do agente.

  • collaboratorName— Se a colaboração multiagente estiver ativada, o nome do agente colaborador.

  • agentVersion— A versão do agente.

  • agentAliasId— O identificador exclusivo do alias do agente.

  • sessionId— O identificador exclusivo da sessão com o agente.

  • trace— Contém o processo de raciocínio do agente e os resultados das API ações de chamada. Veja a seguir mais informações.

  • callerChain— Lista de chamadores entre o agente que publicou esse rastreamento e o usuário final.

    • Se for um único agente, esse campo conterá o alias Arn do mesmo agente que publicou o rastreamento.

    • Se a colaboração multiagente estiver ativada, esse campo conterá o alias Arn de todos os agentes que encaminharam a solicitação do usuário final para o agente atual.

Dentro do TraceParté um trace campo que mapeia para um Traceobjeto. O traçado é mostrado como um JSON objeto no console e noAPI. Cada etapa no console ou Traceno API pode ser um dos seguintes traços:

  • PreProcessingTrace— Rastreia a entrada e a saída da etapa de pré-processamento, na qual o agente contextualiza e categoriza a entrada do usuário e determina se ela é válida.

  • OrchestrationTrace— Rastreia a entrada e a saída da etapa de orquestração, na qual o agente interpreta a entrada, invoca grupos de ação e consulta as bases de conhecimento. Em seguida, o agente exibe a saída para continuar a orquestração ou responder ao usuário.

  • PostProcessingTrace— Rastreia a entrada e a saída da etapa de pós-processamento, na qual o agente manipula a saída final da orquestração e determina como retornar a resposta ao usuário.

  • FailureTrace— Rastreia o motivo pelo qual uma etapa falhou.

  • GuardrailTrace— Rastreia as ações do Guardrail.

Cada um dos traços (excetoFailureTrace) contém um ModelInvocationInputobjeto. A ModelInvocationInputO objeto contém configurações definidas no modelo de solicitação da etapa, junto com a solicitação fornecida ao agente nessa etapa. Para obter mais informações sobre como modificar os modelos de prompt, consulte Melhorar a precisão dos agentes usando modelos de prompt avançados no Amazon Bedrock. A estrutura do objeto ModelInvocationInput é descrita assim:

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

A lista a seguir descreve os campos do ModelInvocationInputobjeto:

Para obter mais informações sobre cada tipo de rastreamento, consulte as seguintes seções:

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

O PreProcessingTraceconsiste em um ModelInvocationInputobjeto e um PreProcessingModelInvocationOutputobjeto. A PreProcessingModelInvocationOutputcontém os seguintes campos.

  • metadata: contém as informações a seguir sobre a saída do modelo de base.

    • usage: contém as informações a seguir sobre o uso do modelo de base.

      • inputTokens: contém as informações sobre os tokens de entrada do uso do modelo de base.

      • outputTokens: contém as informações sobre os tokens de saída do uso do modelo de base.

  • rawResponse: contém a saída bruta do modelo de base.

    • content: o conteúdo de saída bruto do modelo de base.

  • parsedResponse: contém os detalhes a seguir sobre o prompt do usuário analisado.

    • isValid: especifica se o prompt do usuário é válido.

    • rationale: especifica o raciocínio do agente para as próximas etapas a serem tomadas.

  • traceId: o identificador exclusivo do rastreamento.

O OrchestrationTraceconsiste no ModelInvocationInputobjeto, OrchestrationModelInvocationOutputobjeto e qualquer combinação dos objetos Razão InvocationInput, e Observação. A OrchestrationModelInvocationOutputcontém os seguintes campos. Para obter mais informações sobre objetos de InvocationInputRazão e Observação, selecione nas guias a seguir.

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

Se type for AGENT_COLLABORATOR e se o roteamento estiver habilitado para o agente supervisor, OrchestrationModelInvocationOutputconterá a seguinte estrutura:

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

O objeto Rationale contém o raciocínio do agente de acordo com a entrada do usuário. Esta é a estrutura:

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

A lista a seguir descreve os campos do objeto Rationale:

  • traceId: o identificador exclusivo da etapa de rastreamento.

  • text: o processo de raciocínio do agente, com base no prompt de entrada.

InvocationInput

O objeto InvocationInput contém informações que serão inseridas no grupo de ações a ser invocado ou na base de conhecimento a ser consultada. Esta é a estrutura:

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

A lista a seguir descreve os campos do objeto InvocationInput.

  • traceId: o identificador exclusivo do rastreamento.

  • invocationType— Especifica se o agente está invocando um agente colaborador, um grupo de ação ou uma base de conhecimento ou encerrando a sessão.

  • agentCollaborationInvocationInput— Contém a entrada de invocação para os agentes colaboradores. Aparece se type for AGENT_COLLABORATOR e se o roteamento estiver habilitado para o agente supervisor. Para obter mais informações, consulte Use a colaboração de vários agentes com o Amazon Bedrock Agents .

    • A agentCollaborationInvocationInput estrutura é a seguinte:

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

      Estas são as descrições dos campos:

      • agentCollaboratorName— O nome do agente colaborador associado ao agente supervisor.

      • agentCollaboratorAliasArn— O pseudônimo Arn do agente colaborador.

      • input— A string de entrada para o agente colaborador.

  • actionGroupInvocationInput: aparecerá se type for ACTION_GROUP. Para obter mais informações, consulte Definir ações no grupo de ação. Pode ser uma das seguintes estruturas:

    • Se o grupo de ações for definido por um API esquema, a estrutura será a seguinte:

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

      Estas são as descrições dos campos:

      • actionGroupName: o nome do grupo de ação que o agente prevê deve ser invocado.

      • apiPath— O caminho para a API operação a ser chamada, de acordo com o API esquema.

      • verb— O API método que está sendo usado, de acordo com o API esquema.

      • parameters: contém uma lista de objetos. Cada objeto contém o nome, o tipo e o valor de um parâmetro na API operação, conforme definido no API esquema.

      • requestBody— Contém o corpo da solicitação e suas propriedades, conforme definido no API esquema.

      • executionType: se o cumprimento da ação é passado para uma função do Lambda (LAMBDA) ou o controle é retornado por meio da resposta InvokeAgent (RETURN_CONTROL). Para obter mais informações, consulte Processar o atendimento da ação.

      • invocationId: o identificador exclusivo da invocação. Só será devolvido se o executionType for RETURN_CONTROL.

    • Se o grupo de ação for definido pelos detalhes da função, a estrutura será a seguinte:

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

      Estas são as descrições dos campos:

      • actionGroupName: o nome do grupo de ação que o agente prevê deve ser invocado.

      • function: o nome da função que o agente prevê que deve ser chamada.

      • parameters: os parâmetros da função.

      • executionType: se o cumprimento da ação é passado para uma função do Lambda (LAMBDA) ou o controle é retornado por meio da resposta InvokeAgent (RETURN_CONTROL). Para obter mais informações, consulte Processar o atendimento da ação.

      • invocationId: o identificador exclusivo da invocação. Só será devolvido se o executionType for RETURN_CONTROL.

  • knowledgeBaseLookupInput: aparecerá se type for KNOWLEDGE_BASE. Para obter mais informações, consulte Recupere dados e gere respostas de IA com as bases de conhecimento Amazon Bedrock. Contém as seguintes informações sobre a base de conhecimento e a consulta de pesquisa da base de conhecimento:

    • knowledgeBaseId: o identificador exclusivo da base de conhecimento que o agente consultará.

    • text: a consulta a ser feita na base de conhecimento.

Observation

O objeto Observação contém o resultado ou a saída de um agente colaborador, um grupo de ação ou base de conhecimento ou a resposta ao usuário. Esta é a estrutura:

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

A seguinte lista descreve os campos do objeto Observation:

  • traceId: o identificador exclusivo do rastreamento.

  • type— Especifica se a observação do agente é retornada do resultado de um agente colaborador, um grupo de ação ou uma base de conhecimento, se o agente está solicitando novamente o usuário, solicitando mais informações ou encerrando a conversa.

  • agentCollaboratorInvocationOutput— Contém a resposta do agente colaborador ou a resposta final. Aparece se type for AGENT_COLLABORATOR e se o roteamento estiver habilitado para o agente supervisor. Para obter mais informações, consulte Use a colaboração de vários agentes com o Amazon Bedrock Agents . Cada resposta contém os seguintes campos:

    • agentCollaboratorName— O nome do agente colaborador que está enviando a resposta.

    • agentCollaboratorAliasArn— O alias Arn do agente colaborador que envia a resposta.

    • output— Contém a resposta enviada pelo agente colaborador.

  • actionGroupInvocationOutput— Contém a string JSON formatada retornada pela API operação que foi chamada pelo grupo de ações. Aparecerá se type for ACTION_GROUP. Para obter mais informações, consulte Definir OpenAPI esquemas para os grupos de ação do seu agente no Amazon Bedrock.

  • knowledgeBaseLookupOutput: contém texto recuperado da base de conhecimento que é relevante para responder ao prompt com o local da fonte de dados no Amazon S3. Aparecerá se type for KNOWLEDGE_BASE. Para obter mais informações, consulte Recupere dados e gere respostas de IA com as bases de conhecimento Amazon Bedrock. Cada objeto na lista de retrievedReferences contém os seguintes campos:

    • content: contém text da base de conhecimento que é retornado da consulta à base de conhecimento.

    • location— Contém o Amazon S3 URI da fonte de dados na qual o texto retornado foi encontrado.

  • repromptResponse: aparecerá se type for REPROMPT. Contém o text que solicita mais um prompt com source do porquê o agente precisa enviar um novo prompt.

  • finalResponse: aparecerá se type for ASK_USER ou FINISH. Contém o text que solicita mais informações ao usuário ou é uma resposta ao usuário.

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

O PostProcessingTraceconsiste em um ModelInvocationInputobjeto e um PostProcessingModelInvocationOutputobjeto. A PostProcessingModelInvocationOutputcontém os seguintes campos:

  • rawResponse: contém a saída bruta do modelo de base.

    • content: o conteúdo de saída bruto do modelo de base.

  • metadata: contém as informações a seguir sobre a saída do modelo de base.

    • usage: contém as informações a seguir sobre o uso do modelo de base.

      • inputTokens: contém as informações sobre os tokens de entrada do uso do modelo de base.

      • outputTokens: contém as informações sobre os tokens de saída do uso do modelo de base.

  • parsedResponse: contém o text a ser retornado para o usuário depois de o texto ser processado pela função analisadora.

  • traceId: o identificador exclusivo do rastreamento.

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

A lista a seguir descreve os campos do objeto FailureTrace.

  • failureReason: o motivo pelo qual a etapa falhou.

  • traceId: o identificador exclusivo do rastreamento.

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

A lista a seguir descreve os campos do GuardrailAssessment objeto:

  • action: indica se as barreiras de proteção intervieram ou não nos dados de entrada. As opções são GUARDRAIL_INTERVENED ou NONE.

  • inputAssessments: os detalhes da avaliação da barreira de proteção na entrada do usuário.

  • outputAssessments: os detalhes da avaliação da barreira de proteção na resposta.

Para obter mais detalhes sobre o objeto GuardrailAssessment e testar uma barreira de proteção, consulte Testar uma barreira de proteção.

GuardrailAssessment exemplo:

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