AI 产品兜底链(Fallback Chain)设计


之前写过一些关于垂直领域AI内容规范的RICE框架(具体请见:https://blog.csdn.net/qq_43081349/article/details/161383800 )。最近了解了一些关于AI产品兜底链的设计,感觉与RICE框架中输出内容可信输出治理可以形成比较好的诠释、配合、补充。我首次接触到这个概念的来源:抖音@Nova AI产品经理。Big S/O!


一、核心概念

兜底链是 AI 产品中保障输出质量与可用性的核心机制。当模型输出的置信度不足时,系统沿预设的层级路径逐级降级,从"最优方案"逐步回退到"兜底方案",确保用户始终能获得可用结果。


二、Confidence 评分体系

Confidence评分体系是针对模型产出内容的可置信度评估,也是这套兜底策略的核心驱动。具体方式有下列几种,不同场景可以通过实施不同的单一、组合策略覆盖。

2.1 Logprobe(对数概率)

利用 LLM 输出的 token-level log probabilities 计算整体置信度。

confidence = exp(Sum log_prob(token_i) / N)   // 几何平均
    或
confidence = Sum log_prob(token_i) / N          // 算术平均(更常用)

实现要点

  • 对关键 token(非标点、非停用词)加权
  • 区分"生成内容"和"格式 token"的权重
  • 常见阈值:0.7~0.85 为合格线

优缺点

  • 计算成本低,无需额外推理
  • 与模型"确定性"直接相关
  • 高概率不等于高正确性(模型可能自信地犯错)
  • 仅适用于支持返回 logprobs 的模型

2.2 Self-Consistency(自洽性)

同一 prompt 多次采样(temperature > 0),检查输出一致性。

confidence = count(most_common_answer) / total_samples

实现要点

  • 采样次数通常 3~7 次(5 次是常用平衡点)
  • 适用于有明确答案的任务(分类、数学、代码生成)
  • 对开放式生成任务效果有限

变体

  • 跨模型自洽:用不同模型采样,提升robust
  • 思维链自洽:对 CoT 推理的中间步骤也做一致性检查

优缺点

  • 直接衡量答案稳定性
  • 不依赖模型内部概率
  • 计算成本高(N 倍推理)
  • 模型可能一致地犯错

2.3 LLM-Judge(LLM 评审)

用一个独立的"评审模型"对输出质量打分。

judge_score = LLM_judge(prompt, response, criteria)

常见评审维度

维度 说明 典型 prompt
准确性 事实是否正确 “请评估回答的事实准确性,1-5分”
相关性 是否切题 “回答是否直接回应了用户问题”
完整性 是否遗漏关键信息 “是否覆盖了所有必要方面”
安全性 是否有害内容 “检查是否存在不安全内容”
有用性 是否实际可操作 “用户能否据此采取行动”

优缺点

  • 语义层面评估,更接近人类判断
  • 可定制评审标准
  • 额外推理成本
  • 评审模型本身可能不准确

2.4 组合评分策略

final_confidence = alpha * logprobe_score 
                 + beta * self_consistency_score 
                 + gamma * llm_judge_score

其中 alpha + beta + gamma = 1

示例权重配置

  • 事实性任务:alpha=0.3, beta=0.4, gamma=0.3
  • 创意性任务:alpha=0.2, beta=0.2, gamma=0.6
  • 代码生成:alpha=0.2, beta=0.5, gamma=0.3

三、兜底链层级定义(L0-L3)

场景 策略 用户感知 流量占比 延迟增量 成本增量
L0 直接输出 90%+ 0 0
L1 自动降级 ~80% +0.5~3s +1~3x
L2 确认式交互 ~15% +2~5s +1~2x
L3 Human-in-loop ~5% 分钟级 人工成本

L0:直接输出

模型输出 confidence 达标,直接返回,零额外开销。

L1:自动降级(用户无感)

核心原则:在用户完全不知情的情况下,自动提升输出质量。

策略矩阵(按成本从低到高):

策略 说明 延迟 成本 适用场景
Few-shot 注入 动态插入相似示例到 prompt +0.1s 极低 格式/风格问题
Prompt 重构 换用更详细的 system prompt +0.1s 极低 理解偏差
约束解码 限定输出空间(grammar/regex) +0.2s 结构化输出
切换更强模型 小模型->大模型 +0.5~2s 通用兜底
RAG 增强 检索相关文档注入上下文 +0.5~1s 知识密集型
Self-Refine 模型自我批评后重生成 +1~3s 逻辑/推理问题
多模型投票 2-3 模型并行,取最优 +1~3s 高准确性要求

L1 内部级联

L1 入口
  |
  +-- 1. Few-shot + Prompt优化     (覆盖 50% L1 流量)
  |     +-- 成功 -> 输出
  |     +-- 失败 向下
  |
  +-- 2. 切换更强模型               (覆盖 30% L1 流量)
  |     +-- 成功 -> 输出
  |     +-- 失败 向下
  |
  +-- 3. Self-Refine / 多模型投票   (覆盖 20% L1 流量)
        +-- 成功 -> 输出
        +-- 失败 -> 升级到 L2

L2:确认式交互(用户低感知)

核心原则:用预设话术与用户确认意图/答案,用户有轻微感知但不影响体验。

话术模板

类型 话术示例
澄清意图 “您是想了解关于「{topic}」的内容吗?”
确认答案 “根据我的理解,答案是 {answer},这是您需要的吗?”
缩小范围 “这个问题涉及面比较广,您更关心 {option_a} 还是 {option_b}?”
请求补充 “为了更好地帮您,能否再补充一下关于 {aspect} 的信息?”
提供替代 “这个问题我暂时无法完全确定,但我可以为您提供 {alternative},需要吗?”

L2 交互流程

用户请求 -> 模型输出 -> confidence 不足
                          |
                          v
                   +--------------+
                   | 生成确认话术   |
                   | + 候选答案     |
                   +------+-------+
                          |
                   +------v-------+
                   | 展示给用户    |
                   | "您是想问..." |
                   +------+-------+
                          |
              +-----------+-----------+
              v           v           v
         用户确认      用户否定     用户补充
              |           |           |
              v           v           v
         返回答案    重新理解    更新上下文
                      重新生成    重新生成

关键设计点

  • 话术尽量自然
  • 给出具体选项而非开放式提问
  • 最多1-2轮确认,不陷入多轮循环
  • 如果用户否定后仍低置信 -> 升级到 L3

L3:Human-in-the-Loop(用户高感知)

核心原则:明确告知用户进入人工处理,管理预期。

触发条件

  • L1 全部策略失败
  • L2 确认后仍无法满足
  • confidence 直接跌入 L3 区间

实现模式

模式 说明 适用场景
实时人工 直接转接人工坐席,实时回复 高优先级用户/高价值场景
异步审核 进入审核队列,异步回复并推送通知 标准场景
审核增强 AI 生成草稿,人工审核/编辑后返回 需要 AI 辅助提效

用户话术

  • “这个问题比较复杂,我已经转交给专业团队,预计 5 分钟内为您答复。”
  • “为了给您最准确的答案,我需要同事帮忙确认一下,请稍候。”

四、分行业 Confidence 阈值矩阵(举例,仅供参考)

医疗健康

Level 阈值 策略
L0 >= 0.90 直接输出(仅限科普类)
L1 0.80 ~ 0.90 自动降级:RAG 增强(医学知识库)-> 切换更强模型
L2 0.60 ~ 0.80 确认交互:“您描述的症状,我理解是 XXX,建议咨询医生确认”
L3 < 0.60 强制转人工/免责声明 + 建议就医

阈值最高的原因:涉及生命安全,宁可不答不能错答。

客服对话

Level 阈值 策略
L0 >= 0.70 直接输出
L1 0.50 ~ 0.70 自动降级:FAQ 检索 -> Few-shot -> 切换模型
L2 0.35 ~ 0.50 确认交互:“您是想查询订单还是咨询退换货?”
L3 < 0.35 转人工坐席

阈值偏低的原因:客服容错率相对高,可接受模糊回答后 L2 确认。

金融/法律

Level 阈值 策略
L0 >= 0.85 直接输出(仅限通用知识)
L1 0.70 ~ 0.85 自动降级:知识库 RAG -> 约束解码(限定合规表述)
L2 0.50 ~ 0.70 确认交互:“您咨询的是关于 XXX 的规定,我的理解是…”
L3 < 0.50 转人工 + 免责声明

阈值偏高原因:涉及财产、交易,需要考虑合规性,慎重给出解答。

内容创作/营销

Level 阈值 策略
L0 >= 0.65 直接输出
L1 0.45 ~ 0.65 自动降级:Few-shot 风格示例 -> Prompt 优化
L2 0.30 ~ 0.45 确认交互:“这个方向符合您的预期吗?需要调整风格吗?”
L3 < 0.30 提供模板/人工创意支持

阈值最低的原因:创意类任务主观性强,无标准答案,容错率高。

教育/解题

Level 阈值 策略
L0 >= 0.80 直接输出答案+解析
L1 0.60 ~ 0.80 自动降级:Self-Consistency(多次采样投票)-> 切换模型
L2 0.40 ~ 0.60 确认交互:“这道题的解题思路是 XXX,您需要我展开哪一步?”
L3 < 0.40 人工审核答案正确性

阈值汇总对比

行业          L0->L1    L1->L2    L2->L3    特点
---------------------------------------------------------
医疗健康      0.90      0.80      0.60      最保守,安全优先
金融/法律     0.85      0.70      0.50      保守,合规优先
代码生成      0.80      0.65      0.45      偏保守,正确性优先
教育/解题     0.80      0.60      0.40      中等,准确性优先
客服对话      0.70      0.50      0.35      偏宽松,体验优先
内容创作      0.65      0.45      0.30      最宽松,创意优先

五、路由(Router)设计

5.1 路由架构

                          +-------------+
                          |   Request   |
                          +------+------+
                                 |
                          +------v------+
                          |  Classifier |  <- 意图/难度分类
                          +------+------+
                                 |
                     +-----------+-----------+
                     v           v           v
               +---------+ +---------+ +---------+
               | 简单任务 | | 中等任务 | | 复杂任务 |
               | (小模型) | | (中模型) | | (大模型) |
               +----+----+ +----+----+ +----+----+
                    |           |           |
                    +-----------+-----------+
                                |
                         +------v------+
                         |   LLM 推理   |
                         +------+------+
                                |
                         +------v------+
                         | Confidence  |  <- 单/多维度评分
                         |   Scoring   |
                         +------+------+
                                |
                         +------v------+
                         |  阈值判断    |
                         +------+------+
                                |
                +---------------+-------------------------------+
                |               |                               |
           conf >= L0       L1 <= conf       conf < L2_L3       |
           (L0 区间)        < L0 (L1区间)    (直接跌入L3)        |
                |               |                               |
                v               v                               v
          +----------+   +-------------+               +--------------+
          | L0 直接  |   | L1 自动降级  |               | L3 人工兜底   |
          |   输出   |   |   循环       |               | (终态)        |
          +----------+   +------+------+               +--------------+
                                |
         +----------------------+
         |
         v
   +============= L1 循环 (策略级联, 任意成功即跳出) =============+
   |                                                             |
   |  +--> +------------------+     +--------------+             |
   |  |    | L1-策略1:         |     | Confidence   |             |
   |  |    | Few-shot/Prompt  |---->|   重新评分    |             |
   |  |    +------------------+     +------+-------+             |
   |  |                                   |                      |
   |  |                          +--------+--------+             |
   |  |                          |                 |              |
   |  |                     conf >= L0        conf < L0           |
   |  |                          |                 |              |
   |  |                          v                 v              |
   |  |                    +----------+    +------------------+   |
   |  |                    | L0 输出   |    | L1-策略2:         |   |
   |  |                    |  ✓ 跳出   |    | 切换更强模型      |   |
   |  |                    +----------+    +--------+---------+   |
   |  |                                            |              |
   |  |                                     +------v------+       |
   |  |                                     | Confidence   |       |
   |  |                                     |   重新评分    |       |
   |  |                                     +------+-------+       |
   |  |                                            |               |
   |  |                                   +--------+--------+      |
   |  |                                   |                 |      |
   |  |                              conf >= L0        conf < L0   |
   |  |                                   |                 |      |
   |  |                                   v                 v      |
   |  |                             +----------+    +------------------+ |
   |  |                             | L0 输出   |    | L1-策略3:         | |
   |  |                             |  ✓ 跳出   |    | Self-Refine/投票 | |
   |  |                             +----------+    +--------+---------+ |
   |  |                                                       |         |
   |  |                                                +------v------+  |
   |  |                                                | Confidence   |  |
   |  |                                                |   重新评分    |  |
   |  |                                                +------+-------+  |
   |  |                                                       |          |
   |  |                                              +--------+--------+ |
   |  |                                              |                 | |
   |  |                                         conf >= L0        conf < L0
   |  |                                              |                 | |
   |  |                                              v                 v |
   |  |                                        +----------+    +------------+
   |  |                                        | L0 输出   |    | L1 全部失败 |
   |  |                                        |  ✓ 跳出   |    | → 升级 L2  |
   |  +----------------------------------------+----------+    +-----+------+
   |                                                                  |
   +==================================================================+
                                                                      |
                                                                      v
                                                            +================= L2 循环 (最多2轮, 任意轮达标即跳出) =================+
                                                            |                                                                     |
                                                            |  +--> +------------------+                                          |
                                                            |  |    | L2 确认式交互     |                                          |
                                                            |  |    | 生成确认话术      |                                          |
                                                            |  |    | "您是想问...?"   |                                          |
                                                            |  |    +--------+---------+                                          |
                                                            |  |             |                                                    |
                                                            |  |    +--------v--------+                                           |
                                                            |  |    |   用户响应        |                                           |
                                                            |  |    +--------+--------+                                           |
                                                            |  |             |                                                    |
                                                            |  |    +--------+--------+--------+                                   |
                                                            |  |    |        |        |        |                                   |
                                                            |  |  确认    否定    补充   超时                                    |
                                                            |  |    |        |        |        |                                   |
                                                            |  |    v        v        v        v                                   |
                                                            |  | +------+ +------+ +------+ +----------+                          |
                                                            |  | | 返回  | | 重新 | | 更新 | | 本轮失败  |                          |
                                                            |  | | 答案  | | 理解 | | 上下文| | 计为否定  |                          |
                                                            |  | | ✓跳出 | | 重生成| | 重生成| +----+-----+                          |
                                                            |  | +------+ +--+---+ +--+---+      |                                |
                                                            |  |              |        |          |                                |
                                                            |  |              +---+----+          |                                |
                                                            |  |                  |               |                                |
                                                            |  |           +------v------+        |                                |
                                                            |  |           | Confidence   |<-------+                                |
                                                            |  |           |   重新评分    |                                         |
                                                            |  |           +------+------+                                         |
                                                            |  |                  |                                                |
                                                            |  |         +--------+--------+                                       |
                                                            |  |         |                 |                                       |
                                                            |  |    conf >= L0_L1     conf < L0_L1                                  |
                                                            |  |         |                 |                                       |
                                                            |  |         v                 v                                       |
                                                            |  |   +----------+    +--------------+                                |
                                                            |  |   | L0 输出   |    | 当前轮次 >= 2 |                                |
                                                            |  |   |  ✓ 跳出   |    +------+-------+                                |
                                                            |  |   +----------+           |                                         |
                                                            |  |                   +------+------+                                  |
                                                            |  |                   |             |                                  |
                                                            |  |                  是            否                                  |
                                                            |  |                   |             |                                  |
                                                            |  |                   v             |                                  |
                                                            |  |            +-------------+     |                                  |
                                                            |  |            | → 升级 L3   |     |                                  |
                                                            |  |            +------+------+     |                                  |
                                                            |  |                   |             |                                  |
                                                            |  +-------------------+             +----------------------------------+
                                                            |                    |             (回到 L2 顶部, 进入下一轮)
                                                            +====================|==================================================+
                                                                                 |
                                                                                 v
                                                                        +--------------+
                                                                        | L3 人工兜底   |
                                                                        | Human-in-loop|  <- 终态, 不再升级
                                                                        +--------------+

关键循环/跳出逻辑说明

阶段 循环机制 跳出条件 升级条件
L1 内部 策略 1 → 策略 2 → 策略 3 级联 任意策略后 confidence >= L0 阈值 → L0 输出 全部 3 个策略均失败
L2 交互 用户确认/否定/补充/超时 → 重新评分 用户确认 或 重新生成后 confidence >= L0_L1 累计 2 轮仍不达标
L3 兜底 人工处理 人工给出最终答复 终态,不再升级

5.2 路由策略

1. 基于任务难度的模型路由
2. 基于置信度的兜底路由(含循环/跳出逻辑)
3. 语义路由(Semantic Router)

5.3 路由决策矩阵

维度 策略 适用场景
任务类型 语义路由 多领域产品
任务难度 复杂度路由 单一领域多难度
用户等级 优先级路由 付费/免费用户分层
延迟要求 延迟感知路由 实时/异步场景
成本预算 成本感知路由 预算敏感产品

六、监控与调优

6.1 关键指标(举例,仅供参考)

指标 目标 告警阈值
L0 直出率 > 90% < 85%
L1 自动降级成功率 > 85% < 75%
L2 确认后解决率 > 70% < 60%
L3 触发率 < 5% > 8%
端到端满意度 > 4.2/5 < 3.8/5

6.2 可观测性要求

每层路由决策需全量记录以下字段:

    request_id: str
    industry: str
    task_type: str
    model_used: str
    confidence_scores: dict       # {logprobe: 0.72, self_consistency: 0.68, llm_judge: 0.75}
    final_confidence: float
    fallback_level: str           # L0/L1/L2/L3
    l1_strategies_attempted: list # ["few_shot", "model_switch"]
    l1_strategies_succeeded: str  # "model_switch"
    l2_user_response: str         # confirmed/negated/supplemented
    latency_ms: int
    cost: float

七、设计原则总结

  1. 渐进降级:每一层只增加必要的成本和延迟,避免过度补偿
  2. 用户感知梯度:L1 完全无感 -> L2 轻微感知 -> L3 明确告知
  3. 行业差异化:阈值按行业风险等级定制,高风险行业更保守
  4. 可观测性:每层的路由决策、置信度分数、降级原因全量记录
  5. A/B 友好:阈值和策略可动态配置,支持在线实验
  6. 成本控制:L3 触发率应控制在 5% 以内,L1 承担 80% 兜底流量
  7. 快速失败:L1 内部级联不超过 3 步,避免延迟无限增长
  8. 优雅降级:L3 给用户明确预期,而非沉默失败

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐