文章が1語ずつ作られる仕組みを図にした。終わり方は7通りある
応答はまとめて完成するのではなく、少しずつ届きます。どう終わったかは返答に記録されていて、7通りのうち2つは「途中で切れた」という意味です。

この記事の結論
- 応答は増分として少しずつ届く。まとめて完成するのではない
- どう終わったかは返答に記録されている
- 7通りのうち2つは「途中で切れた」という意味になる
- 応答は増分として少しずつ届く。まとめて完成するのではない
- どう終わったかは返答に記録されている
- 7通りのうち2つは「途中で切れた」という意味になる
画面に文字が流れるように出てくるのは演出ではない。本当に少しずつ作られている。その前提が分かると、答えが途中で終わる現象の見え方が変わる。
少しずつ届いている
公式ドキュメントの説明では、応答は増分(デルタ)として送られる仕組みが用意されている。届く順番も決まっている。
- 開始の合図(この時点では中身が空)
- 中身の塊ごとに「開始 → 増分の連続 → 終了」
- 全体に対する更新
- 停止の合図
2番の「増分の連続」が、画面で文字が伸びていく部分にあたる。

終わり方が記録されている
公式ドキュメントにはこうある。「Messages APIのすべての応答には、Claudeがなぜ生成を止めたかを示す stop_reason が含まれる」。
値は7通りある。
| 値 | 意味 |
|---|---|
end_turn | 自然に言い終えた。最も多い |
max_tokens | 指定した上限に達した |
stop_sequence | こちらが指定した文字列が出たので止めた |
tool_use | 道具を呼んでいる。結果を返すのを待っている |
pause_turn | サーバー側の繰り返しが上限に達した |
refusal | 応答を拒否した |
model_context_window_exceeded | 枠が満杯になった |
2つは「途中で切れた」という意味
max_tokens と model_context_window_exceeded は、言い終えていないことを示す。公式の対処欄にも、前者は「上限を増やすか、応答を継続する」、後者は「応答を切り詰められたものとして扱う」とある。
厄介なのは、見た目では分からないことだ。途中で切れていても、文章としては成立して見える。最後の段落が妙にあっさりしている、箇条書きの数が足りないといった形で出る。
長い文書を扱うときに起きやすい。渡し方の工夫は長い文書を読ませるときの渡し方に書いた。
「自然に終わる」とはどういうことか
公式の説明では、モデルは通常、自分のターンを自然に完了したときに止まり、その結果が end_turn になるとされている。
つまりどこで終わるかもモデルが決めている。長さを指示しても守られにくいのは、ここに理由がある。文字数は終わりの判断に直接結びついていない。
確実に止めたい場合は、こちらから止める文字列を指定する仕組みがある。指定した文字列が出た時点で生成が止まり、stop_sequence として記録される。
上限の設定について
max_tokens は「止まる前に生成するトークンの最大数」と説明されている。あわせて注記がある。モデルはこの最大に達する前に止まることがある。つまりこれは上限であって目標ではない。
設定を小さくすると、途中で切れる確率が上がる。考える量が多いモデルでは、考えたぶんもこの枠に数えられるので、余裕を持たせる必要がある。
枠との関係
生成されたものは、そのまま次の回の入力になる。この積み上がりが model_context_window_exceeded につながる。枠に何が入っているかは文脈ウィンドウに何が入っているのか、図にしたで整理した。
要約が途中で雑になる理由として
長い文章を要約させたとき、後半が薄くなることがある。原因は複数ありうるが、上限に達して切れている可能性は確認できる。
APIを直接使っていれば stop_reason を見れば分かる。画面から使っている場合は、「続けて」と頼んで続きが出るかどうかで判別できる。続きが出るなら、切れていたということになる。
頼み方で防ぐ方法は長い文章を要約させると大事なところが抜ける。防ぐために変えた頼み方に書いた。
まとめ
- 応答は増分として少しずつ届く
- 終わり方は
stop_reasonとして記録されている end_turnは自然に言い終えた状態。最も多いmax_tokensとmodel_context_window_exceededは途中で切れている- 切れていても文章としては成立して見える
- どこで終わるかはモデルが決める。確実に止めるには文字列を指定する
出典
- Anthropic「Handling stop reasons」(7つの値とそれぞれの意味、対処)
- Anthropic「Streaming messages」(増分で届くこと、イベントの流れ)
- Anthropic「Messages API」(max_tokens、stop_sequences)
図は本記事のために作成したもの。本記事は2026年10月13日時点の内容に基づく。
新しい記事が出たら、ブラウザの通知でお知らせします。
メールアドレスの登録は要りません。いつでも止められます。
関連記事
RELATED
学習に使われない設定でも、30日は残る。33万人分を上げてしまった件
パナソニックのグループ会社で、禁止されていた外部の生成AIに人事データが上げられました。学習しない設定だったのに、なぜ削…
銀行にログインしたまま、AIに作業させていいか。7種類を調べた論文を読んだ
ブラウザの30年来の約束事が、AIには適用されていないという論文です。原文を読んだら、報道と食い違う点が1つありました。
機能の一覧はよく見る。効く条件が書かれていない
「使われていない機能」を並べた紹介をよく見ます。実際に毎日使っている3つについて、公式の数字と、効かない条件を確認しまし…