Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
- Ein Foundry-Projekt mit einem bereitgestellten gehosteten Agent
- Die
azure.ai.agentsinstallierte CLI-Erweiterung (siehe Schnellstart: Optimieren eines gehosteten Agents)
Erstellen Sie einen Datensatz und Auswerter (empfohlen)
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 generateerstellt eine automatisch als bearbeitbarerubric_dimensions.jsonDatei.
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.yamlmitnameundversiondarauf. -
Lokales Dataset – eine JSONL-Datei, die Sie erstellen und in Ihrem Projekt beibehalten. Verweisen Sie in
eval.yamlmitlocal_uridarauf.
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. |