CLAUDE LABEN
TOOLSWAP — 会話の途中でツールを追加・削除できるベータが始まりました。プロンプトキャッシュを保ったまま入れ替えられ、Fable 5・Mythos 5・Opus 4.8・Opus 5 が対象ですFALLBACK — fallbacks パラメータに default モードが加わり、拒否のカテゴリごとに推奨のフォールバックモデルが当たります。サーバ側フォールバックもベータ提供ですADDDIR — /add-dir や SDK の register_repo_root で作業ディレクトリを追加した直後に発火する DirectoryAdded フックが追加されましたMCPERR — --mcp-config の検証で読み飛ばされたエントリが、ヘッドレスの stream-json init イベントに mcp_server_errors として載ります。端末実行では起動時に警告が出ますFANOUT — 同時に動くサブエージェントの上限が既定20になりました。--max-budget-usd に達すると新規の起動が拒否され、動作中のバックグラウンドも止まりますOPUS5 — Claude Opus 5 は 1M コンテキスト・最大128Kトークン出力で、thinking が既定で有効です。価格は Opus 4.8 と同じに据え置かれていますTOOLSWAP — 会話の途中でツールを追加・削除できるベータが始まりました。プロンプトキャッシュを保ったまま入れ替えられ、Fable 5・Mythos 5・Opus 4.8・Opus 5 が対象ですFALLBACK — fallbacks パラメータに default モードが加わり、拒否のカテゴリごとに推奨のフォールバックモデルが当たります。サーバ側フォールバックもベータ提供ですADDDIR — /add-dir や SDK の register_repo_root で作業ディレクトリを追加した直後に発火する DirectoryAdded フックが追加されましたMCPERR — --mcp-config の検証で読み飛ばされたエントリが、ヘッドレスの stream-json init イベントに mcp_server_errors として載ります。端末実行では起動時に警告が出ますFANOUT — 同時に動くサブエージェントの上限が既定20になりました。--max-budget-usd に達すると新規の起動が拒否され、動作中のバックグラウンドも止まりますOPUS5 — Claude Opus 5 は 1M コンテキスト・最大128Kトークン出力で、thinking が既定で有効です。価格は Opus 4.8 と同じに据え置かれています
記事一覧/Claude Code
Claude Code/2026-06-12中級

Claude Code の fallbackModel を三段構成にする — 過負荷の朝でも止まらない無人実行の設計記録

Claude Code の fallbackModel を三段構成で運用し、過負荷時も夜間バッチを止めない設計を実測つきでまとめます。実行モデルの記録方法、下位モデルに落ちた日の品質差への備え、deny ルール併用まで。

claude-code129fallbackmodelautomation54scheduled-jobs2reliability14

プレミアム記事

6月のある朝、Crashlytics のトリアージレポートが空のまま届いていました。私は個人開発のアプリ運用で、毎朝6時に headless の Claude Code(claude -p)にクラッシュログの分類を任せているのですが、その日のログには overloaded_error(HTTP 529)が3回並び、リトライ上限に達して終了していました。再試行だけに頼った設計の弱さを突きつけられた出来事です。クラッシュの放置は AdMob の収益低下やストアレビューの悪化に直結するため、このトリアージは私の運用の中で最も止めたくないバッチでした。

直近30日のログを集計すると、529 で朝のバッチが空振りした日は4日ありました。月にして約13%の欠損です。人間が画面の前にいれば「少し待ってもう一度」で済みますが、無人実行ではその「少し待つ」をどれだけ重ねても、過負荷が続く朝には勝てません。そこで Claude Code に追加された fallbackModel 設定を使い、モデル自体を順次切り替える三段構成へ移行しました。この記事はその設計と、実際に運用して分かった注意点の記録です。

再試行ループだけでは越えられなかった壁

移行前の私のスクリプトは、よくある指数バックオフでした。

#!/bin/bash
# Before: 同一モデルへの再試行のみ。過負荷が続く朝は全滅する
PROMPT_FILE="$HOME/ops/crashlytics_triage_prompt.md"
for i in 1 2 3; do
  if claude -p "$(cat "$PROMPT_FILE")" > /tmp/triage_result.md 2>/tmp/triage_err.log; then
    exit 0
  fi
  sleep $(( i * 60 ))  # 1分 → 2分 → 3分
done
echo "triage failed after 3 attempts" >&2
exit 1

このコードの問題は、再試行しても同じモデルの同じ混雑にぶつかり続けることです。529 はサーバー側の過負荷なので、数分のバックオフで解消する日もあれば、30分以上続く日もあります。空振りした4日のログを見返すと、3回の再試行はいずれも最初の失敗から6分以内に使い切られていました。混雑のピークはそれより長く続いていたわけです。

fallbackModel の配列指定で何が変わるのか

Claude Code の fallbackModel は、settings.json に配列で最大3モデルまで指定でき、プライマリモデルが過負荷などで応答できないときに別のモデルへ順次切り替えて実行を続けます。再試行が「同じ窓口に並び直す」行為だとすれば、フォールバックは「空いている隣の窓口へ移る」行為です。混雑の質が違う窓口に移れることが、無人実行では決定的に効きます。

// After: .claude/settings.json — 過負荷時は別モデルへ順次切り替え
{
  "model": "claude-fable-5",
  "fallbackModel": ["claude-opus-4-8", "claude-sonnet-4-6"]
}

設定はこれだけで、スクリプト側の変更は不要です。移行後の30日間で、プライマリが応答できずフォールバックが発動した朝は3回ありましたが、バッチが空振りした日はゼロになりました。529 の発生そのものは止められなくても、結果の欠損は止められます。

一点、運用して分かった注意があります。fallbackModel が効くのは過負荷やモデル利用不可のエラーに対してであり、タイムアウトには効きません。常時適応思考を持つモデルをプライマリに置くと、簡単に見えるタスクでも思考量が増えて所要時間が読みにくくなることがあります。私自身はバッチ全体のタイムアウトを従来の1.5倍に広げました。フォールバックだけでは対処できない失敗モードが残る前提で、タイムアウトは別の保険として設計することを推奨します。

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

この記事の続きを読む

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

この記事で得られること
Fable 5 → Opus 4.8 → Sonnet 4.6 と並べる三段 fallbackModel 構成の設定例と選定基準
stream-json の init メッセージから実行モデルを取り出して CSV に記録する bash 実装
Sonnet 4.6 へ落ちた日の分類一致率90%という実測と、そこから決めた2つの運用ルール
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Claude Code2026-07-14
push先がいつの間にか一つ増えていた — /commit-push-pr が origin 以外のリモートへも押し始めた変更に、許可リストで蓋をする
7月14日の更新で /commit-push-pr が origin に加えて設定済みの push リモートへも自動で押すようになりました。便利な一方、ミラーやバックアップ用の第二リモートを持つ環境では、意図しない push が静かに増えます。どのリモートへ押し得るかを棚卸しし、許可リスト外の push を pre-push フックで止め、無人実行でも安全に回す設計を実装込みで整理しました。
Claude Code2026-07-03
5分の沈黙で誰かがやり直しを始める — streaming idle watchdog 既定化で数え直すリトライの責務
Claude Code の streaming idle watchdog 既定化で、実行スタックに再試行する層がもう一枚増えました。SDK・自前ラッパー・watchdog・スケジューラの4層を棚卸しし、最悪ケースの試行回数を掛け算で見積もり、リトライ責務を一層に畳む設計をまとめます。
Claude Code2026-06-14
Claude Code の Hooks で品質ゲートを壊さず回す — exit code の意味・ブロック挙動・観測設計の実装メモ
Claude Code Hooks を自動化の安全弁として運用するための実装メモ。exit code 0/2/その他の使い分け、JSON 出力による決定制御、ブロックが暴発したときの切り分け、観測ログの設計までを実例で整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →