Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Important
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
azd ai eval Använd tillägget för att lägga till en uppmätt kvalitetsloop till en agent som skapats med Microsoft Foundry. Du sätter upp en utvärdering bredvid ditt projekt, genererar valfritt ett dataset och en utvärderare baserad på en bedömningsmatris, kör utvärderingen mot din agent och läser resultaten utan att lämna terminalen.
Samma utvärdering kan köras från en pipeline, och --fail-on omvandlar dess resultat till en bygggrind.
Den här artikeln beskriver den första utvärderingen med azd ai eval init och azd ai eval run start.
Förutsättningar
- En Azure-prenumeration med åtkomst till Microsoft Foundry.
- Azure Developer CLI (
azd), version 1.27.1 eller senare. Installationsinstruktioner finns i Installera Azure Developer CLI. - Tillägget
azd ai eval:azd extension install azure.ai.evaluations. Körazd extension list --installedför att kontrollera den installerade versionen. - En autentiserad
azd-session. Om du vill kontrollera autentiseringsstatusen kör duazd auth status. Om du inte är inloggad kör duazd auth login. - Rollen
Foundry Userpå Foundry-resursen (hette tidigareAzure AI User). Mer information finns i Rollbaserad åtkomstkontroll för Microsoft Foundry. - Ett Foundry-projekt och en agent som ska utvärderas. För att kunna
initidentifiera målet måste agenten deklareras som en tjänst i projektetsazure.yaml, liksomazd ai agent init. Annars namnger du den med--target. Information om värdbaserade agenter finns i Värdbaserade agenter. - En modelldistribution som stöder chattavslutningar i samma projekt. Bedömarna bedömer med den.
- Valfritt: en JSONL-datauppsättning med representativa exempel, om du inte vill
generatesyntetisera en.
Så här fungerar azd-utvärderingar
En utvärdering beskrivs i en fil, evals/azure.eval.yaml, som du kan läsa, redigera och checka in. Kommandona skriver antingen filen eller agerar på vad den deklarerar.
azd ai eval init # scaffold the configuration. Makes no service calls
azd ai eval generate # optional: synthesize a dataset and a rubric evaluator
azd ai eval create # register the eval in the Foundry project
azd ai eval run start # run it and summarize the results
| Item | Description |
|---|---|
init |
Skapar stommen evals/azure.eval.yaml för en agent och lägger till en tjänst för utvärdering till azure.yaml. Gör inga tjänstanrop. |
generate |
Syntetiserar en datauppsättning, en bedömningsmatrisutvärderare eller båda, laddar ned dem och lägger till en katalogpost för var och en i konfigurationen. Skickar in debiterbara genereringsjobb. |
evals/azure.eval.yaml |
Utvärderingsreceptet: vad utvärderas, var raderna kommer ifrån och vilka utvärderare som bedömer dem. |
create |
Registrerar de deklarerade datauppsättningarna, utvärderarna och själva evalen i projektet. |
run start |
Startar en körning och väntar som standard på att den ska slutföras samt visar en sammanfattning för varje utvärderare. |
run output list |
Resultaten per prov bakom den sammanfattningen. |
dataset, evaluator |
Hantera registrerade datauppsättningar och utvärderare direkt, inklusive versions list. |
job |
Granska, avbryt och ta bort de generationsjobb som generate skickar in. |
Varje kommando accepterar -o json för skript och --debug diagnostik. Alla kommandon utom init accepterar --project-endpoint.
Välj var raderna kommer ifrån
En utvärdering betygsätter rader. De kommer från en av två platser, och detta beslut är det första beslutet:
-
--source tracesutvärderar vad din agent redan har gjort utifrån de spår den genererade. Inget att skriva. -
--source datasetutvärderar en fast uppsättning exempel, antingen dina eller genererade. Repeterbar och jämförbar mellan agentversioner.
Spårningsbaserade utvärderingar behöver en agent som genererar spårningar. Datauppsättningsbaserade utvärderingar behöver en .jsonl fil eller en registrerad datauppsättning.
Skapa en grundstruktur för utvärderingen
Kör init från projektroten:
azd ai eval init
Utan några flaggor upptäcker init agenten när azure.yaml deklarerar en, frågar när den deklarerar flera och frågar vilken modellutrullning bedömarna ska bedöma med och vilka utvärderare som ska användas. Den skriver evals/azure.eval.yaml och lägger till en utvärderingstjänst i azure.yaml. Det gör inga tjänstanrop, så det är säkert att köra innan något distribueras.
I ett projekt som inte deklarerar någon agenttjänst, stannar init snarare än att gissa:
ERROR: this project declares no agent service to evaluate. Add one, or name an existing agent with --target
Namnge agenten själv i så fall med --target.
För skriptad användning skickar du besluten direkt:
azd ai eval init \
--source traces \
--target support-agent \
--judge-model gpt-4.1-nano \
--name support-trace-eval \
--no-prompt
Så här utvärderar du en datauppsättning som du redan har:
azd ai eval init \
--source dataset \
--target support-agent \
--dataset ./tests/support-golden.jsonl \
--evaluator builtin.intent_resolution,builtin.task_adherence \
--judge-model gpt-4.1-nano
--dataset tar en lokal .jsonl sökväg eller namnet på en registrerad datauppsättning.
--evaluator är repeterbar och kommaavgränsad. builtin.<name> refererar till en inbyggd utvärderare och ett namn utan namn refererar till en anpassad utvärderare som är registrerad i projektet. Att skicka --evaluator ersätter standardinställningarna, så det innebär också att generering av kriterier väljs bort.
Så här identifierar du de inbyggda namnen:
azd ai eval evaluator list --builtin
Generera en datauppsättning och en utvärderare
Om du inte har något dataset, eller om du vill ha en bedömningsmatris skriven för den här agenten i stället för en allmän, generera dem:
azd ai eval generate \
--target support-agent \
--generation-model gpt-4.1-nano \
--agent-instruction "Handles support requests. Test triage, policy adherence, and escalation."
Som standard genererar detta både en datauppsättning och en utvärderare för bedömningsmallar, laddar ned dem till evals/ och lägger till en katalogpost för var och en i evals/azure.eval.yaml. Begränsa den med --dataset eller --evaluator för att generera endast en och begränsa raderna med --max-samples (15 till 1 000, standard 15).
generate skickar in jobb som kostar modellanrop. Instruktionen är viktig: det är vad tjänsten använder för att bestämma vad raderna och kriteriet handlar om, så beskriv vad agenten gör och vad som ska testas.
En katalogpost deklarerar artefakten. Den bestämmer inte vilken utvärdering som använder den. Efter generate, öppna evals/azure.eval.yaml och kontrollera att den eval du tänker köra refererar till det som genererades – en eval som baseras på spår läser spår, så en genererad datauppsättning används bara när en eval anger den:
datasets:
- name: support-agent-dataset
source: ./datasets/support-agent-dataset.jsonl
evals:
- name: support-agent-eval
dataset: support-agent-dataset # point the eval at the generated dataset
Så här skickar du jobben och kommer tillbaka senare:
azd ai eval generate --target support-agent --generation-model gpt-4.1-nano --no-wait
azd ai eval job list --dataset
azd ai eval job show <job-id> --dataset
--dataset och --evaluator i job väljer vilken samling åtgärden ska utföras på, och ett av dem måste anges.
Granska azure.eval.yaml
init skriver en fil som du är tänkt att läsa. En spårningsbaserad utvärdering ser ut så här:
evals:
- name: support-trace-eval
description: Basic quality evaluation for support-agent
source:
type: traces
max_traces: 20
agent_name: support-agent
evaluation_level: turn
evaluators:
- evaluator: builtin.task_adherence
initialization_parameters:
model: gpt-4.1-nano
En datauppsättningsbaserad utvärdering namnger datauppsättningen i stället för en spårningskälla och registrerar agenten som den riktar in sig på:
datasets:
- name: support-golden
source: ../tests/support-golden.jsonl
evals:
- name: support-agent-eval
description: Basic quality evaluation for support-agent
dataset: support-golden
evaluation_level: turn
evaluators:
- evaluator: builtin.intent_resolution
initialization_parameters:
model: gpt-4.1-nano
- evaluator: builtin.task_adherence
initialization_parameters:
model: gpt-4.1-nano
target:
type: agent
name: support-agent
Sökvägarna under source: är relativa till konfigurationsfilen. Den genererade .jsonl JSON-filen och utvärderaren är vanliga filer: redigera dem och kör create sedan igen för att registrera en ny version.
Spara den här filen. Det är den reproducerbara delen av utvärderingen.
Skapa eval och kör den
Använd create för att registrera allt som konfigurationen deklarerar – datauppsättningar, utvärderare och själva evalen:
azd ai eval create
Kör den sedan:
azd ai eval run start
run start väntar som standard på att körningen ska slutföras och skriver ut en tabell för varje utvärderare med godkännandefrekvens och genomsnittspoäng samt en länk till körningen i portalen. Använd --no-wait för att skicka och returnera och --max-samples för att begränsa de rader som skickas.
Om konfigurationen deklarerar mer än en eval namnger du den du menar:
azd ai eval run start --eval support-trace-eval
Granska resultaten
Sammanfattningen visar om kvaliteten har förändrats. Raderna för varje exempel visar varför:
azd ai eval run output list --eval support-trace-eval
azd ai eval run output list --eval support-trace-eval --failed-only
För att se körningar över tid och vilken information tjänsten innehåller för en utvärdering:
azd ai eval list
azd ai eval run list --eval support-trace-eval
azd ai eval show support-trace-eval
show returnerar eval-identiteten i projektet – ID, namn och när det skapades. Vad evalen gör finns i din evals/azure.eval.yaml.
run list har en passeringsfrekvens per körning. Uppdelningen per utvärderare finns i -o json, under per_testing_criteria_results, eftersom en kolumn för varje utvärderare inte längre är läsbar när körningar poängsätts av olika utvärderare.
Så här flyttar du resultaten till en annan plats:
azd ai eval run output list --eval support-trace-eval --output-file rows.json
azd ai eval run output export --eval support-trace-eval --format csv --output-file summary.csv
De två skiljer sig åt, och skillnaden är viktig: run output list --output-file skriver raderna per exempel, medan run output export skriver en rad per körning – summorna bakom sammanfattningen.
Skapa en port
Ange --fail-on för att göra körningen till en kontrollkörning. Den avslutar icke-noll när körningen missar tröskelvärdet, vilket är hur en pipeline misslyckas med en ändring av den regresserade kvaliteten:
azd ai eval run start --fail-on pass-rate=0.8
azd ai eval run start --fail-on any-failure
Utan --fail-on avslutas en slutförd körning med misslyckade exempel ändå med statuskod 0. Underkända exempel är det förväntade resultatet av en fungerande utvärdering, inte ett fel i verktyget, så spärrfunktionen är valfri.
pass-rate tar ett tal mellan 0 och 1. Ett tröskelvärde som inte är 1 avvisas innan körningen skickas in, så ett felaktigt angivet gränsvärde medför ingen kostnad.
--fail-on kräver en slutförd körning. På run show parkopplar du den med --wait.
Distribuera utvärderingar med resten av projektet
init lägger till en utvärderingstjänst i azure.yaml, så eval är en del av projektet i stället för en sidoartefakt:
azd up
Det etablerar projektet och registrerar de deklarerade dataseten, utvärderarna och utvärderingarna, samma arbete som azd ai eval create utför på egen hand.
Ändra agenten och utvärdera igen
När du har ändrat och distribuerat om agenten kör du samma utvärdering igen:
azd deploy
azd ai eval run start --eval support-trace-eval
Återanvändning av samma eval håller datauppsättningen, utvärderarna och tröskelvärdena fasta, så jämförelsen handlar om agenten.
Om du vill ändra vad utvärderingen mäter, redigera evals/azure.eval.yaml eller de genererade artefakterna under evals/, och kör sedan create igen.
create registrerar en ny version av allt som ändrats och låter tidigare körningar fortsätta vara knutna till de versioner de använde.
Metodtips
- Börja med
--source tracesom agenten redan körs och genererar spårningar. Den mäter vad som hände, och det finns inget att skriva. - Byt till
--source datasetnär du vill ha en fast uppsättning fall som du kan jämföra mellan versioner. - Läs den genererade datamängden och kriteriet innan du litar på poängen.
generategenererar dem utifrån den instruktion du ger den, så en vag instruktion ger vaga rader. - Använd mer än en utvärderare. Ett enda kriterium flyttar talet utan att berätta varför.
- Checka in
evals/azure.eval.yamloch genererade artefakter så att utvärderingen kan granskas. - Använd
--fail-onsom spärr i CI, och håll tröskeln på en nivå där en verklig regression utlöser den.
Limitations
- Tillägget är i förhandsversion och kommandoytan kan ändras.
-
generateskickar in debiterade jobb. Datauppsättningar och utvärderare skapas inte avazd provision. - En spårningsbaserad utvärdering kan bara läsa spårningar som agenten redan har genererat.
-
azdslår ihop ett tilläggs exitkod, så att både ett brott mot en kontrollgräns och ett driftsfel visas som en avslutning med en exitkod som inte är noll. Läs grindmeddelandet för att skilja dem åt.