| Ausführbare und parallele Tools | Integriert, mit deterministischer Ergebnisreihenfolge und Timeouts pro Tool |
| Laufzeitvalidierung | Eingabe-, Ausgabe-, Ereignis- und Agent-Endergebnisschemas mit parse, safeParse oder Validatorfunktionen |
| Menschliche Freigabe | Pro Tool oder Aufruf, mit Freigabe über die exakte Aufruf-ID und Ablehnung beim Fortsetzen |
| Tools mit menschlicher Beteiligung | Pause mit onToolCalled und Transformation mit onResponseReceived |
| Manuelle Tools | execute: false und extern bereitgestellte toolOutputs |
| Tools mit Fortschrittsmeldungen | Async-Generator-Tools und tool.preliminary_result-Ereignisse |
| Fehlerbehandlung für Tools | Lauf abbrechen oder dem Modell einen strukturierten Tool-Fehler zurückgeben |
| Streaming | Model-Deltas sowie wiederabspielbare Text-, Reasoning-, Element-, Tool- und vollständige Event-Consumer |
| Abbruchsteuerung | Schritte, Dauer, Tokens, Kosten, Tool-Aufrufe, Beendigungsgrund und benutzerdefinierte Prädikate |
| Dynamische Turns | Dynamisches Modell, Anweisungen, Sampling-Werte, Tool-Sets, Kontextänderungen und nextTurnParams |
| Dauerhafte Fortsetzung | Serialisierbare Laufergebnisse oder ein anwendungseigener state-Zugriff zum Laden und Speichern |
| Beobachtbarkeit | Normalisierte Nutzungs- und Kostendaten, Warnungen, Beendigungsgründe, Schrittergebnisse, Lifecycle-Ereignisse und lokale Devtools |