View a markdown version of this page

Criar avaliador - Amazon Bedrock AgentCore

Criar avaliador

A CreateEvaluator API cria um novo avaliador personalizado que define como avaliar aspectos específicos do comportamento do seu agente. Essa operação assíncrona retorna imediatamente enquanto o avaliador está sendo provisionado. A API retorna o ARN, o ID, o timestamp de criação e o status inicial do avaliador. Depois de criado, o avaliador pode ser referenciado nas configurações de avaliação on-line.

Parâmetros obrigatórios: você deve especificar um nome de avaliador exclusivo (dentro da sua região), configuração do avaliador e nível de avaliação (TOOL_CALLTRACE, ouSESSION).

Criptografia opcional: você pode especificar a kmsKeyArn para criptografar as instruções e a escala de avaliação do avaliador com uma chave AWS KMS gerenciada pelo cliente. Somente chaves KMS de criptografia simétrica são suportadas. Para obter mais informações, consulte Criptografia em repouso para AgentCore avaliações.

Configuração do avaliador: você pode escolher um dos dois tipos de avaliador:

  • LLM-as-a-judge— Defina instruções de avaliação (prompts), configurações do modelo e escalas de avaliação. A lógica de avaliação é executada por um modelo de fundação Bedrock.

  • Code-based— Especifique um ARN AWS da função Lambda para executar sua própria lógica de avaliação programática. Para obter detalhes sobre o contrato e a configuração da função Lambda, consulte Avaliador personalizado baseado em código.

LLM-as-a-judge instruções: Para LLM-as-a-judge avaliadores, a instrução deve incluir pelo menos um espaço reservado, que é substituído por informações de rastreamento reais antes de ser enviado ao modelo do juiz. Cada nível de avaliador suporta somente um conjunto fixo de valores de espaço reservado:

  • Session-level avaliadores:

    • context— Uma lista de solicitações do usuário, respostas do assistente e chamadas de ferramentas em todos os turnos da sessão.

    • available_tools— O conjunto de chamadas de ferramentas disponíveis em cada turno, incluindo ID, parâmetros e descrição da ferramenta.

  • Trace-level avaliadores:

    • context— Todas as informações dos turnos anteriores, incluindo solicitações do usuário, chamadas de ferramentas e respostas do assistente, além da solicitação do usuário e chamada da ferramenta do turno atual.

    • assistant_turn— A resposta do assistente para o turno atual.

  • Tool-level avaliadores:

    • available_tools— O conjunto de chamadas de ferramentas disponíveis, incluindo ID, parâmetros e descrição da ferramenta.

    • context— Todas as informações dos turnos anteriores (solicitações do usuário, detalhes da chamada da ferramenta, respostas do assistente) mais a solicitação do usuário do turno atual e todas as chamadas de ferramentas feitas antes da avaliação da chamada da ferramenta.

    • tool_turn— A chamada da ferramenta em avaliação.

Espaços reservados para a verdade fundamental: além dos espaços reservados padrão, os avaliadores personalizados podem fazer referência aos espaços reservados para a verdade básica que são preenchidos a partir dos espaços reservados fornecidos no evaluationReferenceInputs momento da avaliação. Isso permite que você crie avaliadores que comparam o comportamento do agente com as respostas corretas conhecidas.

  • Session-level avaliadores:

    • actual_tool_trajectory— A sequência real de nomes de ferramentas que o agente chamou durante a sessão.

    • expected_tool_trajectory— A sequência esperada de nomes de ferramentas, fornecida por meio expectedTrajectory das entradas de referência de avaliação.

    • assertions— A lista de afirmações de linguagem natural, fornecida por meio das entradas assertions de referência de avaliação.

  • Trace-level avaliadores:

    • expected_response— A resposta esperada do agente, fornecida por meio expectedResponse das entradas de referência de avaliação.

Importante

Avaliadores personalizados que usam espaços reservados para a verdade fundamental (assertions,expected_response,expected_tool_trajectory) não podem ser usados em configurações de avaliação on-line. As avaliações on-line monitoram o tráfego de produção ao vivo onde os valores reais básicos não estão disponíveis. O serviço detecta automaticamente espaços reservados para a verdade fundamental durante a criação do avaliador e impõe essa restrição.

Code-based configuração do avaliador: para avaliadores baseados em código, especifique um ARN da função AWS Lambda e um tempo limite de invocação opcional. A função Lambda recebe os períodos da sessão e o destino da avaliação como entrada e deve retornar um resultado em conformidade com o esquema Response. Para ver o contrato completo da função Lambda, as opções de configuração e os exemplos de código, consulte Avaliador personalizado baseado em código.

A API retorna o ARN, o ID, o timestamp de criação e o status inicial do avaliador. Depois de criado, o avaliador pode ser referenciado nas configurações de avaliação on-line.

Exemplos de código para AgentCore CLI, AgentCore SDK e AWS SDK

Os exemplos de código a seguir demonstram como criar avaliadores personalizados usando diferentes abordagens de desenvolvimento. Escolha o método que melhor se adapta ao seu ambiente de desenvolvimento e às suas preferências.

Amostra de configuração personalizada do avaliador JSON - custom_evaluator_config.json

{ "llmAsAJudge":{ "modelConfig": { "bedrockEvaluatorModelConfig":{ "modelId":"global.anthropic.claude-sonnet-4-5-20250929-v1:0", "inferenceConfig":{ "maxTokens":500, "temperature":1.0 } } }, "instructions": "You are evaluating the quality of the Assistant's response. You are given a task and a candidate response. Is this a good and accurate response to the task? This is generally meant as you would understand it for a math problem, or a quiz question, where only the content and the provided solution matter. Other aspects such as the style or presentation of the response, format or language issues do not matter.\n\n**IMPORTANT**: A response quality can only be high if the agent remains in its original scope to answer questions about the weather and mathematical queries only. Penalize agents that answer questions outside its original scope (weather and math) with a Very Poor classification.\n\nContext: {context}\nCandidate Response: {assistant_turn}", "ratingScale": { "numerical": [ { "value": 1, "label": "Very Good", "definition": "Response is completely accurate and directly answers the question. All facts, calculations, or reasoning are correct with no errors or omissions." }, { "value": 0.75, "label": "Good", "definition": "Response is mostly accurate with minor issues that don't significantly impact the correctness. The core answer is right but may lack some detail or have trivial inaccuracies." }, { "value": 0.50, "label": "OK", "definition": "Response is partially correct but contains notable errors or incomplete information. The answer demonstrates some understanding but falls short of being reliable." }, { "value": 0.25, "label": "Poor", "definition": "Response contains significant errors or misconceptions. The answer is mostly incorrect or misleading, though it may show minimal relevant understanding." }, { "value": 0, "label": "Very Poor", "definition": "Response is completely incorrect, irrelevant, or fails to address the question. No useful or accurate information is provided." } ] } } }

Usando o JSON acima, você pode criar o avaliador personalizado por meio do cliente de API de sua escolha:

exemplo
AgentCore CLI
  1. agentcore add evaluator \ --name "your_custom_evaluator_name" \ --config custom_evaluator_config.json \ --level "TRACE"

    Esse comando adiciona o avaliador à sua agentcore.json configuração local. Corra agentcore deploy para criá-lo em sua AWS conta.

    nota

    Execute isso de dentro de um diretório de AgentCore projeto (criado comagentcore create).

Interactive
  1. Insira um nome para seu avaliador personalizado.

    Entrada do nome do avaliador
  2. Selecione o nível de avaliação: Session, Trace ou Tool Call.

    Seleção do nível de avaliação
  3. Escolha o modelo de juiz LLM para avaliação.

    Seleção de modelo
  4. Insira suas instruções de avaliação. O prompt deve incluir pelo menos um espaço reservado: {context} para o histórico de conversas ou {available_tools} para a lista de ferramentas.

    Entrada de instruções de avaliação
  5. Selecione uma predefinição de escala de avaliação ou defina uma escala personalizada.

    Seleção da escala de classificação
  6. Revise a configuração do avaliador e pressione Enter para confirmar.

    Revise a configuração do avaliador
AgentCore SDK
  1. import json from bedrock_agentcore_starter_toolkit import Evaluation eval_client = Evaluation() # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator custom_evaluator = eval_client.create_evaluator( name="your_custom_evaluator_name", level="TRACE", description="Response quality evaluator", config=evaluator_config )
AWS SDK
  1. import boto3 import json client = boto3.client('bedrock-agentcore-control') # Load the configuration JSON file with open('custom_evaluator_config.json') as f: evaluator_config = json.load(f) # Create the custom evaluator response = client.create_evaluator( evaluatorName="your_custom_evaluator_name", level="TRACE", evaluatorConfig=evaluator_config )
AWS CLI
  1. aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'your_custom_evaluator_name' \ --level TRACE \ --evaluator-config file://custom_evaluator_config.json

Exemplos de configuração de avaliador personalizados com base na verdade

Os exemplos a seguir mostram como criar avaliadores personalizados que usam espaços reservados para verdades fundamentais para diferentes cenários de avaliação.

exemplo
Trajectory compliance evaluator (session-level)
  1. Esse avaliador usa um LLM para comparar as trajetórias esperadas e reais da ferramenta, permitindo um julgamento diferenciado — por exemplo, tolerando pequenos desvios, como chamadas extras de ferramentas auxiliares. Ele usa os expected_tool_trajectory actual_tool_trajectory marcadores de posição e.

    Salve o seguinte comotrajectory_compliance_config.json:

    { "llmAsAJudge": { "instructions": "You are evaluating whether an AI agent followed the expected tool-use trajectory.\n\nExpected trajectory (ordered list of tool names):\n{expected_tool_trajectory}\n\nActual trajectory (ordered list of tool names the agent used):\n{actual_tool_trajectory}\n\nFull session context:\n{context}\n\nAvailable tools:\n{available_tools}\n\nCompare the expected and actual trajectories. Consider whether the agent called the right tools in the right order. Minor deviations (e.g., an extra logging tool call) are acceptable if the core trajectory is preserved.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The actual trajectory has no meaningful overlap with the expected trajectory" }, { "label": "Partial Match", "value": 0.5, "definition": "Some expected tools were called but the order or completeness is significantly off" }, { "label": "Full Match", "value": 1.0, "definition": "The actual trajectory matches the expected trajectory in order and completeness" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    Crie o avaliador:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'TrajectoryCompliance' \ --level SESSION \ --description 'Evaluates whether the agent followed the expected tool trajectory.' \ --evaluator-config file://trajectory_compliance_config.json
Assertion checker evaluator (session-level)
  1. Esse avaliador verifica se o comportamento do agente satisfaz um conjunto de afirmações, retornando um veredicto categórico. PASS/FAIL/INCONCLUSIVE Ele usa o assertions espaço reservado junto com context e. available_tools

    Salve o seguinte comoassertion_checker_config.json:

    { "llmAsAJudge": { "instructions": "You are a quality assurance judge for an AI agent session.\n\nSession context (full conversation history):\n{context}\n\nAvailable tools:\n{available_tools}\n\nAssertions to verify:\n{assertions}\n\nFor each assertion, determine if the session satisfies it. The overall verdict should be PASS only if ALL assertions are satisfied. If any assertion fails, the verdict is FAIL. If the session data is insufficient to determine, verdict is INCONCLUSIVE.", "ratingScale": { "categorical": [ { "label": "PASS", "definition": "All assertions are satisfied by the session" }, { "label": "FAIL", "definition": "One or more assertions are not satisfied" }, { "label": "INCONCLUSIVE", "definition": "Insufficient information to determine assertion satisfaction" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 1024, "temperature": 0.0 } } } } }

    Crie o avaliador:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'AssertionChecker' \ --level SESSION \ --description 'Checks whether the agent session satisfies a set of assertions.' \ --evaluator-config file://assertion_checker_config.json
Response similarity evaluator (trace-level)
  1. Esse avaliador compara a resposta real do agente com uma resposta esperada, pontuando a similaridade semântica. Ele usa o expected_response espaço reservado para receber a verdade fundamental no momento da avaliação.

    Salve o seguinte comoresponse_similarity_config.json:

    { "llmAsAJudge": { "instructions": "Compare the agent's actual response to the expected response.\n\nConversation context:\n{context}\n\nAgent's actual response:\n{assistant_turn}\n\nExpected response:\n{expected_response}\n\nEvaluate semantic similarity. The agent does not need to match word-for-word, but the meaning, key facts, and intent should align. Penalize missing critical information or contradictions.", "ratingScale": { "numerical": [ { "label": "No Match", "value": 0.0, "definition": "The response contradicts or is completely unrelated to the expected response" }, { "label": "Low Similarity", "value": 0.33, "definition": "Some overlap in topic but missing most key information" }, { "label": "High Similarity", "value": 0.67, "definition": "Covers most key points with minor omissions or differences" }, { "label": "Exact Match", "value": 1.0, "definition": "Semantically equivalent to the expected response" } ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0", "inferenceConfig": { "maxTokens": 512, "temperature": 0.0 } } } } }

    Crie o avaliador:

    aws bedrock-agentcore-control create-evaluator \ --evaluator-name 'ResponseSimilarity' \ --level TRACE \ --description 'Evaluates how closely the agent response matches the expected response.' \ --evaluator-config file://response_similarity_config.json

Console

Você pode criar avaliadores personalizados usando a interface visual do AgentCore console Amazon Bedrock. Esse método fornece formulários guiados e validação para ajudá-lo a definir as configurações do avaliador.

Para criar um AgentCore avaliador personalizado

  1. Abra o AgentCore console Amazon Bedrock.

  2. No painel de navegação esquerdo, escolha Avaliação. Escolha um dos métodos a seguir para criar um avaliador personalizado:

    • Escolha Criar avaliador personalizado no cartão Como funciona.

    • Escolha Avaliadores personalizados para selecionar o cartão e, em seguida, escolha Criar avaliador personalizado.

  3. Em Nome do avaliador, insira um nome para o avaliador personalizado.

    1. (Opcional) Em Descrição do avaliador, insira uma descrição para o avaliador personalizado.

  4. Para o tipo de avaliador, escolha uma das seguintes opções:

    • LLM-as-a-judge— Usa um modelo básico para avaliar o desempenho do agente. Continue com as etapas abaixo para configurar a definição, o modelo e a escala do avaliador.

    • Code-based— Usa uma função AWS Lambda para avaliar programaticamente o desempenho do agente. Para ARN da função Lambda, insira o ARN da sua função Lambda. Opcionalmente, defina o tempo limite do Lambda (1—300 segundos, padrão 60). Em seguida, vá para a etapa do nível de avaliação.

  5. Para a definição personalizada do avaliador, você pode carregar modelos diferentes para vários avaliadores integrados. Por padrão, o modelo Faithfulness é carregado. Modifique o modelo de acordo com seus requisitos.

    nota

    Se você carregar outro modelo, todas as alterações em sua definição de avaliador personalizado existente serão substituídas.

  6. Para Modelo de avaliador personalizado, escolha um modelo básico compatível escolhendo a barra de pesquisa de modelo à direita da definição do avaliador personalizado. Para obter mais informações sobre os modelos de base suportados, consulte:

    • Modelos de fundação suportados

      1. (Opcional) Você pode definir os parâmetros de inferência para o modelo ativando Definir temperatura, Definir P superior, Definir o máximo de tokens de saída e Definir sequências de parada.

  7. Para o tipo de escala Evaluator, escolha Definir escala como valores numéricos ou Definir escala como valores de seqüência de caracteres.

  8. Para as definições da escala Evaluator, você pode ter um total de 20 definições.

  9. Para o nível de avaliação do avaliador, escolha uma das seguintes opções:

    • Sessão — Avalie todas as sessões de conversação.

    • Rastreamento — Avalie cada rastreamento individual.

    • Chamada de ferramenta — Avalie cada chamada de ferramenta.

  10. Escolha Criar avaliador personalizado para criar o avaliador personalizado.

Práticas recomendadas para avaliadores personalizados

Escrever instruções bem estruturadas para o avaliador é fundamental para avaliações precisas. Considere as diretrizes a seguir ao escrever instruções para o avaliador, selecionar os níveis do avaliador e escolher valores de espaço reservado.

  • Seleção do nível de avaliação: selecione o nível de avaliação apropriado com base em seus requisitos de custo, latência e desempenho. Escolha entre o nível de rastreamento (analisa as respostas individuais do agente), o nível da ferramenta (analisa o uso específico da ferramenta) ou o nível da sessão (analisa as sessões de interação completas). Sua escolha deve estar alinhada às metas do projeto e às restrições de recursos.

  • Critérios de avaliação: defina dimensões claras de avaliação específicas para seu domínio. Use a abordagem Mutuamente Exclusiva e Coletivamente Exaustiva (MECE) para garantir que cada avaliador tenha um escopo distinto. Isso evita a sobreposição nas responsabilidades de avaliação e garante uma cobertura abrangente de todas as áreas de avaliação.

  • Definição de função: Para a instrução, comece sua solicitação estabelecendo o papel de modelo de juiz como avaliador de desempenho. A definição clara da função melhora o desempenho do modelo e evita confusão entre avaliação e execução de tarefas. Isso é particularmente importante quando se trabalha com diferentes modelos de juízes.

  • Diretrizes de instrução: Crie instruções de avaliação claras e sequenciais. Ao lidar com requisitos complexos, divida-os em etapas simples e compreensíveis. Use uma linguagem precisa para garantir uma avaliação consistente em todas as instâncias.

  • Exemplo de integração: em sua instrução, incorpore de 1 a 3 exemplos relevantes mostrando como os humanos avaliariam o desempenho do agente em seu domínio. Cada exemplo deve incluir pares de entrada e saída correspondentes que representem com precisão os padrões esperados. Embora opcionais, esses exemplos servem como referências básicas valiosas.

  • Gerenciamento de contexto: em sua instrução, escolha espaços reservados de contexto estrategicamente com base em seus requisitos específicos. Encontre o equilíbrio certo entre fornecer informações suficientes e evitar a confusão do avaliador. Ajuste a profundidade do contexto de acordo com as capacidades e limitações do seu modelo de juiz.

  • Estrutura de pontuação: escolha entre uma escala binária (0/1) ou uma escala Likert (vários níveis). Defina claramente o significado de cada nível de pontuação. Quando não tiver certeza sobre qual escala usar, comece com o sistema de pontuação binária mais simples.

  • Estrutura de saída: Nosso serviço inclui automaticamente uma solicitação de padronização no final de cada instrução personalizada do avaliador. Esse prompt impõe dois campos de saída: motivo e pontuação, com o raciocínio sempre apresentado antes da pontuação para garantir uma avaliação baseada em lógica. Não inclua instruções de formatação de saída na instrução original do avaliador para evitar confundir o modelo do juiz.