Wo der Handler hingehört und was er erhält
Events, die die Laufzeit sendet
Die Detail-Schlüssel sind unten in snake_case aufgeführt; TypeScript verwendet die camelCase-Form.
Rust
0.2 verwendet für einige Events eigene Namen:
Ein Lauf, der an einer Stoppbedingung endet, sendet in TypeScript
run.stopped und in Python, Go, C#, PHP, Ruby oder Java kein abschließendes Event; lies stattdessen den Status des Laufs. In TypeScript wird step.completed gesendet, nachdem der Schritt als Checkpoint gespeichert wurde, sodass Persistenz- und Telemetrie-Consumer es als stabile Grenze behandeln können.
Events streamen
Beim Streaming kommen dieselben Lifecycle-Events zusammen mit denresponse.*-Events des Modells an. In TypeScript, Python, Go, C# und Java erhält sie der Handler; in PHP und Ruby erscheinen sie außerdem in fullStream() / full_stream. Rust hat kein Streaming. Die Stream-Consumer sind unter Streaming beschrieben.
Handler schnell halten
Die Laufzeit wartet auf den Handler, bevor sie weitermacht. Kehre daher schnell zurück und verlagere langsame Speicher- oder Netzwerkarbeit in eine Warteschlange. Schwärze sensible Tool-Eingaben und -Ausgaben, bevor Events deinen Prozess verlassen.Events für eine Produktoberfläche auswählen
Verwenderesponse.output_text.delta für Live-Antworttext, Tool-Events für Tool-Aufruf-Karten und Fortschrittsanzeigen, run.waiting_for_human (Rust: run.paused), um Bedienelemente für Freigabe oder Eingabe anzuzeigen, und abschließende Lauf-Events, um Ladezustände zu beenden. Für eine lokale Aufzeichnung ganzer Läufe während der Entwicklung verwendest du DevTools.