メインコンテンツへスキップ
ストリーミングされる各イベントやアイテムの type で分岐し、テキスト、推論、ツール呼び出し、進捗を届いた順に表示します。後で、保存した実行結果から同じタイムラインを組み立て直せます。TypeScript は型付きのアイテムのユニオンを返し、その他の言語は生のイベントをマップ、dict、ハッシュとして返します。

ストリーミングしたタイムラインを表示する

Rust にはストリーミングがありません。下のように、完了した実行からタイムラインを組み立ててください。

TypeScript のアイテムの型

AgentItem<TOutput> は判別可能なユニオンで、TypeScript は各アイテムを type から型を絞り込みます。 プロバイダーの出力から作られたアイテムは、移植可能な型に含まれないまれなフィールドのために、元のペイロードを rawProviderItem にも保持します。rawProviderItem はプロバイダーによって異なるため、製品のロジックは移植可能なフィールドの上に組み立ててください。

その他の言語のイベントの種類

Go、C#、PHP、Ruby、Java は同じ種類のイベントを返します。Python の item_stream() は、プロバイダーとランタイムのアイテムを type キーを持つ dict として返します。 フィールドの置き場所は言語によって異なります。 どれも型付きのユニオンではないため、UI が使うフィールドは検証し、プロバイダー固有のパースは1つのアダプターの裏にまとめ、不明な種類へのフォールバックを残してください。Go、C#、Java では、モデルのストリームイベントの実行 ID は "stream" です。実際の実行 ID にはライフサイクルイベントを使います。ライフサイクルイベントの全一覧はライフサイクルフックにあります。

実行後にタイムラインを組み立て直す

イベントの履歴は実行が終わった後も読めるため、2回目のモデルリクエストなしで、1つのコンシューマーが表示し、別のコンシューマーがイベントを永続化できます。永続的なタイムラインには、完了した実行結果を保存してください。
完了した結果の items には、ストリームと同じ順序のアイテムが入っています。
最終更新日 2026年11月5日