安全恢复 LLM 流式连接中断
安全恢复 LLM 流式连接中断:包含明确决策、可复用工件、失败验证、运行指标和来源边界的生产实践指南。
安全恢复 LLM 流式连接中断:包含明确决策、可复用工件、失败验证、运行指标和来源边界的生产实践指南。
直接结论
应把安全恢复 LLM 流式连接中断作为一份可靠性控制契约实施,而不是一次性配置。移动流量前先冻结协议、职责、证据和回滚条件。本指南的核心控制点是 first_event, partial_output, terminal_event, replay_policy。
核心结论由下面的契约表与确定性示例共同锁定。只要 llm-stream-disconnect-recovery 的任一硬性控制缺少线路证据、持久回读或明确 owner,就不能进入放量。
范围与职责
把用户侧任务与背后的控制面职责分开:客户端配置负责本地文件或环境变量;网关负责认证、路由、限制、计量和尝试记录;提供商负责原生协议与会变化的能力契约。一次文本请求成功,只能证明一条路径在一个时刻可用。
本文负责解释决策、风险和验证路径;实时接入文档继续负责会变化的安装命令与界面步骤。这样既能形成 Eden AI 式能力树,也能避免同一搜索意图出现两份 owner。
本页的内容 owner 记录为 llm-stream-disconnect-recovery,冻结的控制点是 first_event, partial_output, terminal_event, replay_policy。每个值都在线路或持久状态边界核验,不能从营销标签推断。
可复用技术工件: 安全恢复 LLM 流式连接中断
以下评审记录就是可交付工件。技术值保持显式,评审者可以直接对照配置、线路证据和持久状态,而不依赖截图或看起来成功的外层响应。
| 控制点 | 固定决策 | 需要保留的证据 |
|---|---|---|
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 |
确定性示例
示例只使用占位符和确定性输入。请替换成已评审的标识,不要写入密钥或客户正文,并把精确配置快照与探测结果一起保存。
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.
分层验证
按顺序执行以下验证。后面的成功不能补偿前面缺失的边界,每次尝试都必须能关联到同一个逻辑请求。
- 冻结当前客户端、网关策略、模型别名、路由集合和可观测基线。 证据记录:对
stream_identity强制one_attempt_id_per_connection,并保留logical_request_id + attempt_id + provider_request_id。 - 执行一个确定性正向探测,保留客户端响应、请求 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。 - 只向有界人群放量,并记录 owner、过期时间、停止阈值和回滚方案。 证据记录:对
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、漂亮的看板或一次演示成功都不能覆盖这些失败。
blind_reconnect— 出现blind_reconnect时,立即停止放量并按对应 owner、证据和回滚路径处理,不能用一次成功结果覆盖。partial_success— 出现partial_success时,立即停止放量并按对应 owner、证据和回滚路径处理,不能用一次成功结果覆盖。cross_attempt_splice— 出现cross_attempt_splice时,立即停止放量并按对应 owner、证据和回滚路径处理,不能用一次成功结果覆盖。partial_tool_execution— 出现partial_tool_execution时,立即停止放量并按对应 owner、证据和回滚路径处理,不能用一次成功结果覆盖。
观测信号与停止条件
同时观测成功和伤害。阈值是工作负载策略输入,不是通用基准;必须先确定 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 可以集中处理 OpenAI 兼容与原生协议路由、限权密钥、分组、用量和失败,但已配置渠道不等于所有可选字段、模型别名、数据保留承诺、区域或回退均受支持。必须用原生协议验证具体路由,保留显式零值,并以最终持久结算为账务真相。
本文提供实施方法,不构成供应商认证、法律结论、历史可用性证明或通用性能基准。发布前 T-1 日重新核对 API 契约、模型权限、价格、数据保留和区域可用性;核心事实变化时必须移动发布日期。
继续阅读同一主题簇
父文章负责更宽的决策边界,兄弟文章负责下一步实施,文档页负责当前客户端配置。正文链接是有意保留的,因为托管 CMS 文章目前没有独立的 related-slug 字段。
常见问题
安全恢复 LLM 流式连接中断:一次成功请求能批准上线吗?
不能。它只证明一个抽样路径;负向用例、有界放量、持久回读和停止条件是独立闸门。
安全恢复 LLM 流式连接中断:可以提前数月锁死模型名和价格吗?
不能。草稿保留占位符或已核验快照,并在 T-1 日复核标识、能力、价格和可用性。
安全恢复 LLM 流式连接中断:需要保留哪些证据?
保留去敏后的请求与尝试 ID、配置版本、时间戳、终态、标准化用量、最终扣费和评审结论。
来源与核验日期
来源核验日期为 2026-08-07。来源只建立外部契约与工程原则,不证明未经测试的路由或未来状态。