LLM APIを本番で使うと、必ずどこかで429、529、5xx、通信タイムアウトのいずれかに遭遇します。無設計にリトライすると、二重課金、応答詰まり、上流障害の波及を招きます。
この記事では、LLM API呼び出しのリトライ、タイムアウト、冪等性の設計指針を、判断表とチェックリスト、運用指標で整理します。読了後には、自社のLLMアプリのリトライ設計を見直す優先順位を決められます。

LLM APIを本番で使うと、必ずどこかで429、529、5xx、通信タイムアウトのいずれかに遭遇します。無設計にリトライすると、二重課金、応答詰まり、上流障害の波及を招きます。
この記事では、LLM API呼び出しのリトライ、タイムアウト、冪等性の設計指針を、判断表とチェックリスト、運用指標で整理します。読了後には、自社のLLMアプリのリトライ設計を見直す優先順位を決められます。

まず、LLM APIの応答種別ごとの基本対応を整理します。

| 応答 | 何が起きているか | 基本の対応 | 待ち時間の決め方 |
|---|---|---|---|
| 429 | レート上限超過 | リトライ可 | Retry-Afterヘッダーを最優先 |
| 529 | 提供側の一時的な高負荷 | リトライ可 | 指数バックオフ+ジッター |
| 5xx | 一時的なサーバーエラー | リトライ可 | 指数バックオフ+ジッター |
| 408/接続断 | 通信タイムアウト | 冪等性を担保できるならリトライ | 指数バックオフ+ジッター |
| 400/422 | 入力エラー | リトライ不可 | プロンプトや引数を修正 |
| 401/403 | 認証・権限エラー | リトライ不可 | 認証情報と契約を確認 |
| 404 | 対象が存在しない | リトライ不可 | 対象IDを確認 |
Anthropic公式は「429ではretry-afterに従う」「529はレート制限ではなく容量制約」と明記しています。まずこの区別が運用の起点になります。
※本記事のAPI仕様への言及は2026年8月26日時点の各社公開情報を基にしています。LLM関連サービスの料金、エラー仕様、レート制限は変更される場合があります。導入前に公式情報で最新条件を確認してください。
はじめに、本記事で扱う用語を最短で押さえます。
| 用語 | 意味 |
|---|---|
| リトライ | 失敗したAPI呼び出しを時間をおいてやり直すこと |
| タイムアウト | 応答が返らない場合に待つのをやめる上限時間 |
| 冪等性 | 同じ操作を何回行っても結果が1回と同じになる性質 |
| 指数バックオフ | 待ち時間を毎回2倍などに伸ばして再試行する方式 |
| ジッター | 待ち時間に乱数を加えて再試行の一斉集中を避ける工夫 |
| サーキットブレーカー | 失敗が続くとき呼び出しを一時停止して系を守る仕組み |
| Retry-Afterヘッダー | サーバーが次に呼んでよい時間を返す応答ヘッダー |
用語がそろえば、あとは「どのエラーで、どれを、どの順で使うか」だけです。
LLM APIは通常のWeb APIよりリトライ設計の失敗コストが高いです。理由は3つあります。

1つ目は課金がトークン単位で発生することです。無邪気なリトライは1リクエストで数倍の費用を生みます。
2つ目は長時間の応答生成です。生成中断や途中リトライは、待ち時間もコストも二重になります。
3つ目はレート制限が厳しめに設計されている点です。429を無視して再送すると、アカウント単位でさらに長時間ブロックされる可能性があります。
エラー種別と業務条件で決めます。単一のリトライ方針では守れません。
| 比較軸 | 確認すること | 実務上の意味 |
|---|---|---|
| リトライ可否 | エラーコードと発生状況 | 誤リトライは二重処理と課金重複を招く |
| 待ち時間 | Retry-After、指数バックオフ、ジッター | 一斉再試行で提供側を追加圧迫しない |
| タイムアウト | 接続、読み取り、全体の分離設定 | ユーザー待ちとスレッド詰まりを分ける |
| 冪等性 | 冪等キー、書き込み系の再現条件 | 決済・投稿・生成物の重複を防ぐ |
| 停止条件 | 最大回数、合計時間、遮断閾値 | 障害の広がりより先に系を止める |
| 観測 | エラー率、リトライ率、失敗率、遅延 | 劣化を運用中に検知できる |
上の表は、LLMアプリのSLO(サービス品質目標)と月次コストに直結します。設計時に必ず1回は埋めておきます。

コードに落とす順番を、優先度順に並べます。
タイムアウトを単一値にしないでください。次の3層に分けます。
長文生成やRAG(社内文書などを検索してLLMに渡す方式)併用では、全体タイムアウトを長め、読み取りタイムアウトを短めに設定すると、詰まりの原因を切り分けやすくなります。
固定間隔のリトライは、複数クライアントの再試行が同時に発生します。これは提供側にとって攻撃と同じ形になります。
Anthropicは「Retry-After → レート制限リセットヘッダー → ジッター付き指数バックオフ」の順で判断することを推奨しています。
LLM API呼び出し自体は基本的に副作用がありません。しかし、応答をDBやSlackへ書き込む処理はリトライで重複します。
書き込み系の冪等性チェックポイント:
冪等性が担保できないなら、そもそもリトライしない選択も正しい設計です。
ストリーミング応答の途中断は、単純にリトライしてよい場合と悪い場合があります。
途中まで書き出したトークンをどう扱うかを、UI仕様とDB書き込みの両面で決めておく必要があります。
上流のLLM APIが長時間不安定なとき、リトライを続けると自社側のスレッドが枯渇します。
サーキットブレーカーは「上流の障害を自系の障害にしない」ための仕組みです。
観測なしのリトライは、後で必ず事故になります。最初から次の指標を出します。
| 指標 | 何を測るか | 運用でどう使うか |
|---|---|---|
| エラー率 | 全リクエストに占める失敗の割合 | SLO違反と根本原因を把握する |
| リトライ率 | 再試行の発生割合 | 上流劣化と設計不備の早期検知 |
| 冪等重複数 | 同一キーで複数回書き込まれた件数 | 冪等性実装のバグ検知 |
| 平均・p95応答時間 | エンドユーザー待ち時間 | UX劣化と負荷詰まりの兆候検知 |
| リトライ由来コスト | リトライで発生した追加トークン費 | 月次コストの説明可能性を担保 |
リトライ設計は「入れれば安心」ではありません。逆に事故を増やす典型パターンがあります。
注意
エラー種別、レート制限、Retry-Afterの返却条件は各社ドキュメントで異なります。必ず提供元の最新公式仕様を確認してから実装してください。
LLM APIのリトライ設計は、単なるHTTPリトライ設計ではありません。生成AI固有の課金、体感待ち、ストリーミング、モデル切替を業務要件に接続する必要があります。

Blackford Technologiesでは、次の観点で個別設計しています。
社内データを扱うRAGや業務AIアプリでは、DataRoidやDataRoid Cloudのようなデータ基盤側で、リトライ・キャッシュ・冪等性を運用しやすい形に設計します。個別のLLMアプリ実装や本番リトライ設計の相談はAI開発・実装サービスから進められます。
まずRetry-Afterヘッダーの値に従うのが基本です。Retry-Afterがない場合は、指数バックオフとジッターで待ちます。早めの再送はサーバー側で追加ブロックの対象になる可能性があるため避けます。
一般的には最大3〜5回、合計待ち時間で60秒程度が目安です。ユーザーが待つ画面上のリクエストは短めに、バッチ処理は長めに設定します。停止条件を決めない設計は事故の原因になります。
出力をDBに書き込む処理やツール実行に流している場合は、単純リトライは危険です。書き込みの巻き戻しか冪等性設計が必要です。純粋に画面表示だけなら、続きから再生成するプロンプト再送で対応できます。
LLM生成そのものより、生成結果を書き込むDB、決済、通知APIで必須です。OpenAI公式SDKなど一部はSDKレベルで冪等ヘッダーを自動付与しますが、業務側の書き込み処理は自前の冪等キーが必要です。
一律ではなく、接続・読み取り・全体の3層で分けます。長文生成やRAG併用では全体タイムアウトを長め(60〜120秒)、読み取りタイムアウトを短め(10〜30秒)に設定します。ユーザーが待つ画面では別途、UI側で早期フィードバックを設計します。
LLM APIのリトライ設計は、エラー種別に応じた対応表、指数バックオフとジッター、冪等性、サーキットブレーカー、観測指標を一式そろえて初めて機能します。
一部だけの実装は、二重課金、応答詰まり、上流障害の波及を招きます。既存のLLMアプリでも、まず本記事の判断表と実装チェックリストを埋めるところから見直しできます。
社内AI導入や本番運用で、リトライ設計を含む安全な実装に迷う場合は、業務要件と運用体制を整理したうえで専門家に相談してください。
\LLM本番運用の設計を相談できます/
Blackfordに相談する








