29

Debugging & Incident Playbook

⏱️ 35分钟

Debugging 与 Incident Playbook

LLM system 出问题时,最怕的不是 error 本身,而是团队不知道该先看哪里。因为 AI incident 往往不是单点故障,它可能同时牵涉 model、retrieval、prompt、tool、provider、queue,甚至只是某次配置变更把坏行为悄悄放大了。没有 playbook,排障会很像摸黑撞墙。

所以这页的重点不是“出事再看日志”,而是 AI engineer 该怎么把 debugging 和 incident response 做成一套能复用的生产流程。

AI Incident Response Flow


先说结论:先分型,再排障

AI incident 最容易犯的错,是一上来就盯模型输出。
更有效的顺序通常是:

  1. 先判断是哪类事故
  2. 再缩小到哪一层
  3. 最后才做 prompt / model 级定位

如果不先分型,排障会被大量噪音拖住。


AI Incident 常见的 5 类类型

类型常见表现
provider / infra401、403、429、5xx、timeout
quality drift突然更会乱答、乱引、乱格式
retrieval failure找不到 source、citation 空了
tool failuretool timeout、schema 不对、执行失败
cost / latency spiketoken 激增、fallback 过多、P95 爆掉

先把事故归到这类里面,后面定位速度会快很多。


第一轮 Triage 该看什么

更实用的 triage 顺序:

问题你先看什么
有没有刚发过配置 / prompt / model 变更deploy / config timeline
错误是不是集中在某 provider / regionprovider dashboard / route log
是全量都坏,还是某一类请求坏request segment / tenant / feature flag
是 deterministic error,还是质量漂移logs + samples + metrics

AI incident 最怕一上来只盯单个 bad sample。先看面,再看点。


一个更像生产系统的排障分层

你要排什么
request layer哪类用户、哪个 feature、哪个 tenant 出问题
routing layer走了哪个 provider / model / fallback
context layerprompt、history、retrieval chunk 有没有异常
execution layertool、queue、worker、timeout、retry 是否异常
outcome layer质量、cost、latency、schema 是否失控

这样分层后,incident 讨论会比“模型是不是变笨了”更有效。


常见事故怎么快速处理

事故更快的动作
401 / 403先查 key、permission、env 是否变更
429降并发、开 backoff、检查流量 spike
5xx / timeout看 provider health,必要时切 fallback
schema fail先加 repair path 或切回旧 prompt
hallucination surge先收温度、收 scope、加强 source guard

Incident response 里,“先把伤口止住”通常比“立刻找全根因”更重要。


Trace 和 Log,最少要记到什么程度

没有 trace ID 的 AI debugging,后面几乎都会很痛。

建议每个 request 至少关联:

  • trace_id
  • model / provider
  • prompt or config version
  • retry count
  • retrieval source IDs
  • tool call summary
  • latency
  • token usage

不是让你把敏感内容全记下来,而是让你能把一次坏请求在系统里串起来。


Quality Incident 和 Infra Incident 不一样

这是很多 team 会混淆的一点。

Infra incidentQuality incident
明显报错、超时、失败看起来成功,但内容明显变差
更容易用系统指标发现往往要靠 sample review 才发现
通常先看 provider / worker通常先看 prompt / retrieval / policy

如果你把 quality incident 当成普通 5xx 事故来处理,往往会漏掉真正的问题。


Runbook 不该只是文档存档

一个能用的 runbook,至少要写清:

  1. 症状
  2. 快速诊断入口
  3. 临时止损动作
  4. 根因排查路径
  5. 回滚方法
  6. 责任人和升级路径

没有这些,runbook 很容易变成“事后复盘材料”,而不是现场工具。


Postmortem 最有价值的部分

AI incident 的 postmortem 不该只写“问题已修复”。
更该补的是:

  • 哪个监控本来应该更早报警
  • 哪个 bad case 应该进入 eval set
  • 哪个 rollback 开关不够快
  • 哪条 guardrail 本来可以提前挡住

真正好的 postmortem,是把 incident 转成未来的系统能力。


Practice

拿你现在一个线上 AI feature,先补这 4 样:

  1. 一页 incident 分类表
  2. 一页 triage 顺序
  3. 最常见 3 类故障的 runbook
  4. 一组必须进 trace 的字段

这些东西补齐后,出事时团队会稳定很多。

📚 相关资源

❓ 常见问题

关于本章主题最常被搜索的问题,点击展开答案

AI incident 排障的正确顺序是什么?

先分型,再排障,最后才看模型。3 步:(1) 判断是哪类事故(provider/infra、quality drift、retrieval failure、tool failure、cost/latency spike 5 类);(2) 缩小到哪一层(request / routing / context / execution / outcome);(3) 才做 prompt / model 级定位。一上来盯单条 bad sample 会被噪音拖死。

AI incident 第一轮 triage 应该看什么?

4 个问题,从面到点:最近有没有发过配置 / prompt / model 变更(看 deploy timeline)、错误是不是集中在某 provider / region(看 provider dashboard)、是全量都坏还是某一类请求坏(按 segment / tenant / feature flag 切)、是 deterministic error 还是质量漂移。先看面再看点,否则容易陷入个例。

Quality incident 和 infra incident 怎么区别处理?

完全两套打法。Infra incident:明显报错 / 超时 / 失败,靠系统指标发现,先看 provider 和 worker。Quality incident:看起来成功但内容明显变差,要靠 sample review 才发现,先看 prompt / retrieval / policy。把 quality incident 当 5xx 处理是常见误判 —— 你会盯 retry 但根本不在 retry 上。

AI 请求至少要 trace 哪些字段才好排障?

至少 8 项:trace_id、model / provider、prompt 或 config 版本、retry count、retrieval source IDs、tool call summary、latency、token usage。不是要你把敏感内容全记下来,是让你能把一次坏请求在系统里串起来 —— 没有 trace_id 的 AI 排障基本都很痛。

AI runbook 应该写什么才在现场真正能用?

6 件事缺一不可:症状描述、快速诊断入口、临时止损动作、根因排查路径、回滚方法、责任人和升级路径。常见 3 类故障必须各有 runbook:401/403 先查 key/permission,429 先降并发开 backoff,hallucination surge 先收温度收 scope 加 source guard。Runbook 不能只当事后存档。