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.
In diesem Artikel stellen Sie einen langlebigen gehosteten Agenten bereit, der das Responses-Protokoll und die resiliente Funktion für Hintergrundantworten verwendet. Sie führen eine gespeicherte Hintergrund-Antwort aus, stürzen den Agent-Prozess absichtlich ab und beobachten, wie er sich nach dem Neustart ab dem letzten Prüfpunkt fortsetzt.
Der Agent führt drei simulierte gestreamte Phasen aus: Analysieren, Generieren und Verfeinern. Jede abgeschlossene Phase ist ein prüfpunktiertes Ausgabeelement, sodass eine wiederhergestellte Ausführung höchstens eine Phase wiederholt.
Note
Lang laufende Agents sind in der Vorschauversion verfügbar. APIs und Paketversionen können geändert werden.
Voraussetzungen
- Ein Azure-Abonnement mit Microsoft Foundry-Zugriff.
- Python 3.13.
- Die Azure Developer CLI (
azd) mit der Erweiterung Foundry Agents:azd extension install azure.ai.agents. - Die Azure CLI (
az) undcurlverwenden, um den bereitgestellten Agenten aufzurufen.
Beispiel abrufen
Initialisieren Sie den widerstandsfähigen Streaming-Agenten in einem leeren Verzeichnis anhand des azure.yaml-Manifests:
azd auth login
azd ai agent init -m https://github.com/microsoft-foundry/foundry-samples/blob/main/samples/python/hosted-agents/bring-your-own/responses/resilient-streaming/azure.yaml
Der Befehl lädt den Beispielquellcode herunter, übernimmt dessen azure.yaml, erstellt eine azd-Umgebung und verbindet sie mit dem Foundry-Projekt, das Sie auswählen.
Im Beispiel wird beim Erstellen des Hosts Resilienz aktiviert:
# src/resilient-streaming/main.py
options = ResponsesServerOptions(resilient_background=True)
app = ResponsesAgentServerHost(options=options)
Important
Der Standardwert von resilient_background ist False. Ohne sie wird eine Hintergrundantwort, die abstürzt, mit failed gekennzeichnet, anstatt wiederhergestellt zu werden. Siehe Lang laufende Vorgänge nach einem Absturz wiederherstellen.
Lokal ausführen
Der ausfallsichere Zustandsspeicher verwendet Dateien, wenn Sie sie lokal ausführen, sodass Ihr Computer denselben Wiederherstellungscodepfad verwendet. Diese Anleitung steuert den Agent mit curl, sodass bei jeder Ausführung azd ai agent run --no-client verwendet wird, das die Python-Abhängigkeiten installiert, die aktive azd-Umgebung einbindet und den Agent auf http://localhost:8088 startet, ohne den Agent Inspector zu starten.
Testen Sie die Wiederherstellung nach einem Absturz lokal.
Verwenden Sie Linux, WSL2 oder einen Container für diese Übung, damit das Betriebssystem die Dateisperre freigibt, wenn der Prozess beendet wird.
Legen Sie SIMULATE_CRASH_AFTER_STAGE so fest, dass die Beispielanwendung abstürzt, nachdem sie die erste Phase als Prüfpunkt gespeichert hat, und starten Sie dann den Agenten:
SIMULATE_CRASH_AFTER_STAGE=0 azd ai agent run --no-client
Die Wiederherstellung benötigt eine gespeicherte Hintergrundantwort (store: true und background: true). Senden Sie in einem zweiten Terminal die Anforderung inline mit curl:
curl -sS -X POST http://localhost:8088/responses \
-H "Content-Type: application/json" \
-d '{"input": "renewable energy supply chains", "store": true, "background": true}'
Der Agent erstellt einen Checkpoint für die Analysephase und beendet sich dann. Starten Sie es vom ersten Terminal neu:
azd ai agent run --no-client
Das Framework ruft den Handler erneut mit context.is_recovery == True auf. Der Handler stellt context.persisted_response wieder her, überspringt das Erstellen eines Checkpoints für die Analysephase und schließt die Generierungs- und Verfeinerungsphasen ab.
Bereitstellen in Foundry
Stellen Sie das Projekt bereit und stellen Sie den Agent bereit. Wenn Sie zur Eingabe eines Standorts aufgefordert werden, wählen Sie eine Region aus, die gehostete Agents unterstützt.
azd up
azd up gibt den Responses-Endpunkt und einen Playground-Link aus.
Aufrufen des bereitgestellten Agents
azd up gibt den Endpunkt „Responses“ aus. Speichern, Entfernen der Abfragezeichenfolge und Abrufen eines Zugriffstokens:
ENDPOINT="<responses-endpoint-from-azd-up>"
RESPONSES_ENDPOINT="${ENDPOINT%%\?*}"
TOKEN=$(az account get-access-token --resource https://ai.azure.com --query accessToken -o tsv)
Erstellen Sie eine gespeicherte Hintergrundantwort, und notieren Sie sich die zurückgegebene id:
curl -sS -X POST "$RESPONSES_ENDPOINT?api-version=2025-11-15-preview" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"input": "renewable energy supply chains", "store": true, "background": true}'
Die Plattform hält die Antwort im Hintergrund auch ohne Client-Datenverkehr aufrecht. Befragen Sie oder streamen Sie es mit id aus der vorherigen Antwort:
curl -sS "$RESPONSES_ENDPOINT/<response-id>?api-version=2025-11-15-preview" \
-H "Authorization: Bearer $TOKEN"
Informationen zum Erneutverbindenprotokoll und zum starting_after Cursor finden Sie unter Stream mit erneuter Verbindung.
Aufräumen
azd down