从敏感输出、RAG 污染、工具误执行、供应商故障、成本暴走到发布回归:把 AI 事故从混乱救火变成可演练系统
| 阶段 | 核心问题 | 最小动作 | 留下什么证据 |
|---|---|---|---|
| 发现 | 这是质量、安全、可用性、成本还是权限事故 | 确认信号来源、影响面、版本范围、用户范围 | alert_id、first_seen、sample_requests、affected_feature |
| 定级 | 是否需要进入事故指挥模式 | 定 P0/P1/P2,拉起频道,指定 Incident Commander | severity、commander、timeline、decision_log |
| 止血 | 如何先阻止扩大 | 冻结发布、降级模型、禁用工具、切 Fallback、限流、关闭高风险入口 | containment_action、operator、scope、rollback_point |
| 诊断 | 问题来自模型、Prompt、RAG、工具、路由、护栏还是交互 | 按 trace 对齐版本快照和链路事件 | trace_ids、prompt_version、model_id、rag_index、tool_schema、policy_version |
| 恢复 | 怎样确认用户和系统已恢复到可接受状态 | 回滚或修复后跑冒烟、回放坏例、观察核心切片 | verification_cases、monitor_window、owner_signoff |
| 复盘 | 同类事故怎样不再复发 | 写复盘、补 Runbook、补评测集、补告警和演练 | incident_report、eval_case_id、runbook_patch、drill_plan |
HTTP 200、模型正常返回、工具调用成功,都不等于没有事故。AI 事故常常表现为“系统技术上成功,但输出、动作、权限、成本或业务结果错了”。
| 等级 | AI 场景判断 | 响应要求 | 典型动作 |
|---|---|---|---|
| P0 | 敏感信息泄露、跨租户数据暴露、高风险工具误执行、大面积有害输出、关键客户流程中断 | 立即拉起指挥,冻结相关发布,必要时关闭入口 | 熔断、回滚、禁用工具、法务 / 安全 / 客户沟通进入 |
| P1 | 重要功能质量严重退化、成本快速失控、供应商故障影响核心场景、RAG 知识污染扩散 | 小时级止血和恢复,明确 owner 与用户影响面 | 切备用模型、降低自动化等级、人工复核、限流 |
| P2 | 局部场景错误、非高风险误拒 / 漏答、延迟上升、结构化输出失败增多 | 工作日内修复或进入发布计划 | 坏例入库、Prompt / RAG / schema 修复、补监控 |
| Near Miss | 被护栏、人工确认、灰度或回归测试提前拦住 | 仍要记录,因为它证明系统差点出事 | 补自动检测、扩展评测切片、演练确认拦截链路 |
| 请求风险等级 | 同类问题的默认响应 | 升级条件 | 必须保留的证据 |
|---|---|---|---|
| L1 | 通常按 P2 或普通缺陷处理 | 影响面快速扩大、外部客户集中投诉 | request_id、版本、输出 hash、用户反馈 |
| L2 | 按 P2 / P1 预检,先看业务影响面 | 关键流程受阻、错误建议被批量采纳、灰度指标恶化 | trace_id、cohort、eval_case_id、release_gate_id、回滚点 |
| L3 | 默认进入事故分流,先止血再归因 | 敏感数据、越权访问、工具副作用、跨租户影响 | 权限快照、工具参数 hash、approval_id、policy_decision、evidence_pack_id |
| L4 | 默认 P1,出现不可逆伤害或外部披露时 P0 | 金融、法律、医疗、人事、生产写操作或权限变更受影响 | 完整证据包、审批记录、人工复核记录、incident_id、fixed_version |
同样是“答错”,L1 可能只是体验问题,L4 可能已经影响不可逆决策。AI 事故定级要把 risk_tier、数据敏感度、工具副作用、影响面和证据完整度一起纳入判断。
| 时间窗 | 目标 | 动作 | 不要做 |
|---|---|---|---|
| 0-15 分钟 | 止血和定级 | 确认影响入口、版本、租户和风险;冻结相关发布;必要时切 Fallback、禁用高风险工具、关闭自动执行 | 不要先改 Prompt 试运气,不要删除日志,不要扩大实验流量 |
| 15-30 分钟 | 建立证据包 | 收集 trace、样例、版本快照、检索结果、工具参数、审批记录、用户反馈和告警时间线 | 不要只截最终回答;不要把敏感原文扩散到公共群 |
| 30-60 分钟 | 恢复路径 | 决定回滚、降级、人工接管、知识库下线、策略收紧或供应商切换;用坏例回放验证 | 不要用单个样例宣布恢复;不要忽略成本、权限和安全副作用 |
| 1 小时后 | 稳定观察 | 持续看核心切片、客户反馈、风险告警、成本水位和重试 / Fallback 指标 | 不要过早关闭事故;不要让临时开关长期悬挂 |
| 事故类型 | 典型信号 | 第一响应 | 长期修正 |
|---|---|---|---|
| 敏感输出 / 有害输出 | 用户投诉、红队命中、风险标签激增、审核拦截 | 收紧策略、关闭高风险入口、转人工复核、保留样本但脱敏 | 补安全切片评测、策略版本审计、红队演练和拒答校准 |
| 跨租户 / 越权泄露 | 低权限用户看到高权限材料、缓存命中异常、RAG 引用不该看的文档 | 禁用相关缓存或索引,切只读 / 无 RAG 模式,冻结 tenant 相关发布 | 补权限过滤、tenant key、缓存 key、审计字段和权限回归集 |
| RAG 污染 / 知识错误 | 答案引用错误、知识过期、异常 chunk 大量命中、外部来源被污染 | 下线污染文档或索引版本,切回旧索引,降级为人工引用确认 | 补数据来源校验、索引版本、文档 ACL、检索评测和知识刷新流程 |
| 工具误执行 | 错误发邮件、改状态、提交工单、调用生产写接口 | 禁用工具或提高审批等级,冻结副作用链路,启动补偿和客户沟通 | 补工具分级、schema 校验、确认门、幂等键、补偿动作和双人复核 |
| Agent 循环 / 失控 | 步数暴涨、重复工具调用、成本和延迟异常、任务无终态 | 强制取消 run,降低最大步数和预算,转人工接管 | 补退出条件、状态机、预算闸门、规划评测和循环坏例 |
| 供应商 / 模型服务故障 | 超时、限流、错误率上升、Fallback 激增、区域异常 | 切备用供应商或本地模型,按优先级排队,降级低价值请求 | 补多供应商评测、超时预算、熔断、容量预案和供应商状态页联动 |
| 成本暴走 | token、重试、长上下文、推理模型调用或工具调用成本突增 | 限流、切便宜模型、关闭深度推理、截断上下文、暂停异常租户 | 补预算告警、单位任务成本、路由策略、缓存策略和成本回归 |
| 发布回归 | 新 Prompt / 模型 / 路由 / 护栏上线后质量或安全指标变差 | 暂停放量,回滚最近变更,按版本快照回放坏例 | 补发布闸门、Canary 停止条件、回滚脚本和变更影响面分析 |
| 角色 | 负责什么 | 关键产物 |
|---|---|---|
| Incident Commander | 定级、节奏、决策、沟通和关闭事故 | 时间线、决策记录、状态更新、复盘 owner |
| AI Triage | 按模型、Prompt、RAG、工具、路由、护栏、UX 分流归因 | 错误归因、样例分桶、修复建议 |
| Platform / Gateway | 限流、熔断、Fallback、模型服务、供应商和容量 | 运行指标、降级动作、恢复验证 |
| Security / Compliance | 敏感信息、越权、策略绕过、用户通知和合规边界 | 风险判断、脱敏证据、通知建议、保留策略 |
| Product / Support | 用户影响、客户沟通、临时绕行路径和业务验收 | 影响名单、外部口径、工单分流、验收反馈 |
| Scribe | 记录事实、时间线、动作、证据链接和待办 | incident log、action items、postmortem 草稿 |
事故响应需要把 incident_id、trace_id、版本快照、权限裁决、处置动作和 eval_case_id 串起来。字段总表见 AI 证据包索引,单次请求回放见 请求 Trace / 排障模板。
| 证据组 | 最小字段 | 用途 |
|---|---|---|
| 影响面 | feature、tenant、user_role、region、request_type、first_seen、last_seen | 判断事故范围和是否仍在扩大 |
| 版本快照 | app_version、prompt_version、model_id、router_policy、rag_index_version、tool_schema_version、guardrail_policy_version | 定位哪次变更引入问题 |
| 链路 Trace | trace_id、retrieved_docs、tool_calls、fallback_reason、latency、token、cost、risk_flags | 还原一次请求如何走到错误输出或动作 |
| 权限与审批 | tenant_id、user_id、policy_decision、approval_id、actor、tool_scope | 确认是否越权、谁批准、执行身份是谁 |
| 样本与反馈 | bad_case_id、user_feedback、human_label、severity、redaction_status | 进入坏例池、评测集和复盘报告 |
| 处置动作 | action_id、operator、scope、time、result、rollback_point、verification_case | 证明如何止血、恢复和验证 |
| 对象 | 需要说明什么 | 不该说什么 | 证据来源 |
|---|---|---|---|
| 内部指挥频道 | 当前分级、影响范围、止血动作、下一次更新时间、决策 owner | 没有证据的猜测、互相归责、散落在多个频道的口头结论 | incident log、decision_log、containment_action |
| 客服 / 客户成功 | 受影响功能、客户可用绕行路径、是否需要暂停使用、收集哪些反馈 | 承诺未验证的恢复时间,或让一线自行解释模型内部原因 | affected_feature、known_workaround、support_macro |
| 安全 / 法务 / 合规 | 是否涉及敏感数据、越权访问、外部披露、保留删除和通知义务 | 把脱敏前样本随意转发,或在事实未清前定性责任 | redaction_status、policy_decision、data_boundary、legal_hold |
| 用户或客户公告 | 发生了什么、影响了谁、已采取什么动作、用户需要做什么、后续何时更新 | 暴露内部系统细节、夸大恢复程度、用“模型幻觉”替代事实说明 | impact_scope、customer_notice、status_page_update |
| 复盘读者 | 根因、检测缺口、止血耗时、恢复验证、长期动作和负责人 | 只列时间线不列改进动作,或把单个样例修复当成根因修复 | postmortem、eval_case_id、runbook_patch、owner_signoff |
AI 事故经常不是“服务挂了”,而是“结果不可信、动作不该发生、知识不该被引用、权限不该穿透”。沟通口径要基于证据和影响面,而不是把问题简单归因成模型异常。越高风险,越要把技术样本脱敏、法务边界和客户可执行动作分开处理。
| 复盘项 | 要回答 | 落到哪里 |
|---|---|---|
| 检测 | 为什么是用户 / 客服先发现,而不是系统先发现 | LLMOps Dashboard、告警规则、抽样复核 |
| 止血 | 有没有最快的冻结、降级、回滚或转人工路径 | 网关策略、工具开关、发布系统、Runbook |
| 归因 | 能否证明问题来自哪一层,而不是凭印象猜 | Trace 字段、版本快照、错误归因矩阵 |
| 修复 | 修的是根因还是只修了一个样例 | Prompt / RAG / 工具 / 护栏 / UX / 路由改动 |
| 回归 | 同类问题是否进入自动或人工评测 | Golden Set、安全集、RAG 集、工具执行集、发布闸门 |
| 演练 | 下次能否更快发现、更小范围影响、更少人工混乱 | 季度演练、角色轮换、Runbook 演进 |
| Runbook | 最低内容 | 回读页面 |
|---|---|---|
| 安全输出事故 | 风险分级、样本脱敏、策略收紧、人工复核、外部沟通 | AI 安全护栏 |
| 权限 / 租户泄露事故 | 关闭缓存 / 索引、ACL 校验、影响用户、审计证据和通知边界 | 权限 / 租户 / 数据边界 |
| 工具副作用事故 | 禁用工具、补偿动作、审批链、幂等键、客户沟通和数据修复 | Tool Calling / 执行协议 |
| 供应商 / 网关事故 | Fallback、限流、优先级、降级体验、供应商沟通和恢复验证 | 模型服务 / 网关 |
| 成本暴走事故 | 预算阈值、成本归因、限流、模型降级、异常租户和事后账单复核 | 成本 / 性能工程 |
| 发布回归事故 | 版本快照、Canary 停止条件、回滚步骤、坏例回放和恢复确认 | 发布 / 灰度 / 回滚 |