Optimieren von Agentanweisungen, Fähigkeiten, Tools und Modellen (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 verbessert vier Aspekte Ihres gehosteten Agents: Anweisungen, Fähigkeiten, Tools und Modellauswahl. Es erkennt automatisch, welche dieser Ziele aus der Basiskonfiguration Ihres Agents optimiert werden sollen.

In diesem Artikel wird gezeigt, wie Sie eine Optimierung ausführen, die Ausführung konfigurieren und überwachen und die Ergebnisse bereitstellen. Informationen dazu, was jedes Ziel bewirkt und wann es aktiviert wird, finden Sie unter Optimierungsziele. Informationen zum Einrichten der Basiseingaben finden Sie unter "Vorbereiten des Agent-Optimierers". Eine Kurzübersicht darüber, was der Optimierer ändert, finden Sie unter "Änderungen an den einzelnen Zielzielen".

Voraussetzungen

Ausführen einer Optimierung

Starten Sie eine Optimierung mit einem einzigen Befehl:

azd ai agent optimize

Der Optimierer wertet Ihre Basislinie aus, generiert Kandidaten, bewertet sie und bewertet die Ergebnisse. Den vollständigen Auswertungs- und Verbesserungszyklus finden Sie unter Funktionsweise des Agent-Optimierers. Welche Ziele ausgeführt werden, hängt von Ihrer Basiskonfiguration ab– Die Optimierung von Anleitungen, Qualifikationsverbesserungen und Tooloptimierung werden automatisch aktiviert, wenn die übereinstimmenden Basisplandateien vorhanden sind. Siehe Optimierungsziele.

Um den Durchlauf mit einer Konfigurationsdatei zu steuern, übergeben Sie ein eval.yaml, das auf Ihr Dataset, Ihre Evaluatoren und Optionen verweist:

azd ai agent optimize --config eval.yaml

Das vollständige eval.yaml Schema finden Sie unter Konfigurieren der Optimierungsausführung.

Ziel eines bestimmten Agents

Standardmäßig optimiert die CLI den von Ihrer aktuellen azd Umgebung und dem lokalen agent.yamlProjekt erkannten Agent. Der Optimierer löst den Agentnamen in dieser Prioritätsreihenfolge auf:

Priorität Source Example
1 (höchste) --agent CLI-Kennzeichnung azd ai agent optimize --agent my-support-agent
2 (Standard) Aktuelle azd Umgebung und das Feld name im lokalen agent.yaml name: my-support-agent
3 Feld agent.name in eval.yaml agent:\n name: my-support-agent

Verwenden Sie das --agent Kennzeichen, wenn Sie mehrere Agents in Ihrem Projekt haben oder die Standardeinstellung außer Kraft setzen möchten. Der Agentname muss mit einem bereitgestellten gehosteten Agent in Ihrem Foundry-Projekt übereinstimmen.

Note

Führen Sie diese Schritte azd ai agent invoke "test" aus, um zu überprüfen, ob Ihr Agent vor dem Starten der Optimierung reagiert.

Konfigurieren der Optimierungsausführung

Konfigurieren Sie Optimierungsläufe über eine eval.yaml-Datei, die Ihren Datensatz, Ihre Auswertungen und Ihre Laufoptionen zusammenführt. Der Befehl azd ai agent eval generate schreibt diese Datei für Sie, oder Sie können sie manuell erstellen. Der Optimierer erkennt eval.yaml im Projektstamm automatisch, oder Sie können es explizit mit --config eval.yaml angeben.

# eval.yaml
name: my-optimization              # Optional label for the run
agent:
  name: my-agent                   # Deployed hosted agent name
  kind: hosted
  version: "1"                     # Agent version (optional)
  model: gpt-4.1-mini              # Baseline model deployment
  config: .agent_configs/baseline/metadata.yaml
dataset:
  local_uri: ./eval.jsonl          # A local JSONL file...
  # name: my-foundry-dataset       # ...OR a registered Foundry dataset
  # version: "1"
# validation_dataset:              # Optional held-out dataset
#   name: my-validation-dataset
#   version: "1"
evaluators:
  - builtin.task_adherence         # A built-in evaluator...
  # - name: my-custom-evaluator    # ...or a custom evaluator
  #   version: "1"
  #   local_uri: ./my_evaluator.json
options:
  eval_model: gpt-4.1-mini         # Scores responses
  optimization_model: gpt-5.1      # Generates candidates
  max_candidates: 4
  optimization_config:
    model_search_space:            # Optional: compare model deployments
      - gpt-4.1
Feld Erforderlich Beschreibung
name No Bezeichnung für die Optimierungsausführung.
agent.name Yes Name des bereitgestellten gehosteten Agents, der optimiert werden soll.
agent.kind Yes Agententyp. Verwenden Sie hosted.
agent.version No Agent-Version als Zielversion.
agent.model Yes Bereitstellungsname des Basismodells.
agent.config Yes Pfad zum Basisplan metadata.yaml.
dataset Yes Der Datensatz für die Auswertung, als lokale JSONL-Datei (local_uri) oder als registrierter Foundry-Datensatz (name und version). Siehe Erstellen eines benutzerdefinierten Datasets.
validation_dataset No Ein zurückgehaltener Datensatz, der zur Validierung der Ergebnisse verwendet wird.
evaluators Yes Auf jede Aufgabe angewendete Auswertungen. Siehe Evaluatoren anpassen.
options.eval_model Yes Bereitgestelltes Chatmodell, das Antworten bewertet. Weitere Informationen finden Sie unter Auswählen der Auswertungs- und Optimierungsmodelle.
options.optimization_model Yes Bereitgestelltes Modell, das Kandidaten generiert. Muss sich in der unterstützten Liste befinden.
options.max_candidates No Anzahl der zu generierenden Kandidaten (Standard 5). Siehe Festlegen der Anzahl der Kandidaten.
options.optimization_config.model_search_space No Modellbereitstellungen zum Vergleich während der Modellauswahl. Siehe Auswerten mehrerer Modelle.

Erstellen Sie das Dataset und die Evaluatoren separat; siehe Erstellen Sie ein Auswertungs-Dataset und Evaluatoren. In den folgenden Abschnitten werden die Ausführungsoptionen beschrieben.

Auswählen der Auswertungs- und Optimierungsmodelle

Der Optimierer verwendet zwei Modelle: ein Eval-Modell , das Agentantworten anhand von Kriterien bewertet, und ein Optimierungsmodell , das Kandidatenkonfigurationen generiert. Legen Sie sie in eval.yaml oder verwenden Sie CLI-Flags.

options:
  eval_model: gpt-4.1-mini
  optimization_model: gpt-5.1
azd ai agent optimize --eval-model gpt-4.1-mini --optimize-model gpt-5.1

Jedes in Ihrem Projekt bereitgestellte Chat-Vervollständigungsmodell funktioniert als Eval-Modell. Das Optimierungsmodell muss aus der unterstützten Liste stammen. Rollen und unterstützte Modelle finden Sie unter "Modelle".

Important

Das optimization_model Feld ist erforderlich. Wenn Sie diese nicht angeben und --optimize-model nicht übergeben, gibt die Optimierungs-API einen Fehler zurück. Vergewissern Sie sich immer, dass beide Modelle in Ihrem Projekt bereitgestellt werden, bevor Sie die Optimierung ausführen.

Festlegen der Anzahl der Kandidaten

Die max_candidates Option legt die erwartete Anzahl der Kandidatenkonfigurationen für die Ausführung fest. Der Optimierer wird in der Regel zurückgegeben, nachdem die Anzahl erreicht wurde, es sei denn, die Ausführung wird aufgrund eines Fehlers oder einer anderen Beendigungsbedingung frühzeitig beendet.

Maximale Anzahl an Kandidaten Kandidaten Uhrzeit Am besten geeignet für:
2 2 5 bis 10 Min. Schnelle Experimente
5 (Standard) 5 20 bis 30 Min. Gute Balance
10 10 30 bis 60 Min. Gründliche Erkundung

Höhere Werte untersuchen mehr Variationen, dauern aber länger. Der Optimierer lernt aus früheren Kandidaten, sodass spätere Kandidaten tendenziell höher bewertet werden.

Note

Die Zeiten für einen Datensatz mit 3 bis 10 Vorgängen sind ungefähr. Größere Datasets oder langsamere Auswertungsmodelle erhöhen die Laufzeit.

Mehrere Modelle auswerten

Um Bereitstellungen von Modellen in einem einzelnen Durchlauf zu vergleichen, führen Sie sie unter optimization_config.model_search_space auf. Der Optimierer evaluiert Ihren Agenten für jedes Modell anhand desselben Datensatzes und ordnet die Ergebnisse nach Punktzahl und Tokenkosten.

# eval.yaml
options:
  optimization_config:
    model_search_space:
      - gpt-4.1
      - gpt-4.1-mini
      - gpt-4o

Jedes unter model_search_space aufgeführte Modell muss in Ihrem Foundry-Projekt bereitgestellt werden.

Note

Wenn die Liste die aktuelle Modellbereitstellung Ihres Agenten enthält, entfernt der Optimierer sie automatisch aus der Kandidatenliste, da die Baseline dieses Modell bereits repräsentiert. Wenn nach dieser Entfernung keine Modelle verbleiben, erhalten Sie einen Überprüfungsfehler.

Die Modellauswahl läuft parallel zu den Zielen, die von Ihrer Baseline automatisch aktiviert werden. Eine einzelne Ausführung kann Kandidaten erstellen, die verbesserte Anweisungen, Fähigkeiten und Toolbeschreibungen mit verschiedenen Modelloptionen kombinieren – Sie konfigurieren die Kombination nicht selbst.

Laufenden Auftrag überwachen

Eine Optimierungsausführung ist asynchron. Verwenden Sie diese Befehle, wenn ein Auftrag lang ausgeführt wird oder Sie den Fortschritt überprüfen möchten:

# Check status and stream progress
azd ai agent optimize status <operation-id> --watch

# List recent optimization jobs
azd ai agent optimize list

# Cancel a running job
azd ai agent optimize cancel <operation-id>

Erfassen Sie die Vorgangs-ID, Portal-URL, Bewertungen und Kandidaten-IDs aus der Ausführungsausgabe. Sie können den Auftrag auch im Foundry-Portal überwachen, indem Sie die URL verwenden, die beim Starten der Ausführung angezeigt wird.

Interpretieren von Ergebnissen

Überprüfen Sie nach Abschluss der Optimierung die Ergebnistabelle. Ein Sternchen (*) markiert den besten Kandidaten. Informationen zu den Ergebnistabellenspalten, Bewertungsdetails, Schwellenwerten zur Bewertung und der Portalansicht finden Sie unter "Grundlegendes zu Optimierungsergebnissen".

Bereitstellen des Siegers

Der empfohlene Workflow besteht darin, die optimierte Konfiguration lokal anzuwenden und dann Folgendes bereitzustellen:

# Apply the winning candidate locally
azd ai agent optimize apply --candidate <candidate-id>

# Deploy with the optimized config
azd deploy

Dadurch wird die optimierte Konfiguration in .agent_configs/<candidate_id>/ in Ihrem Projekt heruntergeladen. Bei der nächsten Bereitstellung verwendet Ihr Agent die verbesserten Anweisungen und Toolbeschreibungen.

Alternativ können Sie direkt über die API bereitstellen (nützlich für schnelle A/B-Tests):

azd ai agent optimize deploy --candidate <candidate-id>

Warning

Direkte Bereitstellung aktualisiert den Agentdienst, ohne ihre lokalen Dateien zu ändern. Verwenden Sie den apply ->deploy-Workflow für Produktionsumgebungen.

Wenn alle Kandidaten schlechter als die Baseline abschneiden, setzen Sie keinen Kandidaten ein. Die Basiskonfiguration bleibt aktiv.

Was jedes Ziel ändert

Der Optimierer aktiviert automatisch die Ziele, die für Ihren Basisplan gelten. Dieser Abschnitt dient als Referenz dafür, was ein Durchlauf ändert. Verwenden Sie die folgende Tabelle, um zu antizipieren, welche Optimierung für Ihren Agent bewirkt:

Szenario Target
Verbessern der Gesamtantwortqualität Optimierung von Anweisungen
Reduzieren falscher Informationen Optimierung von Anweisungen
Verbessern von wiederholbaren Verhaltensweisen (Eskalation, Debuggingmuster) Qualifikationsverbesserung
Verfeinern strukturierter Verfahren Qualifikationsverbesserung
Finden Sie den besten Qualitäts-/Kostenmodell-Kompromiss Modellauswahl
Erste Optimierung, nicht sicher, was zu erwarten ist Alle anwendbaren Ziele werden automatisch ausgeführt

Ihr Code bleibt für alle Ziele gleich, da load_config() die optimierten Werte automatisch zurückgibt. Nur die Konfiguration, die das Modell sieht, ändert sich.

Instructions

Der Optimierer schreibt die Systemaufforderung neu. Zu den allgemeinen Verbesserungen gehören:

  • Hinzufügen expliziter Einschränkungen, die die ursprüngliche Eingabeaufforderung impliziert, aber nicht angezeigt wurde
  • Anweisungen zur Umstrukturierung für bessere Verständlichkeit
  • Hinzufügen von Ausgabeformatspezifikationen
  • Stärkung der Sicherheits- und Umfangsgrenzen

So könnte beispielsweise eine minimale Basisaufforderung You are a helpful assistant. wie folgt aussehen:

You are a helpful coding assistant. Follow these guidelines:
1. Always include working code examples
2. Explain your reasoning step by step
3. If a question is outside your expertise, say so clearly
4. Use markdown formatting for code blocks
5. Handle edge cases in code examples

Fähigkeiten

Der Optimierer verfeinert die Beschreibung, den Hauptteil und die Aktivierungskriterien jeder Fähigkeit, wobei der Zweck der Fähigkeit erhalten bleibt. Der Agent lädt verbesserte Fähigkeiten über load_config(), das diese dem Anweisungssatz hinzufügt. Fähigkeiten verwenden das offene Agent Skills-Format . Informationen dazu, wie Ihr Agent Fähigkeiten lädt, finden Sie unter Make your agent optimizer-ready.

Tools

Der Optimierer optimiert Ihre tools.json Definitionen. Zu den allgemeinen Verbesserungen gehören:

  • Übersichtlichere Funktionsbeschreibungen, die dem Modell helfen, zu wissen, wann ein Tool aufgerufen werden soll
  • Spezifischere Parameterbeschreibungen, die ungenaue Argumente reduzieren
  • Hinzugefügte Einschränkungen (Enumerationen, erforderliche Felder), die ungültige Eingaben verhindern

Ihr Toolimplementierungscode bleibt gleich. Nur die Definitionen, die das Modell sieht, ändert sich.

Models

Der Optimierer ordnet jedes Kandidatenmodell nach zusammengesetzter Punktzahl und Token-Kosten ein, sodass Sie den besten Kompromiss zwischen Qualität und Kosten wählen können. Informationen zum Konfigurieren der Kandidaten finden Sie unter Auswerten mehrerer Modelle.

Problembehandlung

Problem Ursache Beheben
optimize gibt 400 zurück. Abonnement nicht in Positivliste Wenden Sie sich an Ihren Microsoft Vertreter, um Den Zugriff anzufordern.
Protokollüberprüfungsfehler Ungültiger azure.yaml Agent-Dienst Stellen Sie sicher, dass der azure.ai.agent-Dienst kind: hosted und eine protocols:-Liste enthält.
Auftrag bleibt in der Ausführung hängen Dienstproblem Abbrechen mit azd ai agent optimize cancel <id> und Wiederholen
Keine Kandidaten-IDs in der Ausgabe Auftrag wird noch ausgeführt Auf Abschluss warten oder --watch verwenden