Eine gestreamte Timeline darstellen
Item-Typen in TypeScript
AgentItem<TOutput> ist eine Discriminated Union, und TypeScript grenzt jedes Item anhand seines type ein:
Items, die aus Anbieterausgaben gebaut werden, behalten außerdem die ursprüngliche Nutzlast in
rawProviderItem, für das seltene Feld, das die portablen Typen nicht enthalten. Baue Produktlogik auf den portablen Feldern auf, weil sich rawProviderItem je nach Anbieter unterscheidet.
Event-Typen in den anderen Sprachen
Go, C#, PHP, Ruby und Java liefern dieselben Event-Typen.item_stream() in Python liefert Anbieter- und Laufzeit-Items als Dicts mit einem Schlüssel type.
Wo die Felder liegen, unterscheidet sich je nach Sprache:
Keine davon ist eine typisierte Union. Validiere daher die Felder, die deine Oberfläche nutzt, kapsle anbieterspezifisches Parsen hinter einem Adapter und behalte einen Fallback für unbekannte Typen. In Go, C# und Java tragen Modell-Stream-Events die Lauf-ID
"stream"; die echte Lauf-ID bekommst du aus Lifecycle-Events. Die vollständige Liste der Lifecycle-Events steht unter Lifecycle-Hooks.
Eine Timeline nach dem Lauf wieder aufbauen
Der Event-Verlauf bleibt nach dem Ende des Laufs lesbar, sodass ein Consumer darstellen kann, während ein anderer Events speichert, ohne zweite Modellanfrage. Für eine dauerhafte Timeline speicherst du das abgeschlossene Laufergebnis:- TypeScript
- Python
- Go
- C#
- PHP
- Ruby
- Java
- Rust
Das abgeschlossene Ergebnis enthält in
items dieselben geordneten Items wie der Stream: