L5.7 AI 系统事故响应与复盘
三维坐标
layer: L5(MLOps/LLMOps)|level: Senior|pillar: 训推框架L5.4 教你看指标与追踪;L5.2 教你怎么发布。本章教 出事了怎么办——AI 系统的事故与传统 Web 不同:服务可能「还在 200 OK,但答案已经错了」。我们沿四条主线展开:定级(SEV 分级与响应时限)、止血(MTTR 五阶段与 AI 事故止血手册)、复盘(blameless postmortem 五件套)、演练(Tabletop 桌面推演)——目标是把「救火靠英雄」变成「响应靠制度」。
学习目标
- 前置知识:读过 L5.2–L5.4;理解 RAG、模型 registry、灰度发布与回滚的基本概念;知道 SLI/SLO 是什么(L5.4 的 2.3 节)。无需 OnCall 实战经验。
- 学完产出:① 能列出 AI 系统至少 5 类独有故障模式,并解释为什么它们大多不触发传统可用性告警;② 能按 SEV1–SEV4 判定事故等级、给出对应响应时限,并处理「质量型故障没有硬宕机信号」的定级难题;③ 能把 MTTR 拆成 Detect → Triage → Mitigate → Resolve → Learn 五阶段,用数字算清「哪一段最值得投资」;④ 能写一份合格的 blameless postmortem(timeline / impact / root cause / action items / prevention),并说清 blameless 不是「和稀泥」而是一套激励机制设计;⑤ 完成一次 RAG 质量骤降的 Tabletop 演练,产出 timeline、mitigate 清单和 postmortem 草稿。
- 阅读姿势:盯住一条主线——Postmortem 的目标不是追责,是让同类事故在统计上不可能再发生。没有 action item + DRI + due date 的复盘等于没写;没有演练过的 runbook 等于没有 runbook。
背景与现状
先看两个真实感十足的业务症状,感受 AI 事故的「新形态」:
- 症状一:凌晨四点的告警风暴。值班手机连响 200 条告警——GPU 温度、P99、队列深度、KV Cache 全在叫,但没有一条告诉你根因。真正的问题是一台交换机端口降速导致 NCCL 通信退化,所有下游指标一起恶化。因为没有告警分级与拓扑聚合,值班人在噪声里刨了 40 分钟才找到那台交换机——这 40 分钟全算进 MTTR。
- 症状二:静默的报价事故。电商客服机器人某天开始把「满 300 减 30」的优惠券解释成「全场 3 折」。服务全程 200 OK、P99 完美、错误率为零——直到运营在社交媒体上看到用户晒截图。根因是前一天下午一次 prompt 模板改动删掉了「仅按知识库原文回答优惠信息」的约束。没有任何基础设施指标能发现这个事故,它只存在于「答案的正确性」这个维度里。
这两个症状指向同一个结论:AI 系统的事故形态与传统 Web 有系统性差异——
| 传统 Web 事故 | AI 系统独有事故 |
|---|---|
| HTTP 5xx 飙升 | Silent quality degradation(静默质量退化:200 OK,答案错) |
| DB 连接池耗尽 | Embedding 与索引版本不匹配(检索空间错位) |
| CPU 100% | Prompt injection / jailbreak 成功(安全边界被语言绕过) |
| 缓存穿透 | 上游 LLM API 限流导致降级模型悄悄上线(质量降级无告警) |
| 部署回滚 | 数据漂移导致检索失效(世界变了,索引没变) |
检测难点也随之改变:可用性告警是秒级的(up == 0 立刻可见),而质量指标(faithfulness、ragas 分数)通常依赖 5–15 分钟滚动窗口——告警触发时,用户往往已经受害 10 分钟以上。这就是为什么 AI 系统必须在传统监控之外补上合成探测(golden query set):用固定的黄金问题集持续「自问自答」,把质量退化的检测从「等用户投诉」变成「主动巡逻」。
📅 时效说明(2026 年初):从近两年的公开事故复盘与社区讨论看,LLM 应用的事故构成正在发生结构性变化——质量回退(模型/prompt/检索变更引入)、成本失控(token 用量或路由异常导致账单突增)、提示注入(prompt injection 造成越权或数据外带) 逐渐成为新的「三大事故类」,传统「服务宕机」型可用性事故的占比相对下降。这与技术栈成熟度一致:K8s + 多副本 + 自动扩缩容把「挂掉」变得罕见,而模型行为层的故障没有等价的成熟防线。本章的 SEV 分级与止血手册对这三类新事故均有对应条目,具体比例与工具生态请以当时实践为准。