CLAUDE LABEN
MODEL — Claude Opus 4.8がコーディング・エージェント・専門業務で性能向上。長時間タスクの一貫性が強みですPLATFORM — Developer Platformにcode execution・MCP connector・Files API・最大1時間のプロンプトキャッシュが追加されましたSANDBOX — Claude Managed Agentsが自前サンドボックス+プライベートMCPサーバー接続に対応(Cloudflare/Daytona/Modal/Vercel等)MODEL — Fable 5(100万トークン文脈・常時アダプティブ思考)は6/12の米輸出管理指令でアクセス停止となりましたLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられますMCP — エンタープライズ管理型MCPコネクタ(Okta連携)でゼロタッチ利用が可能です(Team/Enterpriseベータ)MODEL — Claude Opus 4.8がコーディング・エージェント・専門業務で性能向上。長時間タスクの一貫性が強みですPLATFORM — Developer Platformにcode execution・MCP connector・Files API・最大1時間のプロンプトキャッシュが追加されましたSANDBOX — Claude Managed Agentsが自前サンドボックス+プライベートMCPサーバー接続に対応(Cloudflare/Daytona/Modal/Vercel等)MODEL — Fable 5(100万トークン文脈・常時アダプティブ思考)は6/12の米輸出管理指令でアクセス停止となりましたLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられますMCP — エンタープライズ管理型MCPコネクタ(Okta連携)でゼロタッチ利用が可能です(Team/Enterpriseベータ)
記事一覧/API & SDK
API & SDK/2026-06-22上級

pause_turn の継続ループに上限を入れる — 無人で長時間サーバーツールを安全に回す

web_search や code execution など長時間サーバーツールを使うと返ってくる pause_turn を、無人運用で安全に継続する設計をまとめました。4種類の stop_reason を1ループで分岐し、継続回数と時間に上限を入れ、セグメントを跨ぐ usage を数える実装まで扱います。

Claude39API23pause_turntool-use18production79

プレミアム記事

個人開発で Dolice Labs の4サイトぶんの記事生成を毎晩まとめて回しているのですが、ある朝だけ「検索したはずの最新情報が本文に入っていない」記事が混じっていました。エラーログには何も出ていません。レスポンスを保存しておいたものを開くと、stop_reasonpause_turn で返っていて、私の生成ループがそこで満足して止まっていたのです。web_search が一度の往復で終わらず「区切り」を返してきたのに、ループ側がそれを完了だと読んでしまっていました。

pause_turn は普段あまり目にしません。短いプロンプトでは出ないからです。けれど web_searchweb_fetch・コード実行のような長時間サーバーツールを挟むと、ある日突然返ってきます。しかも例外ではなく正常応答として返るので、握りつぶしている限り気づけません。無人運用ではここが静かな取りこぼしの温床になります。

pause_turn は「エラー」でも「完了」でもない、第三の状態

stop_reason を「応答が終わった理由」だと一括りにすると、pause_turn で必ず足をすくわれます。値の性格を「終わった系」と「まだ続く系」に分けて捉えるのが出発点です。

stop_reason状態必要な後続処理
end_turn正常終了なし。出力を確定してよい
max_tokens途中で打ち切り継続するか、不完全と記録する判断が要る
tool_use継続要求(クライアント側)tool_result を積んで再リクエスト
pause_turn継続要求(サーバー側)応答をそのまま積んで再リクエスト
refusal安全上の拒否再試行せず設計で受け止める

tool_usepause_turn は似ていますが、積み直すものが違います。tool_use は自分でツールを実行して tool_result という新しいユーザーメッセージを足す必要があります。一方 pause_turn は、サーバー側ツール(検索や実行)の途中経過がすでに assistant の応答に入っているので、追加入力なしで応答ブロックをそのまま積み直すだけで続きが走ります。基本的な分岐そのものはstop_reason を取りこぼさないための実装パターンで整理していますので、まだ max_tokens すら見ていないという段階の方はそちらから入るのが早いです。本稿はその先、「無人で長時間ツールを回すときに pause_turn をどう設計するか」に絞ります。

まず再現する — どのツールで pause_turn が出るか

闇雲に対策する前に、自分のコードで pause_turn を一度出しておくと判断が速くなります。サーバーサイドツールを有効にして、複数回の検索が要りそうな問いを投げます。

import anthropic
 
client = anthropic.Anthropic(api_key="YOUR_API_KEY")
 
resp = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=4096,
    tools=[{"type": "web_search_20260318", "name": "web_search"}],
    messages=[{
        "role": "user",
        "content": "2026年6月のClaude Developer Platformの更新を3件、出典つきで要約して",
    }],
)
print(resp.stop_reason)        # pause_turn になることがある
print([b.type for b in resp.content])
# 例: ['text', 'server_tool_use', 'web_search_tool_result', 'text']

ここで覚えておきたいのは、pause_turn のときも content には途中までの textserver_tool_useweb_search_tool_result といったブロックがすでに入っているという点です。つまり「空の応答」ではありません。だからこそ握りつぶすと、中途半端な本文がそのまま採用されてしまいます。私が最初にやらかしたのも、まさにこの「途中の text を完成品だと思い込む」失敗でした。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
pause_turn・tool_use・end_turn・max_tokens を1つの継続ループで分岐し、サーバーツールが途中で黙って切れる取りこぼしを塞げる
無人運用向けに継続回数の上限・経過時間ガード・セグメント横断の usage 加算を入れ、暴走するターンのコストを事前に止められる
ストリーミング時のイベント順序と、pause_turn を end_turn と誤読しないための観測ログ設計まで、そのまま貼れる実装で持ち帰れる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API & SDK2026-04-26
Claude API の stop_reason を読み解く — 応答の途切れを「終了」と誤認しないための設計
Claude API のレスポンスに含まれる stop_reason を正確に分岐するだけで、未完了出力の取りこぼしや無駄なリトライが大きく減ります。end_turn・max_tokens・pause_turn・refusal の見分け方と実装パターンをまとめました。
API & SDK2026-04-23
Claude API プロンプトインジェクション防御の設計パターン — 検出・サニタイゼーション・多層防御
ユーザー入力や外部データが混入する本番LLMアプリで必ず必要になる、プロンプトインジェクション防御の設計パターンを、実装コードと運用面の注意点を交えて体系的に解説します。
API & SDK2026-06-21
公開したくない社内サービスに Managed Agents を繋ぐ — MCP トンネル設計の勘所
Claude Managed Agents から、インターネットに公開していない社内 MCP サーバーへ安全に接続する設計を扱います。MCP トンネル・自前サンドボックス・認可境界・障害時の縮退まで、実運用で必要な判断を整理しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →