LLM ストリーム切断から安全に復旧する

LLM ストリーム切断から安全に復旧する:明確な判断、再利用可能な成果物、失敗試験、運用シグナル、出典付き制約を含む本番ガイド。

LLM ストリーム切断から安全に復旧する:明確な判断、再利用可能な成果物、失敗試験、運用シグナル、出典付き制約を含む本番ガイド。

先に結論

LLM ストリーム切断から安全に復旧するは一時的な設定ではなく、信頼性制御の契約として実装します。トラフィック移動前にプロトコル、owner、証拠、rollback を固定します。制御点は first_event, partial_output, terminal_event, replay_policy です。

判断は契約表と決定的な例で固定します。llm-stream-disconnect-recovery の必須制御に wire 証拠、永続 readback、owner のいずれかがなければ rollout しません。

範囲と責任

クライアント作業と control plane を分けます。クライアントはファイルや環境変数、ゲートウェイは認証・ルート・制限・会計・試行、プロバイダーはネイティブプロトコルと変動する能力を所有します。テキスト応答 1 回は 1 経路だけの証拠です。

記事は判断・リスク・検証を担当し、ライブ文書は変動するコマンドと UI 手順を担当します。これにより、同じ検索意図の owner を重複させず能力ツリーを作れます。

このページの owner 記録は llm-stream-disconnect-recovery、固定制御点は first_event, partial_output, terminal_event, replay_policy です。各値は wire または永続状態の境界で検証し、マーケティング名から推測しません。

実用的な成果物: LLM ストリーム切断から安全に復旧する

次のレビュー記録が成果物です。技術値を明示し、スクリーンショットに頼らず設定、wire 証拠、永続状態を比較できます。

制御点 固定判断 保存する証拠
stream_identity one_attempt_id_per_connection logical_request_id + attempt_id + provider_request_id
first_effective_event record_exact_transition event_type + timestamp + bytes_received
partial_output incomplete_not_success last_event_type + buffered_item_ids + incomplete_marker
tool_arguments decode_only_after_terminal_boundary call_id + fragment_sequence + completion_event
replay policy_depends_on_side_effect_risk replay_decision + new_attempt_id + prior_attempt_link
billing retain_each_attempt_and_final_settlement attempt_usage + terminal_state + charge_record

決定的な例

例はプレースホルダーと決定的入力のみです。レビュー済み識別子だけに置換し、秘密や顧客内容を入れず、正確な snapshot を保存します。

CONNECTING -> STREAMING -> TERMINAL_SUCCESS
     |             |  \
     |             |   -> DISCONNECTED_AFTER_PARTIAL -> INCOMPLETE
     |             -> CLIENT_CANCELLED -> CANCELLED
     -> DISCONNECTED_BEFORE_FIRST_EVENT -> RETRY_ELIGIBLE?

Never concatenate output from two attempt IDs.
Never execute partial tool arguments.

段階的な検証

順番に検証します。後段の成功は前段の欠落を補えず、すべての試行を 1 つの論理リクエストへ関連付けます。

  1. クライアント、ゲートウェイポリシー、モデル alias、ルート、観測基準を固定する。 stream_identity の証拠:one_attempt_id_per_connection を強制し、logical_request_id + attempt_id + provider_request_id を保存します。
  2. 決定的な正常 probe を実行し、応答、request ID、ルート、終端状態、usage を保存する。 first_effective_event の証拠:record_exact_transition を強制し、event_type + timestamp + bytes_received を保存します。
  3. 対になる異常、上限、切断ケースを実行し、想定層で失敗することを確認する。 partial_output の証拠:incomplete_not_success を強制し、last_event_type + buffered_item_ids + incomplete_marker を保存します。
  4. 実際のプロトコル面で再実行し、隣接 endpoint からネイティブ対応を推測しない。 tool_arguments の証拠:decode_only_after_terminal_boundary を強制し、call_id + fragment_sequence + completion_event を保存します。
  5. owner、有効期限、停止閾値、rollback を持つ限定 cohort に展開する。 replay の証拠:policy_depends_on_side_effect_risk を強制し、replay_decision + new_attempt_id + prior_attempt_link を保存します。
  6. 永続設定と会計を再読し、一時アクセスとテストデータを削除する。 billing の証拠:retain_each_attempt_and_final_settlement を強制し、attempt_usage + terminal_state + charge_record を保存します。

防ぐべき失敗

以下はすべて公開停止条件です。HTTP 200、dashboard、1 回のデモで上書きできません。

  • blind_reconnect — blind_reconnect が発生したら rollout を停止し、定義済み owner、証拠、rollback で処理します。正常 probe では上書きできません。
  • partial_success — partial_success が発生したら rollout を停止し、定義済み owner、証拠、rollback で処理します。正常 probe では上書きできません。
  • cross_attempt_splice — cross_attempt_splice が発生したら rollout を停止し、定義済み owner、証拠、rollback で処理します。正常 probe では上書きできません。
  • partial_tool_execution — partial_tool_execution が発生したら rollout を停止し、定義済み owner、証拠、rollback で処理します。正常 probe では上書きできません。

シグナルと停止条件

成功と損害を同時に観測します。閾値は workload の方針であり、観測前に SLO と分母を固定します。

シグナル 閾値 アクション
disconnect_before_first_event_rate workload_SLO_threshold inspect_connect_and_header_phases
disconnect_after_partial_rate workload_SLO_threshold mark_incomplete_and_stop_auto_retry
stream_without_terminal_event 0_success_classifications reclassify_and_investigate
cross_attempt_fragment_count 0 disable_recovery_path

Modelflare の境界

Modelflare は互換・ネイティブルート、限定キー、グループ、usage、失敗処理を集中管理できます。設定済み channel は全フィールド、alias、保持約束、region、fallback の証明ではありません。ネイティブに検証し、永続的な最終精算を会計の真実とします。

これは実装方法であり、認証、法的判断、uptime 履歴、普遍的 benchmark ではありません。T-1 に契約、モデル、価格、保持、region を再確認し、核心事実が変われば日付を移します。

同じトピック群を読む

親記事は広い判断、兄弟記事は次の実装、ドキュメントは現在の設定を担当します。managed CMS に related-slug がないため本文リンクを保持します。

よくある質問

LLM ストリーム切断から安全に復旧する:成功リクエスト 1 回で承認できますか?

できません。異常系、限定 rollout、永続 readback、停止条件は別々の gate です。

LLM ストリーム切断から安全に復旧する:モデルと価格を数か月前に固定しますか?

しません。placeholder または snapshot を使い、T-1 に再確認します。

LLM ストリーム切断から安全に復旧する:何を保存しますか?

機密を除いた ID、設定版、時刻、終端状態、usage、最終請求、レビュー判断です。

出典と確認日

出典は 2026-08-07 に確認しました。外部契約と原則を示しますが、未検証ルートや将来状態は証明しません。