影子模式:新版先暗跑,再决定要不要切

人工智能 · 2026-10-07

影子模式让新版本在不影响用户的前提下先跑。本文给出三种形态、双跑该比的五项、成本与并发翻倍的提醒、事先写死的上线判据,以及两个常见陷阱与落地顺序。


直接切换版本的风险

新版提示词/模型上线最危险的做法是**直接切** ✗:效果无法对比、出问题无从归因、回滚靠临时改配置 ✗。

**影子模式**(shadow)就是让新版本在**不影响用户**的前提下先跑一段。

影子模式的三种形态

1. **双跑对比**(最常用):真实请求同时发给新旧两版,**只返回旧版结果**,新版结果只记录;

2. **离线回放**:把历史请求重放给新版,与当时的旧版输出逐条对比(不需要线上流量);

3. **小流量并行**:把 1% 流量真实走新版(用户看得见),其余走旧版 —— 这已属灰度,不是严格影子。

**双跑对比**最适合高风险改动(提示词大改、模型换代)。

双跑对比要比什么

  • **逐条输出来源**:同一输入,两版结果的差异类型(更准 / 更差 / 不同但都行);
  • **格式合规率**(新版是否更容易破格式);
  • **长度与成本**(新版往往更长更贵);
  • **失败类型分布**(有没有引入新的坏模式);
  • **延迟**(新版可能更慢,尤其是换了更大的模型)。
  • ⚠️ **成本提醒**:双跑会让**成本与并发翻倍** ✗ —— 必须限时(例如 3 天)、限比例(例如 10% 流量)、

    并提前把额度与告警准备好 ✔。

    上线判据要事先写死

    ```

    ✓ 格式合规率 ≥ 旧版

    ✓ 逐条对比中「更差」占比 ≤ 5%

    ✓ 失败类型没有新增的严重类别(编造、越权)

    ✓ P95 延迟 ≤ 旧版 × 1.2

    ✓ 单位成本 ≤ 预算线

    ```

    任一不达标 → **不上线**(而不是"再看看" ✗)。

    影子模式的两个陷阱

  • **影子里的输入与线上不同** ✗:只挑"看起来难"的请求进影子 → 结论不可迁移 ✔;
  • 正确做法是**按比例随机采样真实请求** ✔。

  • **影子结果没人看** ✗:每天要有人(或脚本)过一遍差异清单 ✔,否则等于白跑 ✗。
  • 落地顺序

    1. 先做**离线回放**(零成本、零风险,能用历史请求先筛掉明显更差的版本);

    2. 通过后再做**双跑对比**(限时、限比例、有告警);

    3. 达标后小流量灰度 → 全量;

    4. 全程保留**一键回滚**开关 ✔(没有回滚就不要全量 ✗)。

    想要你的品牌在AI回答里被推荐?

    免费诊断 →