Lebenszyklusereignisse
Verwenderun_with_events(...) oder continue_with_events(...), um Ereignisse synchron zu empfangen:
run.startedmodel.request.startedmodel.response.completedtool.startedtool.completedrun.pausedrun.resumedrun.completedrun.stopped
Modellwiederholungen
max_retries zählt weitere Versuche nach der ersten Anfrage. RunStep.model_attempts speichert, wie viele Versuche bis zu einer erfolgreichen Modellantwort nötig waren.
Nutzung
RunResult.usage fasst Folgendes zusammen:
input_tokensoutput_tokenscached_tokenstotal_tokenscost, sofern der Modellclient den Wert bereitstellt
RunStep enthält außerdem eine eigene Nutzungsübersicht, die Anfrage-ID, den Anbieter, das Modell und den Beendigungsgrund.
Der integrierte Gateway-Adapter 0.1 überträgt cost_nanos und cost_cents des Gateways nicht in UsageSummary.cost. Lies die Gateway-Antwort oder den Generierungsdatensatz aus, wenn du die genauen Kosten benötigst.
Fehler
Alle Laufzeitfehler verwendenAgentError:
PhaseoError werden in AgentError umgewandelt. Benötigt eine Anwendung den ursprünglichen Gateway-Status und -Antworttext, rufe den phaseo-Client direkt auf oder implementiere einen eigenen ModelClient, der diese Felder in der Fehlerbehandlung erhält.
Fehler lokaler Tool-Ausführungen werden als Tool-Ergebnisse an das Modell zurückgegeben, statt den Lauf sofort zu beenden.
Schrittgrenzen
AgentDefinition::max_steps(...) legt die Standardgrenze für Modellrunden fest. Für einen einzelnen Lauf kannst du sie überschreiben:
run.status gleich stopped und run.stop_reason gleich max_steps:<limit>.