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 つの論理リクエストへ関連付けます。
- クライアント、ゲートウェイポリシー、モデル alias、ルート、観測基準を固定する。
stream_identityの証拠:one_attempt_id_per_connectionを強制し、logical_request_id + attempt_id + provider_request_idを保存します。 - 決定的な正常 probe を実行し、応答、request ID、ルート、終端状態、usage を保存する。
first_effective_eventの証拠:record_exact_transitionを強制し、event_type + timestamp + bytes_receivedを保存します。 - 対になる異常、上限、切断ケースを実行し、想定層で失敗することを確認する。
partial_outputの証拠:incomplete_not_successを強制し、last_event_type + buffered_item_ids + incomplete_markerを保存します。 - 実際のプロトコル面で再実行し、隣接 endpoint からネイティブ対応を推測しない。
tool_argumentsの証拠:decode_only_after_terminal_boundaryを強制し、call_id + fragment_sequence + completion_eventを保存します。 - owner、有効期限、停止閾値、rollback を持つ限定 cohort に展開する。
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を保存します。
防ぐべき失敗
以下はすべて公開停止条件です。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 に確認しました。外部契約と原則を示しますが、未検証ルートや将来状態は証明しません。