Erstellen Sie einen Evaluierungsdatensatz und Evaluatoren (Vorschau)

Important

Agent Optimizer ist derzeit als Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Supplementale Nutzungsbedingungen für Microsoft Azure Previews.

Der Agent-Optimierer wertet Ihren Agent anhand eines Datasets aus - eine Sammlung von Aufgaben - bewertet von Evaluatoren. Sie können beides entweder automatisch über die CLI generieren oder für die volle Kontrolle einen Datensatz manuell erstellen.

Beide Teile sind für eine gute Optimierung unerlässlich: Das Dataset definiert , was getestet werden soll, und die Evaluatoren definieren , wie jede Antwort beurteilt werden soll. Schwache Bewerter erzeugen laute Bewertungen, die zu einer schlechten Optimierung führen, also investieren Sie in starke Bewerter genauso wie repräsentative Aufgaben.

Das Erstellen dieser Ressourcen ist der zweite Schritt im Optimierungsworkflow, nachdem Sie Den Agent-Optimierer vorbereitet haben. Der Optimierer verwendet sie, um Ihren Basiswert zu bewerten und Kandidaten zu ranken.

Voraussetzungen

Die schnellste Möglichkeit zum Erstellen von Auswertungsressourcen ist mit azd ai agent eval generate. Der Befehl erkennt Ihren Agent automatisch und generiert alles, was der Optimierer benötigt:

azd ai agent eval generate

Standardmäßig wird Folgendes generiert:

  • Ein Seed-Datensatz mit Aufgaben, abgestimmt auf die Domäne Ihres Agenten.
  • Evaluatoren , die Antworten bewerten – einen integrierten Evaluator (z builtin.task_adherence. B. ) sowie einen benutzerdefinierten Rubriken-Evaluator , der auf Ihren Agenten zugeschnitten ist.
  • Eine lauffähige eval.yaml, die sie miteinander verbindet.

Zum interaktiven Assistenten, zu nicht-interaktiven Flags und zu Details über die generierten Artefakte siehe Auswertungsressourcen initialisieren.

Nach der Generierung erkennt azd ai agent optimizeeval.yaml automatisch:

azd ai agent optimize

Informationen zum Anpassen der generierten Ressourcen finden Sie unter Anpassen von Auswertungen und Erstellen eines benutzerdefinierten Datasets. Zum Ändern der Ausführungsoptionen bearbeiten Sie eval.yaml; siehe Konfigurieren des Optimierungslaufs.

Evaluatoren anpassen (erweitert)

Evaluatoren bewerten jede Agentantwort. Der Optimierer unterstützt zwei Arten:

  • Integrierte Evaluatoren, wie z. B. builtin.task_adherence, die jedes Kriterium auf Aufgabenebene mit „bestanden“ oder „nicht bestanden“ bewerten.
  • Benutzerdefinierte Bewerter mit Bewertungsrubriken, die Antworten anhand mehrerer Qualitätsdimensionen bewerten, die auf Ihren Agenten zugeschnitten sind. azd ai agent eval generate erstellt eine automatisch als bearbeitbare rubric_dimensions.json Datei.

Für die meisten Agenten liefert der generierte Rubrik-Bewerter die aussagekräftigsten Bewertungen, da er auf Ihre Domäne zugeschnitten ist. Bearbeiten Sie das generierte rubric_dimensions.json, um die Abmessungen zu verfeinern, und führen Sie dann azd ai agent eval update aus, um die Änderungen als neue Version zu speichern. Einzelheiten zum Generieren, Bearbeiten und Versionieren von Evaluatoren finden Sie unter Auswertungsressourcen initialisieren.

Informationen zum Verbinden von Auswertungen mit ihrer Ausführungskonfiguration finden Sie unter Konfigurieren der Optimierungsausführung.

Erstellen eines benutzerdefinierten Datasets (erweitert)

Erstellen Sie ein benutzerdefiniertes Dataset, wenn Sie präzise Kontrolle über Testszenarien benötigen oder produktionsbezogene Daten direkt verwenden müssen. Der empfohlene Ansatz besteht darin, auf dem Seed-Dataset aufzubauen, das von azd ai agent eval generate erzeugt wird – es zu einem lokalen Dataset weiterzuentwickeln oder auf ein anderes Dataset zu verweisen, das bereits in Ihrem Foundry-Projekt registriert ist.

Auswählen einer Datasetquelle

Ein Dataset kann aus einer von zwei Quellen stammen:

  • Foundry-Dataset — ein Dataset, das bereits in Ihrem Foundry-Projekt registriert ist. Verweisen Sie in eval.yaml mit name und version darauf.
  • Lokales Dataset – eine JSONL-Datei, die Sie erstellen und in Ihrem Projekt beibehalten. Verweisen Sie in eval.yaml mit local_uri darauf.

Beide Quellen verwenden das im nächsten Abschnitt beschriebene Aufgabenschema. Informationen zur eval.yaml Verkabelung finden Sie unter Konfigurieren der Optimierungsausführung.

Datensatzschema

Ein Dataset verwendet das JSONL-Format (JSON Lines). Jede Zeile ist ein JSON-Objekt, das eine einzelne Auswertungsaufgabe darstellt – ein einzelnes Szenario. Ein Vorgang verfügt über eine Eingabeaufforderung (query) und optional eine Vorgangsebene criteria.

{"name": "task_1", "query": "Your prompt here"}
{"name": "task_2", "query": "Another prompt", "ground_truth": "Expected answer"}
Feld Erforderlich Description
name Ja Eindeutiger Aufgabenbezeichner (z. B. "greeting", "math_test").
query Ja Die an den Agent gesendete Nachricht.
ground_truth No Erwartete Antwort, die von Evaluatoren verwendet wird, die einen Verweis unterstützen.
criteria No Optionale Prüfungen auf Aufgabenebene. Siehe "Kriterien auf Aufgabenebene hinzufügen".

Wenn Sie ein lokales Dataset verwenden, überprüfen Sie die JSONL-Syntax, bevor Sie die Optimierung ausführen:

python -c "import json; [json.loads(l) for l in open('eval.jsonl')]"

Hinzufügen von Kriterien auf Aufgabenebene

Kriterien sind optional. Die Evaluatoren, die Sie in eval.yaml konfigurieren, gelten für jede Aufgabe im Datensatz. Fügen Sie criteria nur aufgabenspezifisch hinzu, wenn eine bestimmte Aufgabe Prüfungen erfordert, die über die dieser gemeinsamen Evaluatoren hinausgehen. Wenn vorhanden, werden die Ergebnisse eines Vorgangs criteria zusammen mit den gemeinsam genutzten Bewertungswerten aggregiert, um die Gesamtbewertung des Vorgangs zu erzielen.

Feld Erforderlich Description
criteria[].name Ja Kurzname für das Kriterium (z. B "is_polite". ).
criteria[].instruction Ja Was der Evaluator überprüft. Seien Sie spezifisch und testbar.

Der folgende Kundensupport-Datensatz enthält Aufgaben mit aufgabenbezogenen Kriterien:

{"name": "refund_policy", "query": "What is your refund policy?", "criteria": [{"name": "mentions_30_days", "instruction": "Response must mention the 30-day refund window"}, {"name": "polite_tone", "instruction": "Response must be professional and empathetic"}]}
{"name": "order_status", "query": "Where is my order #12345?", "criteria": [{"name": "asks_for_details", "instruction": "Agent should ask for email or order details to look up the order"}, {"name": "no_hallucination", "instruction": "Agent must NOT make up a fake order status"}]}
{"name": "out_of_scope", "query": "Can you help me fix my car?", "criteria": [{"name": "polite_decline", "instruction": "Agent should politely explain this is outside its scope"}, {"name": "redirect", "instruction": "Agent should suggest contacting an appropriate service"}]}

Tipps zum Schreiben guter Datasets

Randfälle berücksichtigen

Testen Sie über den „Happy Path“ hinaus. Einfügen:

  • Anfragen außerhalb des Zuständigkeitsbereichs — Eingaben, die Ihr Agent ablehnen oder weiterleiten sollte
  • Mehrdeutige Abfragen – Aufgaben, bei denen der Agent nach Klärung fragen sollte
  • Adversariale Eingaben – Versuche, den Agenten zu schlechtem Verhalten zu verleiten
  • Mehrstufige Aufgaben – Komplexe Anforderungen, die strukturiertes Denken erfordern

Größenrichtlinien

Datasetgröße Kompromiss
3–5 Aufgaben Schnelle Iteration, begrenztes Signal
5–10 Aufgaben Gute Balance zwischen Geschwindigkeit und Abdeckung
10–20 Aufgaben Umfassende Auswertung, längere Läufe
20+ Aufgaben Gründlich, aber langsam – erwägen Sie die endgültige Validierung

Größere Datasets bieten eine breitere Abdeckung, müssen aber länger ausgewertet werden.

Ground Truth bereitstellen, wenn sinnvoll

Das ground_truth Feld gibt Denvaluatoren eine Referenzantwort, mit der verglichen werden soll. Das ist nicht erforderlich – Evaluierende können Antworten auch ausschließlich anhand ihrer Anweisungen und etwaiger aufgabenbezogener Kriterien beurteilen.

{"name": "geography_fact", "query": "What is the largest city in France by population?", "ground_truth": "Paris", "criteria": [{"name": "correct_answer", "instruction": "Response must state that Paris is the largest city in France by population"}]}

Schreiben Sie Prompts wie echte Nutzer

Verwenden Sie nach Möglichkeit tatsächliche Nachrichten von Ihren Benutzern. Echte Eingabeaufforderungen erfassen das Vokabular und den Kontext, mit dem Ihr Agent in der Produktion konfrontiert ist, was Ihnen auch hilft, realistische Kriterien auf Aufgabenebene zu schreiben.

In Kriterien spezifisch sein

Vage Kriterien führen zu einer inkonsistenten Bewertung. Machen Sie jedes Kriterium spezifisch und testbar.

Schlecht:

{"name": "good_answer", "instruction": "The response should be good"}

Gut:

{"name": "mentions_30_days", "instruction": "Response must explicitly mention the 30-day refund window"}

Problembehandlung

Problem Ursache Beheben
dataset not found Falscher Pfad in eval.yaml Verwenden Sie für dataset.local_uri einen Pfad relativ zum Speicherort der Konfigurationsdatei. Für einen Foundry-Datensatz überprüfen Sie dataset.name und dataset.version.
invalid JSON on line N Falsch formatierter JSONL-Code Überprüfen Sie, ob jede Zeile json gültig ist. Überprüfen Sie auf abschließende Kommas.
Die Punktzahlen sind zwischen den Durchläufen inkonsistent. Vage Kriterien Kriterien spezifisch und testbar machen.