Forward Session Thread の公開 Event を Server-Sent Events でストリーミングします。
GET /api/v1/forward/sessions/{session_id}/threads/{thread_id}/stream
リクエストパラメーター
| 場所 | パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|---|
| Header | Authorization | string | はい | Bearer <PAT または SAT> |
| Header | Accept | string | いいえ | text/event-stream を推奨します。省略しても接続できます。 |
| Header | Last-Event-ID | string | いいえ | この Thread Event の後から購読を再開します。 |
| Path | session_id | string | はい | sess_ プレフィックス付きの Session ID。 |
| Path | thread_id | string | はい | sthr_ プレフィックス付きの Thread ID。 |
type、types、types[]、include_tool_calls、include_thinking、event_deltas[] をサポートしません。空の値であっても指定すると 400 invalid_request が返され、ストリームは開始されません。
リクエスト例
ストリーム形式
: heartbeat コメント行を定期送信します。すべての frame を受信し、表示上のフィルタリングはローカルで行い、再接続用に最後の SSE id を保存してください。
Last-Event-ID
Last-Event-ID は現在の Thread に使用できる必要があります。
- 別の Thread に属する cursor、現在の呼び出し元から参照できない cursor、または現在の状態では使用できない cursor の場合は
400 invalid_event_cursor。 - Thread は存在するが、cursor に対応する Event が利用できなくなっている場合は
404 event_cursor_not_found。 - Header を省略した場合は、接続時点の Thread イベントストリーム末尾から配信を開始し、接続確立後に新しく生成された Event のみを受信します。履歴 Event は再送されません。履歴または切断中の Event を取得するには、Thread Event の一覧取得でページ単位に取得してから、
Last-Event-IDを指定して stream を確立してください。 - SSE 接続は、ゲートウェイのタイムアウトやサーバーの再起動などにより切断されることがあります。サーバーは接続が長時間維持されることを保証しないため、クライアント側で再接続とリトライを実装してください。再接続時は、最後に受信した Event ID を
Last-Event-IDに指定して、続きから購読を再開します。
エラー
| HTTP | Type | Code | 条件 |
|---|---|---|---|
| 400 | invalid_request | invalid_request | サポートされていない selector を指定しました。 |
| 400 | invalid_request_error | invalid_event_cursor | Last-Event-ID が現在の Thread では無効です。 |
| 401 | authentication_error | authentication_required | PAT または SAT が無効または期限切れです。 |
| 404 | not_found | session_not_found | Session が存在しないか、呼び出し元から参照できません。 |
| 404 | not_found_error | thread_not_found | Thread が存在しないか、呼び出し元から参照できません。 |
| 404 | not_found_error | event_cursor_not_found | Thread は存在しますが、Last-Event-ID に対応する Event は利用できません。 |
| 502 | api_error | runtime_unavailable | Thread ランタイムサービスが利用できません。 |
Thread の検出と復旧
親 Session の履歴またはストリームでは、session.thread_created、session.thread_status_running、session.thread_status_idle、session.thread_status_rescheduled、session.thread_status_terminated により child Thread の作成と状態変化が公開されます。
親 Session stream で session.thread_created を受信したら、その Event ID を child Thread stream の最初の Last-Event-ID として使用し、Thread の検出から接続までに生成された Event の取りこぼしを防ぎます。
event_cursor_not_found のエラーメッセージは Event '<event_id>' was not found. です。このエラーを受け取った場合は、Thread Event 履歴を再クエリして新しい接続を確立してください。Thread が削除されたことを意味するものではありません。
Thread 一覧からアクティブな child Thread を検出した場合は、先に Thread Event 履歴を取得し、レスポンスの last_id で stream を開始します。Thread のアーカイブ後は child Thread stream を新規作成または再開できません。親 Session の履歴またはストリームからライフサイクル Event を復旧し、Thread 取得エンドポイントで最終状態を確認してください。

