QVeris
实施运行手册

LLM 故障切换路由设置:限制尝试次数,保留语义LLM 故障切换路由
设置指南

定义故障、备用项、预算与语义边界,并用故障测试验证。

发布日期:2026年3月20日 · QVeris团队制作

Financial market workflow supporting LLM Fallback Routing Setup Preserve Semantics LLM Fallback Routing Setup Guide LLM 故障切换路由设置:限制尝试次数,保留语义 LLM 故障切换路由 设置指南

速览

先定义契约

列出所需模型功能、工具、上下文、输出、策略与截止时间。

分类故障

区分可重试传输故障与能力、策略及输入故障。

限制尝试链

限制次数、耗时、Token、成本与重复副作用。

通过注入证明

在超时、429、5xx、异常流与无候选状态下测试每条路由。

安全设置顺序

应从一个定义清晰的工作负载和一个已验证备用项开始,而不是先堆出很长的供应商链。首先写明工作负载契约:必需模态、上下文大小、工具 Schema、结构化输出规则、区域、安全策略、最大延迟与最低质量标准。备用项只有通过同一组门禁后才能进入资源池。

随后建立故障分类。网络超时、暂时性 5xx 和有界容量错误可能适合再次尝试;认证失败、无效输入、策略拒绝和确定性 Schema 错误通常不应重试。在确定顺序前先设置总请求截止时间、尝试次数与成本预算,防止一次失败调用演变成无限序列。

每次执行都应在父 Trace 下附加唯一 Attempt ID,并记录故障类别、排除规则、候选池版本、所选备用项、输入或输出转换以及最终处置。这些证据让运维人员能够解释为什么发生故障切换,并重现当时的路由决策。

故障切换配置决策

决策最适合选择前验证
触发类别超时、连接、已批准 429 或瞬态 5xx。不得绕过策略阻断、无效输入或缺失必需能力。
合格池通过工具、上下文、区域、安全与质量契约的备用项。版本化目录,并拒绝过期或未知能力数据。
预算单次超时加总时间、次数、Token 与成本上限。跨 SDK、网关与供应商层统一计算重试。
最终结果已验证响应,或带尝试链的单一受控错误。绝不返回无法解释的替代结果或部分成功。

配置检查清单

故障映射

标准化错误,同时保留原生 Code、ID 与重试提示。

语义保护

比较工具、结构定义、上下文、System Instruction 与输出验证器。

幂等性

保护工具调用与外部动作免于重复执行。

可观测

对故障切换率、预算耗尽、路由漂移与质量回归告警。

上线前故障测试

测试必须穿过真实的 SDK、网关和 Worker 链路。只对路由选择器做单元测试,无法发现 SDK 重复重试、部分流式响应,或客户端取消后后台尝试仍在运行等问题。使用代表性 Prompt 与验证器,让演练同时检查答案行为和可用性。

  • 注入每个批准触发器,并验证准确的备用顺序与停止条件。
  • 确认每次切换后,能力、策略、区域与数据保留等硬约束仍然成立。
  • 测试截止时间、尝试次数和成本预算耗尽,取消传播以及受控最终错误。
  • 比较主路径与备用路径的输出有效性、工具行为、尾延迟和总成本。
  • 先灰度一个工作负载,按路由监控,并保留一键恢复旧策略版本的能力。

使用有界故障切换状态机

网关先分类故障,检查父请求剩余截止时间与尝试预算,再过滤版本化资源池并选择下一个合格路由。执行一次尝试后还要验证结果并更新状态。对于要求有效 JSON、特定工具调用或带证据输出的工作负载,HTTP 成功并不等于任务成功。

状态机在已验证成功、预算耗尽、收到取消或没有合格候选项时停止。它还必须记住已经失败的路由,避免在两个端点之间来回循环。所有重试等待都要计入父截止时间,并向调用方返回最终故障类别与已尝试路由。

生产规则:每次故障切换都必须保留工作负载与策略硬约束;可用性不能凌驾于合格性之上。

把工具故障切换作为独立工作流关注点

模型故障切换用于恢复推理,QVeris 则负责发现并执行外部 API、工具、服务与实时数据。应为这些能力单独定义合格池、新鲜度要求、可用性策略与重试预算。备用模型并不会自动获得某项工具权限,备用数据源也不会天然具备相同语义。

通过工作流 Trace 关联两条尝试链,同时保留独立的 Action ID 与幂等密钥。如果模型失败前工具动作已经完成,应携带已验证结果继续,而不是重复副作用;如果结果具有时效性,则明确刷新并记录为什么需要第二次调用。

把故障切换 Policy 编码为数据

把路由 Order、Eligibility、Timeout 与 Attempt Budget 保存在版本化配置中。应用提供工作负载要求;路由器应先过滤不合格候选,再考虑价格或延迟。

版本化路由策略
version: 7
workloads:
  support-answer:
    requires: [json_schema, tool_calls]
    max_attempts: 2
    deadline_ms: 12000
    routes:
      - alias: quality-primary
        timeout_ms: 8000
      - alias: quality-backup
        timeout_ms: 3500
        only_on: [timeout, 429, 502, 503, 504]
    never_retry: [401, 403, 404, invalid_request]
    duplicate_protection: required
  • 部署时根据所需能力集合验证每个别名。
  • 发布前模拟 Primary Timeout、429、Malformed Response 与 Partial Stream。
  • 在最终调用链中包含 Policy Version 与已尝试路由。

实施参考已根据官方资料核验:OpenTelemetry GenAI conventions。

FAQ

应配置多少备用项?

从满足可用性目标的最小已验证资源池开始。

每个 429 都应切换供应商吗?

不应。遵循重试提示、预算与策略;排队或退避可能更安全。

重试应放在哪里?

由一个执行层负责,防止嵌套放大。

官方资料与延伸阅读

LLM 故障切换路由设置 | QVeris Guides