为 AI API 设计熔断器
为 AI API 设计熔断器:包含明确决策、可复用工件、失败验证、运行指标和来源边界的生产实践指南。
为 AI API 设计熔断器:包含明确决策、可复用工件、失败验证、运行指标和来源边界的生产实践指南。
直接结论
应把为 AI API 设计熔断器作为一份可靠性控制契约实施,而不是一次性配置。移动流量前先冻结协议、职责、证据和回滚条件。本指南的核心控制点是 closed, open, half_open, failure_window。
核心结论由下面的契约表与确定性示例共同锁定。只要 ai-api-circuit-breaker 的任一硬性控制缺少线路证据、持久回读或明确 owner,就不能进入放量。
范围与职责
把用户侧任务与背后的控制面职责分开:客户端配置负责本地文件或环境变量;网关负责认证、路由、限制、计量和尝试记录;提供商负责原生协议与会变化的能力契约。一次文本请求成功,只能证明一条路径在一个时刻可用。
本文负责解释决策、风险和验证路径;实时接入文档继续负责会变化的安装命令与界面步骤。这样既能形成 Eden AI 式能力树,也能避免同一搜索意图出现两份 owner。
本页的内容 owner 记录为 ai-api-circuit-breaker,冻结的控制点是 closed, open, half_open, failure_window。每个值都在线路或持久状态边界核验,不能从营销标签推断。
可复用技术工件: 为 AI API 设计熔断器
以下评审记录就是可交付工件。技术值保持显式,评审者可以直接对照配置、线路证据和持久状态,而不依赖截图或看起来成功的外层响应。
| 控制点 | 固定决策 | 需要保留的证据 |
|---|---|---|
breaker_key |
provider_route_plus_protocol_plus_failure_class |
route_id + endpoint + normalized_error_class |
closed_state |
rolling_window_with_minimum_sample |
eligible_attempts + failures + window_bounds |
open_state |
fail_fast_without_upstream_attempt |
decision_timestamp + reopen_at + returned_error |
half_open_state |
bounded_probe_concurrency |
probe_count + outcomes + state_transition |
fallback |
same_contract_eligible_route_only |
eligibility_reason + route_choice + terminal_state |
operator_override |
time_bounded_and_audited |
actor + reason + expiry + restored_policy |
确定性示例
示例只使用占位符和确定性输入。请替换成已评审的标识,不要写入密钥或客户正文,并把精确配置快照与探测结果一起保存。
state = CLOSED
if eligible_failures(window) >= threshold and samples >= minimum:
state = OPEN
reopen_at = now + cool_down
if state == OPEN and now < reopen_at:
return fail_fast
if state == OPEN and now >= reopen_at:
state = HALF_OPEN
if bounded_probe_succeeds():
state = CLOSED
else:
state = OPEN
分层验证
按顺序执行以下验证。后面的成功不能补偿前面缺失的边界,每次尝试都必须能关联到同一个逻辑请求。
- 冻结当前客户端、网关策略、模型别名、路由集合和可观测基线。 证据记录:对
breaker_key强制provider_route_plus_protocol_plus_failure_class,并保留route_id + endpoint + normalized_error_class。 - 执行一个确定性正向探测,保留客户端响应、请求 ID、所选路由、终态和用量。 证据记录:对
closed_state强制rolling_window_with_minimum_sample,并保留eligible_attempts + failures + window_bounds。 - 执行配对的负向、上限或断连用例,确认它在预期层失败。 证据记录:对
open_state强制fail_fast_without_upstream_attempt,并保留decision_timestamp + reopen_at + returned_error。 - 通过真实协议入口重复探测,不能从相邻兼容端点推断原生支持。 证据记录:对
half_open_state强制bounded_probe_concurrency,并保留probe_count + outcomes + state_transition。 - 只向有界人群放量,并记录 owner、过期时间、停止阈值和回滚方案。 证据记录:对
fallback强制same_contract_eligible_route_only,并保留eligibility_reason + route_choice + terminal_state。 - 测试后回读持久配置与账务状态,删除临时权限和测试数据。 证据记录:对
operator_override强制time_bounded_and_audited,并保留actor + reason + expiry + restored_policy。
必须避免的失败模式
下面每一项都是发布阻断条件。HTTP 200、漂亮的看板或一次演示成功都不能覆盖这些失败。
global_breaker— 出现global_breaker时,立即停止放量并按对应 owner、证据和回滚路径处理,不能用一次成功结果覆盖。mixed_denominator— 出现mixed_denominator时,立即停止放量并按对应 owner、证据和回滚路径处理,不能用一次成功结果覆盖。half_open_stampede— 出现half_open_stampede时,立即停止放量并按对应 owner、证据和回滚路径处理,不能用一次成功结果覆盖。fallback_cascade— 出现fallback_cascade时,立即停止放量并按对应 owner、证据和回滚路径处理,不能用一次成功结果覆盖。
观测信号与停止条件
同时观测成功和伤害。阈值是工作负载策略输入,不是通用基准;必须先确定 SLO 和分母,再开始观测窗口。
| 信号 | 决策阈值 | 动作 |
|---|---|---|
eligible_failure_ratio |
reviewed_window_and_minimum_sample |
open_route_breaker |
open_fail_fast_latency |
<_caller_remaining_deadline |
repair_local_decision_path |
half_open_probe_concurrency |
<=_configured_probe_limit |
reject_extra_probes |
fallback_headroom |
>=_required_reserved_capacity |
shed_load_instead_of_failover |
Modelflare 边界与限制
Modelflare 可以集中处理 OpenAI 兼容与原生协议路由、限权密钥、分组、用量和失败,但已配置渠道不等于所有可选字段、模型别名、数据保留承诺、区域或回退均受支持。必须用原生协议验证具体路由,保留显式零值,并以最终持久结算为账务真相。
本文提供实施方法,不构成供应商认证、法律结论、历史可用性证明或通用性能基准。发布前 T-1 日重新核对 API 契约、模型权限、价格、数据保留和区域可用性;核心事实变化时必须移动发布日期。
继续阅读同一主题簇
父文章负责更宽的决策边界,兄弟文章负责下一步实施,文档页负责当前客户端配置。正文链接是有意保留的,因为托管 CMS 文章目前没有独立的 related-slug 字段。
常见问题
为 AI API 设计熔断器:一次成功请求能批准上线吗?
不能。它只证明一个抽样路径;负向用例、有界放量、持久回读和停止条件是独立闸门。
为 AI API 设计熔断器:可以提前数月锁死模型名和价格吗?
不能。草稿保留占位符或已核验快照,并在 T-1 日复核标识、能力、价格和可用性。
为 AI API 设计熔断器:需要保留哪些证据?
保留去敏后的请求与尝试 ID、配置版本、时间戳、终态、标准化用量、最终扣费和评审结论。
来源与核验日期
来源核验日期为 2026-08-07。来源只建立外部契约与工程原则,不证明未经测试的路由或未来状态。