View a markdown version of this page

Criar avaliador - Base da Amazônia AgentCore

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á.

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_CALL,TRACE, ouSESSION).

Criptografia opcional: você pode especificar a kmsKeyArn para criptografar as instruções e a escala de classificação do avaliador com uma chave KMS gerenciada pelo AWS 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 classificação. Um modelo de juiz executa a lógica de avaliação. O modelo de juiz é um modelo da Amazon Bedrock Foundation, invocado por meio do endpoint Amazon Bedrock Runtime (bedrock-runtime) ou do endpoint Amazon Bedrock Mantle (). bedrock-mantle

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.

Para LLM-as-a-judge avaliadores, especifique o modelo de juiz modelConfig usando um dos seguintes:

  • bedrockEvaluatorModelConfig— Use um modelo no endpoint Amazon Bedrock Runtime ()bedrock-runtime. Especifique o modelId e, opcionalmente, um inferenceConfig com maxTokenstemperature,topP, e. stopSequences

  • responsesEvaluatorModelConfig— Use um modelo no endpoint Amazon Bedrock Mantle (). bedrock-mantle Especifique os modelId parâmetros e, opcionalmente, de inferência. Para ver os endpoints, IDs de modelo e parâmetros de inferência compatíveis de um modelo, consulte seu cartão de modelo no Guia do usuário do Amazon Bedrock, por exemplo, Sol. GPT-5.6

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 reais de rastreamento antes de ser enviado ao modelo de juiz. Cada nível de avaliador suporta somente um conjunto fixo de valores reservados:

  • Session-level avaliadores:

    • context— Uma lista de solicitações de usuários, respostas de assistentes 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 da ferramenta, parâmetros e descrição.

  • 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 da chamada da ferramenta do turno atual.

    • assistant_turn— A resposta do assistente para a curva 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), além da solicitação do usuário do turno atual e todas as chamadas da ferramenta feitas antes da avaliação da chamada da ferramenta.

    • tool_turn— A chamada da ferramenta está sendo avaliada.

    • Espaços reservados para habilidades — Os espaços reservados a seguir são preenchidos somente para chamadas de ferramentas que AgentCore as avaliações identificam como invocações de habilidades. Um avaliador TOOL_CALL personalizado que inclui invoked_skill ou skill_content executa somente em chamadas de ferramentas de invocação de habilidades; outras chamadas de ferramentas na mesma sessão são ignoradas. Para obter detalhes, consulte Avaliadores de habilidades.

      • invoked_skill— O nome da habilidade que o agente carregou nessa chamada de ferramenta.

      • skill_content— O corpo inteiro das SKILL.md instruções da habilidade carregada.

      • available_skills— O catálogo de habilidades que o agente pode escolher em tempo de execução, quando o rastreamento expõe uma. Cada entrada tem um nome e uma descrição. Nem toda estrutura expõe um catálogo; quando o catálogo não está no rastreamento, esse espaço reservado fica vazio.

      • user_message— A solicitação do usuário no turno que acionou a invocação da habilidade.

        nota

        Quando o prompt de um avaliador TOOL_CALL personalizado faz referênciaskill_content, {context} renderiza o contexto completo da sessão — cada turno, do início ao fim da sessão — para que o juiz possa verificar se as etapas prescritas foram realizadas em algum momento após o carregamento da habilidade. Para outros avaliadores TOOL_CALL personalizados, {context} é o instantâneo padrão de pré-chamada.

Espaços reservados para verdades fundamentais: além dos espaços reservados padrão, os avaliadores personalizados podem referenciar espaços reservados para verdades fundamentais que são preenchidos com base nos dados fornecidos no momento da evaluationReferenceInputs avaliação. Isso permite que você crie avaliadores que comparem 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 expectedTrajectory nas entradas de referência de avaliação.

    • assertions— A lista de afirmações de linguagem natural, fornecida assertions nas entradas 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 placeholders de verdade básica (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 os espaços reservados da verdade básica 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 AWS da função Lambda e um tempo limite de invocação opcional. A função Lambda recebe os períodos de sessão e o alvo de 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.

Amostras 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 mais adequado 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." } ] } } }

O exemplo anterior executa o modelo de juiz no endpoint Amazon Bedrock Runtime com. bedrockEvaluatorModelConfig Em vez disso, para executá-lo no endpoint Amazon Bedrock Mantle, substitua o bedrockEvaluatorModelConfig objeto interno por modelConfig um objeto: responsesEvaluatorModelConfig

{ "responsesEvaluatorModelConfig": { "modelId": "openai.gpt-oss-120b", "maxOutputTokens": 500 } }

Para ver os endpoints, IDs de modelo e parâmetros de inferência compatíveis de um modelo, consulte seu cartão de modelo no Guia do usuário do Amazon Bedrock, por exemplo, Sol. GPT-5.6

Usando qualquer uma das configurações, 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 do LLM para avaliação.

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

    Entrada de instruções de avaliação
  5. Selecione uma escala de avaliação predefinida 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 informações básicas

Os exemplos a seguir mostram como criar avaliadores personalizados que usam espaços reservados de verdade básica 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 do 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 definição de avaliador personalizado, 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 compatível escolhendo a barra de pesquisa de modelo à direita da definição do avaliador personalizado. Você pode escolher um modelo Amazon Bedrock Foundation no endpoint Amazon Bedrock Runtime ou no endpoint Amazon Bedrock Mantle. Para obter mais informações sobre os modelos compatíveis, consulte:

    • Modelos compatíveis

      1. (Opcional) Para definir os parâmetros de inferência para o modelo, ative Definir temperatura, Configurar P, Definir tokens de saída máximos e Definir sequências de parada. Os parâmetros de inferência disponíveis dependem do modelo selecionado. Para um modelo de raciocínio, o console fornece Set reasoning effort em vez de Set temperature e Set top P.

  7. Para o tipo de escala do avaliador, escolha Definir escala como valores numéricos ou Definir escala como valores de cadeia de caracteres.

  8. Para definições de escala de avaliador, 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 de avaliação claras e 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 de responsabilidades de avaliação e garante uma cobertura abrangente de todas as áreas de avaliação.

  • Definição da função: Para a instrução, comece sua solicitação estabelecendo a função 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 que mostram 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 um aviso 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.