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 に属している必要があります。
- 別の Session または Thread の cursor の場合は
404 thread_not_found。 - ランタイムが現在の Thread に対して無効と判断した Event cursor の場合は
400 invalid_event_cursor。 - Header を省略した場合は、その Thread の最初の Event から再生されます。Event は欠落しませんが、すでに処理した Event が再送されるため、Event ID に基づいて冪等に処理してください。
- 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 が存在しない、Session に属していない、または cursor が別の Session/Thread を指しています。 |
| 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 の取りこぼしを防ぎます。
Thread 一覧からアクティブな child Thread を検出した場合は、先に Thread Event 履歴を取得し、レスポンスの last_id で stream を開始します。Thread のアーカイブ後は child Thread stream を新規作成または再開できません。親 Session の履歴またはストリームからライフサイクル Event を復旧し、Thread 取得エンドポイントで最終状態を確認してください。