AI API 操作を冪等にする
AI API 操作を冪等にする:明確な判断、再利用可能な成果物、失敗試験、運用シグナル、出典付き制約を含む本番ガイド。

AI API 操作を冪等にする:明確な判断、再利用可能な成果物、失敗試験、運用シグナル、出典付き制約を含む本番ガイド。
先に結論
AI API 操作を冪等にするは一時的な設定ではなく、信頼性制御の契約として実装します。トラフィック移動前にプロトコル、owner、証拠、rollback を固定します。制御点は logical_request_id, idempotency_key, request_digest, durable_result です。
判断は契約表と決定的な例で固定します。ai-api-idempotency の必須制御に wire 証拠、永続 readback、owner のいずれかがなければ rollout しません。
範囲と責任
クライアント作業と control plane を分けます。クライアントはファイルや環境変数、ゲートウェイは認証・ルート・制限・会計・試行、プロバイダーはネイティブプロトコルと変動する能力を所有します。テキスト応答 1 回は 1 経路だけの証拠です。
記事は判断・リスク・検証を担当し、ライブ文書は変動するコマンドと UI 手順を担当します。これにより、同じ検索意図の owner を重複させず能力ツリーを作れます。
このページの owner 記録は ai-api-idempotency、固定制御点は logical_request_id, idempotency_key, request_digest, durable_result です。各値は wire または永続状態の境界で検証し、マーケティング名から推測しません。
実用的な成果物: AI API 操作を冪等にする
次のレビュー記録が成果物です。技術値を明示し、スクリーンショットに頼らず設定、wire 証拠、永続状態を比較できます。
| 制御点 | 固定判断 | 保存する証拠 |
|---|---|---|
key_scope |
principal_plus_operation_plus_idempotency_key |
principal_id + operation + key |
request_binding |
canonical_digest_must_match |
request_digest + schema_version |
reservation |
atomic_pending_record_before_side_effect |
unique_constraint + created_at + owner |
replay |
same_key_same_digest_returns_durable_result |
original_result_id + replay_count |
conflict |
same_key_different_digest_rejected |
conflict_status + both_digests_without_payload |
recovery |
stale_pending_requires_owned_reconciliation |
lease + side_effect_receipt + terminal_write |
決定的な例
例はプレースホルダーと決定的入力のみです。レビュー済み識別子だけに置換し、秘密や顧客内容を入れず、正確な snapshot を保存します。
BEGIN;
INSERT INTO operation_ledger
(principal_id, operation, idempotency_key, request_digest, status)
VALUES
(:principal, :operation, :key, :digest, 'pending')
ON CONFLICT DO NOTHING;
-- only the transaction that owns the new row may perform the side effect
-- persist terminal result before returning it to the caller
COMMIT;
段階的な検証
順番に検証します。後段の成功は前段の欠落を補えず、すべての試行を 1 つの論理リクエストへ関連付けます。
- クライアント、ゲートウェイポリシー、モデル alias、ルート、観測基準を固定する。
key_scopeの証拠:principal_plus_operation_plus_idempotency_keyを強制し、principal_id + operation + keyを保存します。 - 決定的な正常 probe を実行し、応答、request ID、ルート、終端状態、usage を保存する。
request_bindingの証拠:canonical_digest_must_matchを強制し、request_digest + schema_versionを保存します。 - 対になる異常、上限、切断ケースを実行し、想定層で失敗することを確認する。
reservationの証拠:atomic_pending_record_before_side_effectを強制し、unique_constraint + created_at + ownerを保存します。 - 実際のプロトコル面で再実行し、隣接 endpoint からネイティブ対応を推測しない。
replayの証拠:same_key_same_digest_returns_durable_resultを強制し、original_result_id + replay_countを保存します。 - owner、有効期限、停止閾値、rollback を持つ限定 cohort に展開する。
conflictの証拠:same_key_different_digest_rejectedを強制し、conflict_status + both_digests_without_payloadを保存します。 - 永続設定と会計を再読し、一時アクセスとテストデータを削除する。
recoveryの証拠:stale_pending_requires_owned_reconciliationを強制し、lease + side_effect_receipt + terminal_writeを保存します。
防ぐべき失敗
以下はすべて公開停止条件です。HTTP 200、dashboard、1 回のデモで上書きできません。
memory_only_deduplication—memory_only_deduplicationが発生したら rollout を停止し、定義済み owner、証拠、rollback で処理します。正常 probe では上書きできません。key_without_digest—key_without_digestが発生したら rollout を停止し、定義済み owner、証拠、rollback で処理します。正常 probe では上書きできません。check_then_act_race—check_then_act_raceが発生したら rollout を停止し、定義済み owner、証拠、rollback で処理します。正常 probe では上書きできません。model_call_id_as_key—model_call_id_as_keyが発生したら rollout を停止し、定義済み owner、証拠、rollback で処理します。正常 probe では上書きできません。
シグナルと停止条件
成功と損害を同時に観測します。閾値は workload の方針であり、観測前に SLO と分母を固定します。
| シグナル | 閾値 | アクション |
|---|---|---|
duplicate_side_effect_count |
0 |
stop_operation_and_reconcile |
idempotency_digest_conflicts |
review_each_event |
reject_and_alert_owner |
stale_pending_age |
<_owned_recovery_deadline |
reconcile_with_external_receipt |
replay_result_mismatch |
0 |
disable_endpoint |
Modelflare の境界
Modelflare は互換・ネイティブルート、限定キー、グループ、usage、失敗処理を集中管理できます。設定済み channel は全フィールド、alias、保持約束、region、fallback の証明ではありません。ネイティブに検証し、永続的な最終精算を会計の真実とします。
これは実装方法であり、認証、法的判断、uptime 履歴、普遍的 benchmark ではありません。T-1 に契約、モデル、価格、保持、region を再確認し、核心事実が変われば日付を移します。
同じトピック群を読む
親記事は広い判断、兄弟記事は次の実装、ドキュメントは現在の設定を担当します。managed CMS に related-slug がないため本文リンクを保持します。
よくある質問
AI API 操作を冪等にする:成功リクエスト 1 回で承認できますか?
できません。異常系、限定 rollout、永続 readback、停止条件は別々の gate です。
AI API 操作を冪等にする:モデルと価格を数か月前に固定しますか?
しません。placeholder または snapshot を使い、T-1 に再確認します。
AI API 操作を冪等にする:何を保存しますか?
機密を除いた ID、設定版、時刻、終端状態、usage、最終請求、レビュー判断です。
出典と確認日
出典は 2026-08-07 に確認しました。外部契約と原則を示しますが、未検証ルートや将来状態は証明しません。