Avaliadores rubricos (versão prévia)

Importante

Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.

Um avaliador de rubrica pontua uma resposta de agente ou modelo em relação a critérios personalizados e ponderados que você define, usando uma LLM como juiz. Ele lhe dá controle total sobre o que "bom" significa para o seu caso de uso ao aplicar esse julgamento consistentemente em escala.

Uma rubrica é um conjunto de critérios que define como classificar a resposta. Cada rubrica contém dimensões de pontuação; cada dimensão tem uma descrição do que mede e um peso que reflete sua importância relativa. O juiz llm pontua cada dimensão aplicável de 1 a 5 em uma única resposta ou conversa de vários turnos. A pontuação rubrica geral é a média ponderada dessas pontuações, normalizada para um intervalo de 0 a 1.

Use os avaliadores de rubrica como sua principal medida de qualidade do agente, pois eles permitem que você expresse os critérios exatos que importam para seu caso de uso. Emparelhe-os com avaliadores internos para segurança, aterramento e danos de conteúdo para cobrir riscos que a rubrica não mede. O restante deste artigo descreve como gerar uma rubrica, os campos que ele contém, como escolher um modelo de juiz LLM e como examinar os resultados.

Gerar um avaliador de rubrica

Você pode criar um avaliador de rubrica de duas maneiras:

Você pode criar automaticamente um avaliador de rubrica selecionando um modelo LLM para gerar a rubrica do contexto do agente. Forneça pelo menos uma das seguintes entradas base:

  • Agente de fundimento – selecione um agente do Foundry existente. O serviço extrai as instruções do agente (para agentes de prompt) ou sua descrição (para agentes hospedados) a serem usadas como o contexto de geração.
  • Prompt do sistema do agente – cole as instruções que definem o comportamento pretendido do agente. Use isso quando o agente não estiver registrado na Foundry ou quando o contexto registrado não capturar totalmente seu comportamento.
  • Arquivos de referência – Documentos, conteúdo da base de dados de conhecimento ou diretrizes de domínio que descrevem o contexto do agente e a qualidade de resposta esperada.

Para obter melhores resultados, adicione rastreamentos de produção do agente sobre qualquer entrada base acima para aterrar a rubrica em uso real:

  • Rastreamentos – Rastreamentos de produção do agente coletados do rastreamento do Foundry no Application Insights. Os rastreamentos não podem ser usados sozinhos; emparelhe-os com um agente do Foundry, um prompt do sistema de agente ou arquivos de referência.

Cada rubrica gerada contém os seguintes campos:

Campo Description
id Lesma estável e legível por humanos atribuída pelo serviço na primeira geração. Ao editar critérios e salvar como uma nova versão, ecoe o existente id para preservar a identidade entre versões. O serviço não reatribui IDs na edição.
description O que esse critério mede: uma dimensão de qualidade clara e específica.
weight Importância relativa do critério. O pipeline de geração atribui exatamente um critério a um peso de 8 a 10 (a dimensão mais decisiva do resultado) e todos os outros 1 a 6. As edições de usuário não são restritas por essa heurística.
always_applicable Quando true, o juiz llm sempre pontua esse critério independentemente da relevância (ignora a avaliação de aplicabilidade). Usado para o critério de qualidade geral. Usa false como padrão.

Escolher um modelo de juiz LLM

Nem todos os modelos funcionam igualmente como juízes rubricos. A tabela a seguir lista os modelos de chat com suporte para geração e pontuação de rubrica.

Modelo Recomendação
gpt-5.5 Recomendado
gpt-5.4 Recomendado
gpt-5.4-mini Recomendado – melhor equilíbrio de desempenho e custo
gpt-5.4-nano Recomendado
gpt-5.2 Recomendado
gpt-5.1 Recomendado
gpt-5 Recomendado
gpt-5-mini Recomendado
gpt-5-nano Recomendado
gpt-4.1 Aceitável
gpt-4o Aceitável

Criar manualmente uma rubrica

Escreva sua própria rubrica definindo as dimensões iddescriptione weight. Use essa abordagem quando você já tiver uma rubrica definida em outro lugar que você deseja trazer para o Foundry.

Dica

Comece criando um avaliador de rubrica gerado automaticamente e refina-o manualmente. A geração automática oferece uma linha de base forte que você pode ajustar para atender aos seus padrões de qualidade específicos.

Examinar e ajustar a rubrica

Depois de gerar ou criar uma rubrica, examine as dimensões para confirmar que elas correspondem às suas expectativas de qualidade do agente. É possível:

  • Editar ide descriptionweight – Refinar o idioma para ser mais específico sobre o que se qualifica para cada nível de dimensão. Descrições precisas e peso melhoram a consistência da pontuação.
  • Adicionar ou remover dimensões — insira dimensões de qualidade importantes para seu domínio ou remova as que não se aplicam.
  • Ajustar limites — defina o limite de passagem para controlar o que a pontuação geral se qualifica como passagem. Os valores variam de 0,0 a 1,0, em que 1,0 é a pontuação mais alta. Aumente o limite para um padrão de qualidade mais rigoroso ou diminua-o para ser mais permissivo.
  • Definir sempre aplicável — selecione ou desmarque a caixa de seleção Sempre aplicável para um critério. Quando selecionado, o juiz llm pontua esse critério para cada resposta sem verificar a relevância primeiro.

Nas configurações avançadas para cada rubrica, você também pode exibir o nível de avaliação e a categoria desse avaliador de rubrica.

Itera na rubrica até distinguir de forma confiável entre respostas aceitáveis e inaceitáveis do agente. Execute uma pequena avaliação em um conjunto de dados de exemplo para validar que as pontuações rubricas se alinham com seu próprio julgamento antes de usá-la em escala.

Rubrica de exemplo

O exemplo a seguir mostra uma rubrica para um agente de reserva de restaurante. Cada critério tem como destino uma dimensão de qualidade específica, com pesos que refletem a importância relativa:

[
  {
    "id": "intent_recognition",
    "description": "Correctly identifies the user's reservation intent (book, modify, cancel, inquire) and pursues the appropriate workflow without unnecessary clarification.",
    "weight": 9
  },
  {
    "id": "tool_usage_accuracy",
    "description": "Calls the correct tool with correct parameters. Does not call tools unnecessarily, and does not skip tool calls when they are needed.",
    "weight": 6
  },
  {
    "id": "policy_enforcement",
    "description": "Enforces business rules: dinner service 17:00-22:00, max party size 8, 30-day booking window. Does not create reservations that violate these constraints.",
    "weight": 5
  },
  {
    "id": "information_gathering",
    "description": "Collects all required information (date, time, party size, contact) before attempting to create a reservation. Does not ask for information already provided.",
    "weight": 4
  },
  {
    "id": "communication_clarity",
    "description": "Provides clear, concise responses. Confirms reservation details before finalizing. Uses a professional and helpful tone.",
    "weight": 2
  },
  {
    "id": "general_quality",
    "description": "Other important quality factors not already covered by the listed criteria.",
    "weight": 5,
    "always_applicable": true
  }
]

Nessa rubrica, intent_recognition tem o peso mais alto (9) porque identificar corretamente o que o usuário deseja é o fator mais decisivo para o resultado. O general_quality critério é always_applicable: true usado para que o juiz o marque para cada resposta, mesmo quando outros critérios podem não se aplicar.

Usar avaliadores de rubrica para executar a avaliação

Os avaliadores rubricos funcionam bem para critérios de qualidade específicos do domínio ou específicos da organização que os avaliadores de uso geral não podem capturar. Defina uma rubrica quando precisar de pontuação que reflita os padrões de qualidade específicos da sua equipe, por exemplo, tom de suporte ao cliente, precisão médica ou conformidade legal.

O juiz llm lê a rubrica, examina os dados de entrada mapeados, atribui uma pontuação e fornece um motivo para sua decisão de pontuação. Essa abordagem combina a flexibilidade dos critérios personalizados com a consistência da avaliação baseada em LLM.

Para obter detalhes sobre como executar avaliações e configurar fontes de dados, consulte Executar avaliações do SDK.

Para obter um exemplo executável, consulte sample_rubric_evaluator_generation_basic.py. Para obter exemplos de rubrica adicionais (geração de todas as fontes, edição iterativa, ciclo de vida completo e criação manual), consulte os exemplos de avaliações README.

Saída de exemplo

O avaliador de rubrica retorna uma pontuação ponderada para cada dimensão, uma pontuação geral, um rótulo de aprovação/falha e um motivo que explica a decisão. O limite de aprovação padrão é 0,5. Pontuações acima ou acima do limite são consideradas passagens.

Exemplo de passagem

Neste exemplo, um usuário pede para reservar uma tabela para 4 na sexta-feira às 19h30. O agente identifica corretamente a intenção de reserva, chama a ferramenta de reserva com parâmetros válidos e confirma a reserva:

{
  "score": 0.9419354839,
  "label": "pass",
  "reason": "The verdict is driven most by intent_recognition (5), tool_usage_accuracy (5), and policy_enforcement (5). The assistant correctly identified the booking intent, called the reservation tool with valid parameters (Friday 7:30 PM, party of 4), and returned a clear confirmation with the reservation details.",
  "threshold": 0.5,
  "passed": true,
  "properties": {
    "dimension_scores": [
      {
        "id": "intent_recognition",
        "score": 5,
        "applicable": true,
        "weight": 9,
        "reason": "The user's request to book a table is correctly identified, and the assistant pursues the booking workflow without unnecessary clarification."
      },
      {
        "id": "tool_usage_accuracy",
        "score": 5,
        "applicable": true,
        "weight": 6,
        "reason": "The reservation tool is called once with the correct date, time, and party size parameters derived from the user's request."
      },
      {
        "id": "policy_enforcement",
        "score": 5,
        "applicable": true,
        "weight": 5,
        "reason": "The reservation falls within dinner service hours, the party size is within the maximum of 8, and the date is within the 30-day booking window."
      },
      {
        "id": "information_gathering",
        "score": 4,
        "applicable": true,
        "weight": 4,
        "reason": "All required information (date, time, party size, contact) is captured from the request without asking for details already provided."
      },
      {
        "id": "communication_clarity",
        "score": 5,
        "applicable": true,
        "weight": 2,
        "reason": "The confirmation is concise and includes the reservation date, time, and party size in a single clear message."
      },
      {
        "id": "general_quality",
        "score": 4,
        "applicable": true,
        "weight": 5,
        "reason": "Overall execution is strong: the assistant handles the booking end to end with no unnecessary turns or recovery steps."
      }
    ]
  }
}

Exemplo de falha

Neste exemplo, um usuário pede para reservar uma tabela para 12 pessoas no sábado. O tamanho máximo da parte é 8, mas o agente continua a reservar de qualquer maneira sem sinalizar a violação da política:

{
  "score": 0.3548387097,
  "label": "fail",
  "reason": "The verdict is driven by very low policy_enforcement (1), tool_usage_accuracy (1), and general_quality (1). The user requested a table for 12, which exceeds the maximum party size of 8, but the assistant proceeded to call the reservation tool and confirmed a booking that violates business rules.",
  "threshold": 0.5,
  "passed": false,
  "properties": {
    "dimension_scores": [
      {
        "id": "intent_recognition",
        "score": 3,
        "applicable": true,
        "weight": 9,
        "reason": "The booking intent is identified, but the assistant fails to flag that the requested party size cannot be accommodated under business rules."
      },
      {
        "id": "tool_usage_accuracy",
        "score": 1,
        "applicable": true,
        "weight": 6,
        "reason": "The reservation tool is called with a party size that the business rules prohibit, producing an invalid booking."
      },
      {
        "id": "policy_enforcement",
        "score": 1,
        "applicable": true,
        "weight": 5,
        "reason": "The 8-person maximum party size is not enforced; the assistant should have declined or offered to split the party before attempting to book."
      },
      {
        "id": "information_gathering",
        "score": 2,
        "applicable": true,
        "weight": 4,
        "reason": "The assistant collected the party size and date but did not confirm a specific time, leaving required information incomplete."
      },
      {
        "id": "communication_clarity",
        "score": 2,
        "applicable": true,
        "weight": 2,
        "reason": "The final confirmation message is clear in form, but it asserts a booking that the system shouldn't have allowed, creating a misleading outcome."
      },
      {
        "id": "general_quality",
        "score": 1,
        "applicable": true,
        "weight": 5,
        "reason": "Overall quality is poor: the assistant violates a core business rule without warning the user or recovering, undermining trust in the booking outcome."
      }
    ]
  }
}

Cada item de saída inclui pontuações por dimensão com motivos. As dimensões marcadas "applicable": false são ignoradas e não contribuem para a pontuação geral. A pontuação geral é uma média ponderada de todas as pontuações de dimensão aplicáveis, normalizada para um intervalo de 0 a 1.

Note

Os avaliadores rubricos usam a pontuação LLM como juiz e incorrem em custos de inferência de modelo por chamada de avaliação. A confiabilidade de pontuação pode variar para respostas muito curtas. Escreva descrições rubricas específicas e inequívocas para melhorar a consistência de pontuação entre avaliações.

Configurar a avaliação contínua com avaliadores rubricos

Depois que o avaliador rubrico refletir de forma confiável seus padrões de qualidade, configure-o para avaliação contínua e agendada nas configurações do Monitor. A avaliação contínua executa a rubrica automaticamente em relação ao tráfego do novo agente, para que você possa capturar regressões de qualidade na produção conforme elas ocorrem , sem disparar execuções manuais.

Para obter as etapas de instalação, consulte Monitor agents in the dashboard.