Rubriek evaluators (preview)

Important

Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor meer informatie.

Een rubrieks evaluator beoordeelt een agent of modelreactie op aangepaste, gewogen criteria die u definieert, met behulp van een LLM als rechter. Het geeft u volledige controle over wat 'goed' betekent voor uw use-case terwijl u dat oordeel consistent op schaal toepast.

Een rubriek is een set criteria waarmee wordt gedefinieerd hoe het antwoord moet worden beoordeelt. Elke rubriek bevat scoredimensies; elke dimensie heeft een beschrijving van wat het meet en een gewicht dat het relatieve belang weerspiegelt. De LLM-rechter beoordeelt elke toepasselijke dimensie van 1 tot 5 op één antwoord of een gesprek met meerdere paden. De algehele rubrieksscore is het gewogen gemiddelde van deze scores, genormaliseerd tot een bereik van 0-1.

Gebruik rubric evaluators als primaire meting van agentkwaliteit, omdat u hiermee de exacte criteria kunt uitdrukken die voor uw use-case van belang zijn. Koppel ze met ingebouwde evaluators voor veiligheid, aarding en inhoudsschade om risico's te dekken die de rubriek niet meet. In de rest van dit artikel wordt beschreven hoe u een rubriek genereert, welke velden het bevat, hoe u een LLM-rechtermodel kiest en hoe u de resultaten kunt bekijken.

Een rubrieks evaluator genereren

U kunt op twee manieren een rubriek-evaluator maken:

U kunt automatisch een rubriek-evaluator maken door een LLM-model te selecteren om de rubriek te genereren op basis van de context van uw agent. Geef ten minste een van de volgende basisinvoeren op:

  • Foundry-agent : selecteer een bestaande Foundry-agent. De service haalt de instructies van de agent (voor promptagenten) of de beschrijving (voor gehoste agents) op die moeten worden gebruikt als de context van de generatie.
  • Agentsysteemprompt : plak de instructies die het beoogde gedrag van uw agent definiëren. Gebruik deze optie wanneer de agent niet is geregistreerd in Foundry of wanneer de geregistreerde context het gedrag ervan niet volledig vastlegt.
  • Referentiebestanden : documenten, knowledge base-inhoud of domeinrichtlijnen die de context van uw agent en de verwachte responskwaliteit beschrijven.

Voor de beste resultaten voegt u agentproductietraceringen toe boven op elke bovenstaande basisinvoer om de rubriek in echt gebruik te gronden:

  • Traceringen : productietraceringen van agents die zijn verzameld uit Foundry-tracering in Application Insights. Traceringen kunnen niet alleen worden gebruikt; koppel ze aan een Foundry-agent, een agentsysteemprompt of referentiebestanden.

Elke gegenereerde rubriek bevat de volgende velden:

Veld Description
id Stabiele, door de mens leesbare slug toegewezen door de service op de eerste generatie. Wanneer u criteria bewerkt en opslaat als een nieuwe versie, echot u de bestaande id versie om identiteit in verschillende versies te behouden. De service kent geen id's opnieuw toe bij bewerking.
description Wat dit criterium meet, een duidelijke, specifieke kwaliteitsdimensie.
weight Relatief belang van het criterium. De generatiepijplijn wijst precies één criterium toe met een gewicht van 8-10 (de meest resultaatdefigeerde dimensie) en alle andere 1-6. Gebruikersbewerkingen worden niet beperkt door deze heuristiek.
always_applicable Wanneer true, beoordeelt de LLM dit criterium altijd ongeacht relevantie (slaat de toepasselijkheidsevaluatie over). Wordt gebruikt voor het algemene kwaliteitscriterium. Wordt standaard ingesteld op false.

Een LLM-rechtermodel kiezen

Niet alle modellen presteren even goed als rubrieksrechters. De volgende tabel bevat de ondersteunde chatmodellen voor het genereren en scoren van rubrieken.

Model Aanbeveling
gpt-5.5 Recommended
gpt-5.4 Recommended
gpt-5.4-mini Aanbevolen : beste balans tussen prestaties en kosten
gpt-5.4-nano Recommended
gpt-5.2 Recommended
gpt-5.1 Recommended
gpt-5 Recommended
gpt-5-mini Recommended
gpt-5-nano Recommended
gpt-4.1 Aanvaardbaar
gpt-4o Aanvaardbaar

Handmatig een rubriek maken

Schrijf uw eigen rubriek door elke dimensie idte definiëren, descriptionen weight. Gebruik deze benadering wanneer u al een rubriek hebt gedefinieerd elders die u in Foundry wilt brengen.

Tip

Begin met het maken van een automatisch gegenereerde rubriek-evaluator en verfijn deze handmatig. Automatisch genereren geeft u een sterke basislijn die u kunt aanpassen aan uw specifieke kwaliteitsnormen.

De rubriek controleren en aanpassen

Nadat u een rubriek hebt gegenereerd of gemaakt, controleert u de dimensies om te bevestigen dat deze voldoen aan uw verwachtingen voor de kwaliteit van de agent. U kunt:

  • Bewerk id, descriptionen weight — Verfijn de taal om specifieker te zijn over wat in aanmerking komt voor elk dimensieniveau. Nauwkeurige beschrijvingen en gewicht verbeteren de scoreconsistentie.
  • Dimensies toevoegen of verwijderen : voeg kwaliteitsdimensies in die van belang zijn voor uw domein of verwijder dimensies die niet van toepassing zijn.
  • Drempelwaarden aanpassen : stel de drempelwaarde in om te bepalen welke algehele score in aanmerking komt als geslaagd. Waarden variëren van 0,0 tot 1.0, waarbij 1,0 de hoogste score is. Verhoog de drempelwaarde voor een strengere kwaliteitsnorm of verlaag deze om meer permissief te zijn.
  • Altijd van toepassing instellen : schakel het selectievakje Altijd van toepassing in of uit voor een criterium. Wanneer deze optie is geselecteerd, beoordeelt de LLM dit criterium voor elk antwoord zonder eerst de relevantie te controleren.

In de geavanceerde instellingen voor elke rubriek kunt u ook het evaluatieniveau en de categorie voor deze rubrieken bekijken.

Herhalen op de rubriek totdat het betrouwbaar onderscheid maakt tussen acceptabele en onacceptabele agentreacties. Voer een kleine evaluatie uit op een voorbeeldgegevensset om te controleren of de rubrieksscores overeenkomen met uw eigen beoordeling voordat u deze op schaal gebruikt.

Voorbeeldrubriek

In het volgende voorbeeld ziet u een rubriek voor een restaurantreserveringsagent. Elk criterium is gericht op een specifieke kwaliteitsdimensie, met gewichten die het relatieve belang weerspiegelen:

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

In deze rubriek intent_recognition heeft het hoogste gewicht (9) omdat het correct identificeren van wat de gebruiker wil, de meest uitkomst-beslissende factor is. Het general_quality criterium gebruikt zodat always_applicable: true de rechter het voor elk antwoord beoordeelt, zelfs als andere criteria mogelijk niet van toepassing zijn.

Rubriek evaluators gebruiken om evaluatie uit te voeren

Rubrieken-evaluators werken goed voor domeinspecifieke of organisatiespecifieke kwaliteitscriteria die algemene evaluators niet kunnen vastleggen. Definieer een rubriek wanneer u scoren nodig hebt die overeenkomt met de specifieke kwaliteitsnormen van uw team, bijvoorbeeld toon van klantondersteuning, medische nauwkeurigheid of juridische naleving.

De LLM-rechter leest de rubriek, onderzoekt de toegewezen invoergegevens, wijst een score toe en geeft een reden voor de beoordelingsbeslissing. Deze benadering combineert de flexibiliteit van aangepaste criteria met de consistentie van op LLM gebaseerde evaluatie.

Zie Evaluaties uitvoeren vanuit de SDK voor meer informatie over het uitvoeren van evaluaties en het configureren van gegevensbronnen.

Zie sample_rubric_evaluator_generation_basic.py voor een voorbeeld dat kan worden uitgevoerd. Zie de README-voorbeelden voor evaluaties voor aanvullende rubrieken (genereren van alle bronnen, iteratieve bewerking, volledige levenscyclus en handmatig ontwerpen).

Voorbeelduitvoer

De rubriek-evaluator retourneert een gewogen score voor elke dimensie, een algehele score, een label voor slagen/mislukken en een reden om de beslissing uit te leggen. De standaarddrempelwaarde is 0,5. Scores op of boven de drempelwaarde worden beschouwd als doorgeven.

Voorbeeld van pass

In dit voorbeeld vraagt een gebruiker om vrijdag om 19:30 om 19:30 uur om 4 uur een tabel te reserveren. De agent identificeert de reserveringsintentie correct, roept het reserveringsprogramma aan met geldige parameters en bevestigt de reservering:

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

Voorbeeld van mislukte bewerking

In dit voorbeeld vraagt een gebruiker om een tabel te reserveren voor 12 personen op zaterdag. De maximale partijgrootte is 8, maar de agent gaat toch boeken zonder de beleidsschending te markeren:

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

Elk uitvoeritem bevat scores per dimensie met redenen. Dimensies die zijn gemarkeerd "applicable": false , worden overgeslagen en dragen niet bij aan de algehele score. De algehele score is een gewogen gemiddelde van alle toepasselijke dimensiescores, genormaliseerd tot een bereik van 0-1.

Opmerking

Rubric evaluators gebruiken LLM-as-judge scoring en kosten voor modeldeductie per evaluatieoproep. Scorebetrouwbaarheid kan variëren voor zeer korte antwoorden. Schrijf rubriekbeschrijvingen die specifiek en ondubbelzinnig zijn om de scoreconsistentie tussen evaluaties te verbeteren.

Continue evaluatie met rubrieken evaluators instellen

Zodra uw rubriek-evaluator betrouwbaar uw kwaliteitsnormen weerspiegelt, configureert u deze voor continue en geplande evaluatie in Monitor-instellingen. Continue evaluatie voert de rubriek automatisch uit tegen nieuw agentverkeer, zodat u kwaliteitsregressies in productie kunt vangen terwijl ze plaatsvinden, zonder handmatige uitvoeringen te activeren.

Zie Agents bewaken in het dashboard voor installatiestappen.