AI API 操作を冪等にする

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 つの論理リクエストへ関連付けます。

  1. クライアント、ゲートウェイポリシー、モデル alias、ルート、観測基準を固定する。 key_scope の証拠:principal_plus_operation_plus_idempotency_key を強制し、principal_id + operation + key を保存します。
  2. 決定的な正常 probe を実行し、応答、request ID、ルート、終端状態、usage を保存する。 request_binding の証拠:canonical_digest_must_match を強制し、request_digest + schema_version を保存します。
  3. 対になる異常、上限、切断ケースを実行し、想定層で失敗することを確認する。 reservation の証拠:atomic_pending_record_before_side_effect を強制し、unique_constraint + created_at + owner を保存します。
  4. 実際のプロトコル面で再実行し、隣接 endpoint からネイティブ対応を推測しない。 replay の証拠:same_key_same_digest_returns_durable_result を強制し、original_result_id + replay_count を保存します。
  5. owner、有効期限、停止閾値、rollback を持つ限定 cohort に展開する。 conflict の証拠:same_key_different_digest_rejected を強制し、conflict_status + both_digests_without_payload を保存します。
  6. 永続設定と会計を再読し、一時アクセスとテストデータを削除する。 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 に確認しました。外部契約と原則を示しますが、未検証ルートや将来状態は証明しません。