ストリーミング応答とは

この記事の結論

  • ストリーミング応答とは、AIの回答が出そろうのを待たず、生成された部分から順に受け取って表示していく仕組みです。
  • 多くのAIのAPIは、サーバー送信イベント(SSE)という形式で、回答の断片を小さなイベントに分けて送ってきます。
  • 縮むのは最初の文字が出るまでの時間で、回答全体を作る時間はほぼ変わりません。途中でエラーが届くことも前提に作ります(2026-09-26 更新)。

すとりーみんぐおうとう/Streaming Response

AIの回答が出そろうのを待たず、生成された部分から順に受け取って表示していく仕組みです。

最終更新: 2026-09-26

01

ストリーミング応答とは(意味と読み方)

ストリーミング応答とは、AIの回答が出そろうのを待たず、生成された部分から順に受け取って表示していく仕組みのことです。読み方は「すとりーみんぐおうとう」、英語では streaming response と書きます。stream は「流れ」という意味です。

AIは回答を1トークンずつ作ります。ストリーミングなしだと、最後のトークンができるまで画面には何も出ません。ストリーミングありなら、できた分から画面に流れ込むので、利用者は待っている間も読み進められます。チャット画面で文字が少しずつ現れるのは、この仕組みによるものです。

02

ストリーミング応答の仕組み(SSE)

よく使われるのは、サーバー送信イベント(Server-Sent Events、SSE)という形式です。サーバーは text/event-stream という種類で応答し、接続を開いたまま、event: や data: で始まる行を送り続けます。1つのメッセージは空行で区切られます(サーバー送信イベントの使用(MDN Web Docs))。

AIのAPIでは、リクエストに "stream": true を付けるとこの形式で返ってきます。Anthropic の Messages API の場合、届く順番は次のとおりです(ストリーミングの説明(公式ドキュメント))。

  1. message_start:中身が空の回答の枠が届く。
  2. content_block_start → content_block_delta(何度も)→ content_block_stop:回答の断片が少しずつ届く。
  3. message_delta:終わった理由や使ったトークン数などが届く。
  4. message_stop:終わりの合図。

途中には接続を保つための ping が混ざることもあります。OpenAI の Responses API でも同じく SSE が使われ、文字の断片は response.output_text.delta、完了は response.completed というイベントで届きます(ストリーミングの手引き(公式ドキュメント))。

03

AI開発でのストリーミング応答の使いどころ

  • チャット画面:content_block_delta が届くたびに、その中の文字を画面の末尾に足していきます。
  • 長い出力の生成:Anthropic のドキュメントは、出力の上限を大きく取るリクエストでは、HTTP のタイムアウトを避けるためにSDKがストリーミングを求めると書いています。画面に流さない場合でも、内部でストリーミングを使って最後にまとめて受け取る方法が用意されています。
  • AIコーディングエージェントの作業を見守る:書き進める様子が見えるので、方向がずれたと分かった時点で止めて指示を出し直せます。
04

ストリーミング応答のよくある誤解

  • 誤解:ストリーミングにすると回答が早く完成する → 実際:短くなるのは最初の文字が出るまでの時間です。全体を作る時間はほぼ同じで、変わるのは待たされる感覚です。詳しくはレイテンシを参照してください。
  • 誤解:最初に 200 が返れば成功 → 実際:応答が始まった後でも、エラーがイベントとして届くことがあります。Anthropic のドキュメントでは、混み合っているときに overloaded_error が流れてくる例が示されています。ストリーミングでなければ HTTP 529 にあたるものです。
  • 誤解:使ったトークン数は届いた数を足せばよい → 実際:Anthropic の message_delta に入るトークン数は累計です。足し合わせると二重に数えてしまいます。
05

ストリーミング応答を組み込むときの注意点

  • 途中で切れたときの表示を決めておく:通信が切れたりエラーが届いたりしたら、それまでの文字を残すのか消すのかを先に決め、未完成であることを画面に示します。
  • 内容のチェックが難しくなる:OpenAI の手引きは、途中までの文章は評価しにくく、本番でストリーミングすると出力の内容を点検しにくくなると注意しています。公開サービスでは、表示後に止める手段も用意します。
  • ブラウザの同時接続数:MDN によると、HTTP/2 を使わない場合、SSE の接続はブラウザとドメインの組ごとに6本までに制限されます。タブを何枚も開く使い方では詰まることがあります。
06

関連用語

07

関連記事

08

出典・参考資料

09

ストリーミング応答についてよくある質問

Q1. ストリーミング応答とは何ですか?
AIの回答が出そろうのを待たず、生成された部分から順に受け取って表示していく仕組みです。チャット画面で文字が少しずつ現れるのは、この仕組みによるものです。

Q2. ストリーミングにすると応答は速くなりますか?
最初の文字が画面に出るまでの時間は短くなります。一方で、回答全体ができあがるまでの時間はほとんど変わりません。改善されるのは、利用者が待たされていると感じる時間です。

Q3. SSEとは何ですか?
Server-Sent Events の略で、サーバーが接続を開いたまま、event や data で始まる行を少しずつ送り続ける形式です。多くのAIのAPIが、回答の断片を届けるのにこの形式を使っています。

Q4. ストリーミングの途中でエラーになることはありますか?
あります。応答が始まった後でも、混雑などを知らせるエラーがイベントとして届くことがあります。受け取る側は、途中で終わった場合の表示と、再試行するかどうかを決めておきます。