再試行 Budget/Backoff/失敗時の代替処理 Correctness
記事状態: 公開 · 最終確認: 2026-10-05
要点
再試行は各layerの「最大N回」ではなく、original user/処理の流れ requestに対するend-to-end budgetとして管理します。budgetにはtotal downstream attemptsだけでなく、wall-clock deadline、token/compute/API cost、side-effect リスクを含めます。
現在の判断
再試行は各layerの「最大N回」ではなく、original user/処理の流れ requestに対するend-to-end budgetとして管理します。budgetにはtotal downstream attemptsだけでなく、wall-clock deadline、token/compute/API cost、side-effect リスクを含めます。
どこまで当てはまるか
再試行 Budget/Backoff/失敗時の代替処理 Correctness
詳しく理解する
RETRY OWNERSHIP
SDK、orchestrator、service、ツール clientがそれぞれ自動再試行を持つ場合、全layerで独立に再試行しません。Amazonの分散システム運用例では、5層のcall stackで各layerが3 attemptsを行うと、最下流databaseへのloadが最大243倍に増幅し得ます。再試行 担当者を一つまたは明示的に調整された少数layerへ固定し、original request IDでtotal attemptsを数えます。
RETRYABILITY
同じrequestを再送すれば成功する可能性があるtransient 失敗だけを再試行候補にします。429、408、5xx、network errorは候補ですが、状態 codeだけで無条件に再試行しません。提供元/product guidance、Retry-After、利用枠、操作内容 semantics、残deadlineを確認します。invalid 認証情報、データ形式の定義 invalid、unsupported 操作内容、明示的policy denial等を同じ入力でblind 再試行しません。
BACKOFF AND JITTER
再試行間隔はbounded exponential backoffを基本とし、jitterで同期再試行を分散します。backoffだけでは十分ではありません。最大attempt、最大backoff、end-to-end deadlineをcapし、deadline内に意味のあるresponseを返せない再試行を開始しません。
SDK AUTO RETRY
GenAI SDKやcloud client libraryには既定の自動再試行が存在する場合があります。2026-10-05時点のGoogle Gemini Enterprise Agent Platform 仕様・利用方法の文書では、Gen AI SDK clientがtransient 処理待ち時間の上限/network/429/5xxにexponential-backoff 再試行を持ち、Python例では最大4 retries、初期待機約1秒、最大約60秒と説明されています。この既定値を全SDK/バージョンへ一般化せず、実際のclient/バージョン/設定をinventoryします。上位orchestratorの再試行と二重化しないようtotal budgetへ算入します。
IDEMPOTENCY AND PRECONDITIONS
再試行安全性は操作内容固有です。Google Cloud 保存領域では一部mutationがgeneration/metageneration 実行前の条件を付けた場合にconditionally idempotentになります。client libraryごとに再試行 defaultも異なります。「cloud APIだから再試行可能」と一般化せず、操作内容ごとの重複実行を防ぐ性質、実行前の条件、request tokenを固定します。
AMBIGUOUS SIDE EFFECT
処理待ち時間の上限やconnection lossはremote 操作内容が実行されなかった証明ではありません。payment、email、ticket update、resource creation等ではstable 重複実行を防ぐ性質/操作内容 keyを維持し、authoritative 状態 APIまたはresource 結果の照合で既済みか確認します。remote commit後response lossの可能性がある状態をblind 再試行しません。
FALLBACK CORRECTNESS
失敗時の代替処理 responseが返ったことを利用可能性 成功と同義にしません。別モデル、別提供元、結果の再利用、retrieval-off、tool-less responseでは、情報の鮮度、quality、ツール 利用可能な機能、structured-output 条件・契約、policy、データの保存地域が変わり得ます。失敗時の代替処理 routeには最低限、required 利用可能な機能、情報の鮮度 bound、policy/data classification、residency、出力の条件、残deadlineを実行前の条件として持たせます。条件を満たさない失敗時の代替処理は、エラーを隠す代替成功経路として使いません。
コストと運用負荷
再試行/失敗時の代替処理をoriginal requestの残deadlineと残cost budgetに従わせます。attemptごとにdeadline remainingとtoken/API costを更新し、成功確率があってもuser-visible deadlineを超える再試行や失敗時の代替処理は開始しません。background 復旧が必要ならinteractive requestとは別処理の流れへ切り離します。
稼働状況を観測する仕組み
original request IDに対してtotal attempts、再試行 layer/担当者、提供元/モデル/ツール、error class/状態、backoff、deadline remaining、token/API cost、重複実行を防ぐ性質/操作内容 key、authoritative 結果の照合、失敗時の代替処理 route、final 扱い・判断を記録します。再試行 amplification ratio、deadline exhaustion、cost amplification、失敗時の代替処理 rate/quality、duplicate-side-effect incidentを監視します。
実装・運用
本項は2026-10-05時点のAmazon Builders' Library、Google Cloud 保存領域 再試行 仕様・利用方法の文書、Gemini Enterprise Agent Platform 再試行 仕様・利用方法の文書とbounded ローカル環境の fixtureに基づきます。本番環境 提供元/ツール mutationやoutage injectionは未実施です。
よくある失敗・反証
nested SDK/orchestrator 再試行、再試行 storm、synchronized 再試行、cap plateau、Retry-After無視、利用枠 exhaustion、invalid request 再試行、deadline overrun、token/cost amplification、timeout-after-commit、duplicate 外部への変更・送信、重複実行を防ぐ性質 key loss、実行前の条件 omission、要再確認/low-capability 失敗時の代替処理、policy/residency mismatch、失敗時の代替処理 loop、稼働状況の記録 gap、cancellation raceを想定します。
nested 再試行 amplification、provider-specific 重複実行を防ぐ性質、SDK auto-retry、deadline/cost budget、失敗時の代替処理 意味上の correctnessを監査可能な運用境界として固定します。
実務での使い方
本項は2026-10-05時点のAmazon Builders' Library、Google Cloud 保存領域 再試行 仕様・利用方法の文書、Gemini Enterprise Agent Platform 再試行 仕様・利用方法の文書とbounded ローカル環境の fixtureに基づきます。本番環境 提供元/ツール mutationやoutage injectionは未実施です。
まだ確認できていないこと
- EA-247-UNKNOWN-01
対象Agent 実行環境、提供元/モデル/ツール、SDK バージョン/default 再試行、orchestrator 再試行、Retry-After処理、再試行/deadline/token/cost budget、side-effect 重複実行を防ぐ性質/状態 API、失敗時の代替処理 route/利用可能な機能、residency/policy、SLO、本番環境 失敗 distributionは未確認です。
根拠資料
この記事には、直接開ける外部出典が登録されていません。出典IDや検証情報は末尾で確認できます。
更新履歴
EA-247-FIRST-20261005: 正式な 監査/publication 対応付け
出典ID・検証情報・機械可読データ
根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。
- 記事ID
- EA-247
- 最終確認日
- 2026-10-05
- 提供元・モデル・プラン・利用環境
- —
- 対象地域
- —
元資料の全文と収録照合記録
PUBLIC_CLAIM
Retryは各layerの「最大N回」ではなく、original user/workflow requestに対するend-to-end budgetとして管理します。budgetにはtotal downstream attemptsだけでなく、wall-clock deadline、token/compute/API cost、side-effect riskを含めます。
RETRY_OWNERSHIP
SDK、orchestrator、service、tool clientがそれぞれ自動retryを持つ場合、全layerで独立にretryしません。Amazonの分散システム運用例では、5層のcall stackで各layerが3 attemptsを行うと、最下流databaseへのloadが最大243倍に増幅し得ます。retry ownerを一つまたは明示的に調整された少数layerへ固定し、original request IDでtotal attemptsを数えます。
RETRYABILITY
同じrequestを再送すれば成功する可能性があるtransient failureだけをretry候補にします。429、408、5xx、network errorは候補ですが、status codeだけで無条件にretryしません。provider/product guidance、Retry-After、quota、operation semantics、残deadlineを確認します。invalid credential、schema invalid、unsupported operation、明示的policy denial等を同じ入力でblind retryしません。
BACKOFF_AND_JITTER
retry間隔はbounded exponential backoffを基本とし、jitterで同期再試行を分散します。backoffだけでは十分ではありません。最大attempt、最大backoff、end-to-end deadlineをcapし、deadline内に意味のあるresponseを返せないretryを開始しません。
SDK_AUTO_RETRY
GenAI SDKやcloud client libraryには既定の自動retryが存在する場合があります。2026-10-05時点のGoogle Gemini Enterprise Agent Platform documentationでは、Gen AI SDK clientがtransient timeout/network/429/5xxにexponential-backoff retryを持ち、Python例では最大4 retries、初期待機約1秒、最大約60秒と説明されています。この既定値を全SDK/versionへ一般化せず、実際のclient/version/configurationをinventoryします。上位orchestratorのretryと二重化しないようtotal budgetへ算入します。
IDEMPOTENCY_AND_PRECONDITIONS
retry安全性はoperation固有です。Google Cloud Storageでは一部mutationがgeneration/metageneration preconditionを付けた場合にconditionally idempotentになります。client libraryごとにretry defaultも異なります。「cloud APIだからretry可能」と一般化せず、operationごとのidempotency、precondition、request tokenを固定します。
AMBIGUOUS_SIDE_EFFECT
timeoutやconnection lossはremote operationが実行されなかった証明ではありません。payment、email、ticket update、resource creation等ではstable idempotency/operation keyを維持し、authoritative status APIまたはresource readbackで既済みか確認します。remote commit後response lossの可能性がある状態をblind retryしません。
FALLBACK_CORRECTNESS
fallback responseが返ったことをavailability successと同義にしません。別model、別provider、cache、retrieval-off、tool-less responseでは、freshness、quality、tool capability、structured-output contract、policy、data residencyが変わり得ます。fallback routeには最低限、required capability、freshness bound、policy/data classification、residency、output contract、残deadlineをpreconditionとして持たせます。条件を満たさないfallbackは、エラーを隠す代替成功経路として使いません。
DEADLINE_AND_COST
retry/fallbackをoriginal requestの残deadlineと残cost budgetに従わせます。attemptごとにdeadline remainingとtoken/API costを更新し、成功確率があってもuser-visible deadlineを超えるretryやfallbackは開始しません。background recoveryが必要ならinteractive requestとは別workflowへ切り離します。
OBSERVABILITY
original request IDに対してtotal attempts、retry layer/owner、provider/model/tool、error class/status、backoff、deadline remaining、token/API cost、idempotency/operation key、authoritative readback、fallback route、final dispositionを記録します。retry amplification ratio、deadline exhaustion、cost amplification、fallback rate/quality、duplicate-side-effect incidentを監視します。
FAILURE_ENVELOPE
nested SDK/orchestrator retry、retry storm、synchronized retry、cap plateau、Retry-After無視、quota exhaustion、invalid request retry、deadline overrun、token/cost amplification、timeout-after-commit、duplicate side effect、idempotency key loss、precondition omission、stale/low-capability fallback、policy/residency mismatch、fallback loop、telemetry gap、cancellation raceを想定します。
IMPLEMENTATION_STATE
本項は2026-10-05時点のAmazon Builders' Library、Google Cloud Storage retry documentation、Gemini Enterprise Agent Platform retry documentationとbounded local fixtureに基づきます。production provider/tool mutationやoutage injectionは未実施です。
SAFE_WORDING
Retryは各layerの回数設定ではなく、original requestに対するend-to-end attempt/deadline/cost budgetとして管理してください。Backoffとjitterはretry集中を緩和しますが、nested retry、non-idempotent side effect、deadline超過を自動的には防ぎません。SDKの自動retryを含むretry ownerを明示し、ambiguous side effectはreadback/reconciliationし、fallbackはcapability・freshness・policy・residencyを満たす場合だけ成功経路として扱います。
OPEN_UNKNOWN
対象Agent runtime、provider/model/tool、SDK version/default retry、orchestrator retry、Retry-After処理、retry/deadline/token/cost budget、side-effect idempotency/status API、fallback route/capability、residency/policy、SLO、production failure distributionは未確認です。
STOP_CONDITION
nested retry amplification、provider-specific idempotency、SDK auto-retry、deadline/cost budget、fallback semantic correctnessを監査可能な運用境界として固定します。
EA-247-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET現行本文の監査・revision対応
- 裏付ける内容
- 現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
- 確認日
- —
- 出典・実験ID
- CANDIDATE-EA247-FIRST-20261005-C2-RESCUE20261013
- 検証箇所
- 1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ · EA_REVISION_LEDGER!A50:U50 · EA-247-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_CANONICAL_APPROVAL_READBACK
- 限界
- 監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
EA-247-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK現行本文の収録照合
- 裏付ける内容
- 公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
- 確認日
- 2026-10-13
- 出典・実験ID
- BODY-SHA256:fec3689440b3d2d7e7919146446978ac1507ad55d4b5174571bb4e05b32d0bf5
- 検証箇所
- content/staging/EA-247.md · fec3689440b3d2d7e7919146446978ac1507ad55d4b5174571bb4e05b32d0bf5 · EA-247-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_APPROVED_BODY_HASH_MATCH
- 限界
- 本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
- 出典ID
- CANDIDATE-EA247-FIRST-20261005-C2-RESCUE20261013, BODY-SHA256:fec3689440b3d2d7e7919146446978ac1507ad55d4b5174571bb4e05b32d0bf5
- 追跡中のUNKNOWN ID
- EA-247-UNKNOWN-01
- 再確認のきっかけ
- 正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合
機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。
同じ記事IDの機械可読データです。