Zum Inhalt

Agent-Evaluation

Diese Seite beschreibt, wie die AI Agents vor einem Release getestet werden, was abgedeckt ist und was nicht. Sie richtet sich an das Plattform-Team und an alle, die Agent-Anweisungen, Skills oder Tools ändern. Die Evaluation ist eine Entwicklungsaktivität der Code-Basis. Sie läuft nicht in einer Kundenumgebung.

Ansatz

Die Suiten verwenden Promptfoo mit einem simulierten Benutzer. Ein Sprachmodell spielt einen Entwickler, der den Agent um eine Änderung bittet. Der getestete Agent ist der Produktions-Agent: Er wird aus derselben Agent-Konfiguration (Anweisungen, Modell, Temperatur, Tools) gebaut wie in Produktion und führt dieselbe In-Process-Agent-Schleife aus. Eine Änderung an einer Anweisungsdatei wird daher ohne separate Kopie getestet.

flowchart LR
    su[Simulated user<br/>model, max 15 turns] <--> ag[Agent under test<br/>production config and loop]
    ag -->|tool calls| mcp[Portal MCP tools<br/>local backend]
    mcp --> repo[Test repository<br/>pull requests]
    ag --> as[Assertions]
    as --> res[Pass or fail<br/>and Promptfoo viewer]
    repo -.->|cleanup hook<br/>abandons created PRs| repo
Element Details
Simulierter Benutzer Ein Multi-Turn-Provider mit maximal 15 Turns. Der simulierte Benutzer ist ein Chat-Modell, das in Azure OpenAI deployt ist.
Getesteter Agent Wird mit der Produktions-Agent-Factory aus agent_config/agents/<name> aufgelöst. Optionale Overrides erlauben einen Vergleichslauf mit einer anderen Anweisungsdatei, einem anderen Modell oder einer anderen Temperatur.
Tools Der Agent ruft die MCP-Tools des Portals in einem lokal laufenden Backend auf
Konversationsstatus Ein In-Memory-Nachrichtenverlauf für eine Episode. In Foundry wird nichts erstellt oder gelöscht.
Primäre Bestehensbedingung Die Antwort enthält eine gültige Pull-Request-URL

Suiten

Suite Fälle Zweck
Spoke create 22 Der Agent erstellt einen Pull Request für eine spoke-Konfiguration. Gruppen: einen bestehenden spoke kopieren (8 Fälle), kopieren mit Schema-Beschreibungen (8 Fälle), einen neuen spoke erstellen (1 Fall), blockierte Anfragen, die nicht zu einem Pull Request führen dürfen (5 Fälle).
Spoke QA 4 Frage-und-Antwort-Fälle, bewertet mit einer Sprachmodell-Rubrik

Die QA-Fälle prüfen das Wissen über die spoke-Dokumentation (Ressourcen, die ein spoke-Deployment erzeugt, der Workflow für neue spokes) und zwei Agent-Regeln (Regeln für Private Link und Network Security Groups sowie das Validierungs-Gate für Pull Requests). Eine weitere create-Suite legt kundenspezifische Regeln für Dateinamen und ein zusätzliches Schema über die Standardkonfiguration, um die optionalen Einstellungen fileNameRules und additionalSchema zu testen. Sie ist kundenspezifisch und hier nicht beschrieben.

Der Integration-Agent hat in der Quelle keine Evaluationssuite.

Assertions

Neben der Prüfung des Pull Requests verwenden die Suiten eigene Assertions:

Assertion Prüft
Tool sequence Der Agent hat die erwarteten Tools in der erwarteten Reihenfolge aufgerufen
Tool not executed Ein verbotenes Tool, zum Beispiel ein Pull-Request-Tool in einem blockierten Fall, wurde nicht aufgerufen
Argument match Ein Tool wurde mit den erwarteten Argumenten aufgerufen
Input diff Die vom Agent eingereichte Konfiguration unterscheidet sich wie erwartet vom Quell-spoke
Spoke JSON validation status Das eingereichte JSON ist gegen das Schema gültig

Nach jedem Test der create-Suite läuft ein Cleanup-Hook. Er findet die Pull-Request-URL in der Ausgabe und bricht den Pull Request ab, sodass wiederholte Läufe das Test-Repository nicht füllen.

Die Suiten ausführen

Die Suiten laufen auf einem Entwicklerrechner gegen ein lokal laufendes Portal (gestartet mit dem lokalen Application Host). Der Befehl öffnet einen Browser, damit du dich anmeldest und der Lauf ein Token erhält. Das Token wird nicht auf die Platte geschrieben.

# from plugins/ai-agent-backend
yarn eval all --filter-metadata priority=smoke   # smoke cases of both suites
yarn eval spoke-create --filter-pattern 'C01'    # selected cases of the create suite
yarn eval spoke-qa                               # QA suite
yarn eval:view                                   # open the Promptfoo viewer

Endpoints werden aus Umgebungsvariablen gelesen. Committe keine Tokens, Endpoints oder subscription-IDs.

Was nicht abgedeckt ist

Lücke Details
Kein pipeline-Gate Kein Workflow führt die Evaluation aus. Eine Regression in einer Anweisungsdatei wird nur gefunden, wenn jemand die Suiten ausführt.
Keine Live-Evaluation Produktionskonversationen werden pro Benutzer gespeichert und Telemetrie geht an Azure Monitor, aber im Code gibt es keine pipeline für Sampling, Scoring oder Feedback
Ein Agent Nur der Spoke-Agent hat Suiten

Status der Entscheidungsprotokolle

Drei Entscheidungsprotokolle beschreiben die vorgesehene Evaluationsstrategie: getrenntes Evaluations-Tooling, Promptfoo für die Entwicklungszeit und Foundry Evaluation für Live-Traffic. Alle drei sind noch proposed und wurden für den Foundry Agent Service geschrieben. Die akzeptierte Entscheidung, die Agent-Schleife im Portal zu betreiben (Entscheidungen), hat diese Laufzeit ersetzt. Die Promptfoo-Suiten entsprechen dem Vorschlag für die Evaluation zur Entwicklungszeit. Der Teil zur Live-Evaluation ist nicht umgesetzt.

Muss verifiziert werden

Kläre mit den Maintainern, ob der Vorschlag zur Live-Evaluation noch geplant ist und ob ein Evaluations-Gate in der pipeline vorgesehen ist.