附录 E:10 分钟止损 Runbook 库(AI 产品通用)¶
对“一人团队”而言,Runbook 不是写给别人看的流程文档,而是给未来的你准备的应激脚本:在最焦虑、最缺睡眠、最想“先修一下看看”的 10 分钟里,它逼你做出最保守、最可逆、最能止损的动作。
本附录的原则只有一句话:先止血,后定位;先可逆,后完美。
证据包的统一结构与字段规范见:附录 D:证据包与门禁速查。 指标口径与告警阈值的统一写法见:附录 F:指标字典与告警门禁速查。
0. 使用方式(3 条规则)¶
1) 先建证据包目录,再动生产
任何事故/异常都先创建:reports/YYYY-MM-DD/<change-id>/。<change-id> 建议用 rbXX-<slug> 或 inc-<slug>(例如 rb02-cost-spike)。
2) 10 分钟内只做“可逆动作”
优先顺序:功能开关/路由切换/索引别名切换/回退版本集合(version set)> 热修复 > 大改。
3) 复盘的交付物不是“总结”,是“门禁与回归资产”
事故结束后必须把触发样本回写回回归集、把阈值写回门禁 (Admission Gate)、把回退指针写回发布流程,否则同类事故会复发。
1. 统一术语与分级(S0–S3)¶
| 级别 | 定义 | 触发示例(示例值) | 响应时效 | 谁决定 | 是否公告 |
|---|---|---|---|---|---|
| S0 | 致命:安全/隐私越界、跨租户、资产快速流失、核心服务不可用 | 跨租户访问命中 > 0;PII 泄露命中 > 0;核心链路成功率 < 90%;成本/小时 > 基线×10 | 立即(0 分钟) | 你(或 Oncall) | 必须(15 分钟内给出“已止血/降级”说明) |
| S1 | 严重:核心能力显著退化/大量用户无法完成闭环 | P95 延迟 > 基线×2;差评率 10 分钟内上升 > 20pp;支付失败率 > 5% | 15 分钟内 | 你 | 视情况(有明确降级提示) |
| S2 | 高优:局部或非核心能力故障,体验受损但可绕行 | 特定入口错误率上升;部分工具不可用但有替代路径 | 4 小时内 | 你 | 否 |
| S3 | 一般:瑕疵/告警噪声/可延后 | 文案/样式;非关键指标轻微波动 | 下个版本 | 你 | 否 |
定级原则: - 宁可升高一级也不要低估:一人团队没有“缓冲带”,低估会让止损窗口消失。 - S0/S1 一律先回滚/降级再分析:把诊断留到血止住之后。
2. 证据包与回滚指针(统一口径)¶
每个 Runbook 的“证据包要求”都默认包含以下最小集合(详情见 D-evidence-pack.md):
- meta.json:事件信息与定级(S0–S3)、责任人、时间线
- version_set.json:事故时刻的版本集合(代码/配置/提示/模型/索引/策略)
- rollback_plan.md:回滚/降级动作与触发阈值
- signals/:监控截图/导出的关键指标
- samples/:可复现样本(JSONL/trace_id 列表,脱敏)
建议你在事故开始的 30 秒内执行一次“落盘动作”:
DATE=$(date +%F)
CHG_ID=rb01-quality-regression # 自行替换
mkdir -p "reports/$DATE/$CHG_ID"/{signals,samples}
printf '{"change_id":"%s","date":"%s","severity":"S?","owner":"me"}\n' "$CHG_ID" "$DATE" \
> "reports/$DATE/$CHG_ID/meta.json"
3. Runbook 索引表(先查表再执行)¶
| ID | 场景 | 主指标(触发) | 守门指标(不得退化) | 首要止血动作(默认) | 默认回滚指针 |
|---|---|---|---|---|---|
| RB-01 | 质量回归(离线门禁失败/线上差评暴涨) | 回归通过率/胜率下降;差评率暴涨 | 错误率、越权/泄露命中 | 回退 prompt_version/model_version 或关闭开关 |
上一稳定 version_set |
| RB-02 | 成本尖峰(token/tool_calls/缓存穿透) | 单位成本/小时消耗异常 | 成功率、限流误伤率 | 降级高成本路径 + 限流 + 预算硬闸 | 上一“成本保守”配置 |
| RB-03 | 延迟/超时尖峰(TTFT/P95) | TTFT/P95 超阈值 | 成功率、取消/重试风暴 | 削减链路(关工具/减 top_k/短上下文) | 上一“低延迟”配置 |
| RB-04 | 跨租户越权(AuthZ) | 越权命中 > 0(S0) | - | 维护模式/只读模式 + 全面阻断 | 上一授权策略版本 |
| RB-05 | RAG 污染/检索退化(索引/embedding) | 召回相关性下降、空结果率上升 | 越权/注入命中 | 索引别名切回上个快照 + 暂停摄入 | 上一索引快照 |
| RB-06 | Prompt 注入/越狱(策略突破) | 注入成功率上升/规则绕过 | 正常通过率、拒答误伤率 | 启用严格安全模式 + 移除高风险工具 | 上一安全策略版本 |
| RB-07 | 工具/第三方依赖故障(支付/邮件/搜索) | 下游 5xx/超时 | 自身 5xx、排队时间 | 熔断依赖 + 降级路径/备用路由 | 备用依赖配置 |
| RB-08 | 计费事故(重复计费/回调重放/退款风暴) | 对账差异>0、投诉激增 | 订单成功率、权益正确率 | 暂停计费/扣费任务 + 冻结出账 | 上一计费规则版本 |
| RB-09 | 评测漂移(Judge 版本变化/基线失效) | 同样本分数大幅波动 | 回归稳定性、Tie 率 | 冻结发布 + 固定 Judge 版本 + 重建基线 | 上一可复现基线报告 |
| RB-10 | 数据管道污染(PII 混入/标签不一致) | 校验失败/PII 命中/分布突变 | 训练/索引口径一致性 | 停止摄入/训练 + 隔离批次 + 回滚快照 | 上一数据快照 |
4. Runbooks(按编号执行)¶
RB-01:质量回归(离线门禁失败 / 线上差评暴涨)¶
触发条件(示例阈值)¶
- 示例:离线回归主指标(通过率/胜率)低于基线
-2pp,或judge_gate.py退出码非 0(阻断级)。 - 示例:线上负反馈(差评/点踩/一键重试)10 分钟内上升
> 20pp。 - 示例:无证据强答率上升(引用缺失/胡编)且触发投诉。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,记录当前
version_set(见D-evidence-pack.md)。 - 1:00–3:00 缩小影响面:停止扩量(灰度比例归零)/关闭实验开关。
- 3:00–6:00 立即回退“最可能的变化点”:
prompt_version/model_version/index_version/policy_version(只回退一个主因,避免混淆)。 - 6:00–8:00 用 3–5 条固定样本做人工验收(黄金链路 + 事故样本)。
- 8:00–10:00 冻结坏版本:标记不可再次发布;把触发样本写入
samples/。
回滚/降级动作(可执行)¶
- 关闭开关:
FEATURE_X=false(把体验回到上一稳定路径)。 - 回退版本集合:切回上一稳定
version_set(代码/提示/模型/索引同步回退)。 - 降级策略:切到“保守模式”(更短上下文、更少工具、更严格拒答)。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(<change-id>建议rb01-quality-regression) - 必备:
report.baseline.json、report.candidate.json(或等价回归报告)、触发样本 JSONL、关键面板截图 - 参照清单:
D-evidence-pack.md
恢复判定¶
- 回归门禁恢复通过(退出码为 0),且线上负反馈回到基线波动区间内并稳定 30 分钟。
复盘回写(防复发)¶
- 把触发样本升级为阻断级回归;把“退化类型”写入样本标签(幻觉/格式/引用/越权)。
- 把回退点写成“默认回滚指针”,写入发布说明与
rollback_plan.md。
延伸阅读¶
- 发布与回滚:
17-deployment.md - 评测与门禁:
18-evaluation.md
RB-02:成本尖峰(token / tool_calls / 缓存穿透)¶
触发条件(示例阈值)¶
- 示例:单位时间成本(每分钟/每小时)超过基线
×5,且持续 5 分钟。 - 示例:单租户成本超过预算(例如日预算)
> 80%并持续上升。 - 示例:缓存命中率断崖式下降(穿透)导致成本与延迟同时上升。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,导出“成本 Top 租户/入口”列表。
- 1:00–3:00 判断类型:单点(刷量/死循环)vs 全局(配置变更/缓存失效)。
- 3:00–5:00 先止血:
- 单点:封禁
api_key/user_id/tenant_id或把该租户切到低配策略。 - 全局:立即切换到“成本保守”路由(更省模型、更少工具、更短上下文)。
- 5:00–8:00 打开预算硬闸:降低全局并发/提高触发降级阈值(先保命)。
- 8:00–10:00 抽样 3 条高成本 trace:确认主要耗费来自 tokens、工具重试还是检索/上下文膨胀。
回滚/降级动作(可执行)¶
- 路由降级:高成本链路(长上下文/多工具/深检索)默认关闭;只对白名单开启。
- 配额收紧:按租户/用户设置硬上限(预算耗尽 → 暂停/限流/降级)。
- 关闭高成本能力:例如“深度分析/多轮自动代理”入口临时下线。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(建议rb02-cost-spike) - 必备:成本曲线截图、Top consumers 列表(脱敏)、高成本 trace_id 列表、当时生效的预算与路由配置
- 参照清单:
D-evidence-pack.md
恢复判定¶
- 成本回到基线区间(或明确的“降级后目标区间”)并稳定 30 分钟;误伤率可接受。
复盘回写(防复发)¶
- 将高成本 trace 的触发模式写入回归与门禁:
max_tool_calls、max_iterations、max_context_tokens。 - 将“预算耗尽后的系统行为”写入计费与产品说明(见
12-billing.md)。
延伸阅读¶
- 计费与止损:
12-billing.md - 推理预算与降级:
16-inference.md
RB-03:延迟/超时尖峰(TTFT / P95 / 排队)¶
触发条件(示例阈值)¶
- 示例:TTFT(首 token)P95 超过基线
×2或绝对值> 2s。 - 示例:端到端 P95 超过基线
×1.5或绝对值> 10s。 - 示例:超时率/504 比例超过
1%并持续上升。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,固定一条“慢请求”trace_id。
- 1:00–3:00 识别瓶颈:排队(并发过载)vs 生成(模型慢)vs 工具(外部依赖慢)vs 检索(RAG 慢)。
- 3:00–6:00 削减链路(只做可逆动作):
- 关高延迟工具调用(搜索/爬取/外部 API)。
- 减少检索
top_k、缩短上下文、关闭重排。 - 降级到更快模型或更短输出策略(保留可用性)。
- 6:00–8:00 打开过载保护:并发上限/队列上限/超时更激进(宁可拒绝也别拖死)。
- 8:00–10:00 校验关键路径:黄金链路 3 条手工跑通;确认“取消/重试”不会触发风暴。
回滚/降级动作(可执行)¶
- 回退到上一“低延迟”配置:更短上下文、更少工具、更小 top_k。
- 降级输出:强制结构化短答 + “可继续展开”按钮,减少一次请求生成量。
- 限流:对长输入/高风险入口更严格(按输入长度分桶)。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(建议rb03-latency-spike) - 必备:慢请求 trace 截图/导出、关键指标面板截图、当时的并发/超时/路由配置
- 参照清单:
D-evidence-pack.md
恢复判定¶
- P95/超时率回到基线波动区间并稳定 30 分钟;排队长度回落。
复盘回写(防复发)¶
- 将“慢请求类型”写入压力样本集与门禁(见
18-evaluation.md的边界压力样本)。 - 将降级梯度写成可配置策略(见
16-inference.md)。
延伸阅读¶
- 推理优化:
16-inference.md - 部署与回滚:
17-deployment.md
RB-04:跨租户越权(AuthZ)(S0)¶
触发条件(示例阈值)¶
- 示例:任何跨租户访问命中
> 0(日志/告警/用户举报)。 - 示例:审计发现
tenant_id过滤缺失或缓存键不含租户信息。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,立刻定级 S0。
- 1:00–2:00 立即止血:进入维护模式或全站只读模式(优先保护数据)。
- 2:00–5:00 阻断扩散:关闭导出/分享/批量接口;强制重新登录(撤销会话)。
- 5:00–8:00 最小复现:用两套租户账户复现一次越权路径(记录请求/响应与 trace)。
- 8:00–10:00 回退策略:回滚授权策略版本/最近相关变更(只回退一个主因),直到复现消失。
回滚/降级动作(可执行)¶
- 策略回滚:切回上一
policy_version(新旧并行窗口结束前保持可回滚)。 - 缓存降级:关闭共享缓存或强制缓存键加入
tenant_id(临时可用,后续补性能)。 - 功能降级:共享/协作相关功能临时关闭。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(建议rb04-cross-tenant) - 必备:复现请求/响应、访问日志抽样、审计事件抽样、当时生效策略版本与变更 diff
- 参照清单:
D-evidence-pack.md
恢复判定¶
- 越权复现不可再现;越权探测用例(阻断级)100% 通过;相关告警清零并稳定 24 小时。
复盘回写(防复发)¶
- 将越权复现固化为阻断级回归(服务端真实 API)。
- 强制把
tenant_id校验写成“服务端硬门槛”(见11-user.md)。
延伸阅读¶
- 用户与审计:
11-user.md - 合规与治理:
20-governance.md
RB-05:RAG 污染/检索退化(索引/embedding/version set)¶
触发条件(示例阈值)¶
- 示例:检索相关性/忠实度指标低于基线
-5pp,或空结果率上升> 10pp。 - 示例:同一问题返回明显无关或被污染内容(含敏感/测试/注入片段)。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,抽样 3 条坏案例(question/contexts/answer)。
- 1:00–3:00 判定污染源:新摄入数据 vs embedding/切分策略变更 vs 索引构建异常。
- 3:00–6:00 立即回滚索引:把索引别名切回上一稳定快照(
index_version回退)。 - 6:00–8:00 暂停摄入:停止新文档解析/入库,避免继续污染。
- 8:00–10:00 复核检索:用坏案例重跑检索,确认召回恢复。
回滚/降级动作(可执行)¶
- 索引别名切换:
index_current -> index_prev(保留切回指针)。 - 降级策略:临时禁用 RAG(仅参数模型回答)或切到“只引用可验证来源”的保守模式。
- 黑名单:对明确污染文档(doc_id/source)临时屏蔽。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(建议rb05-rag-pollution) - 必备:坏案例三元组(question/contexts/answer)、索引版本与构建 manifest、变更 diff
- 参照清单:
D-evidence-pack.md
恢复判定¶
- 坏案例的召回/答案回到基线;污染源被隔离;索引重建完成并通过门禁后再切回。
复盘回写(防复发)¶
- 将污染源规则写入摄入门禁(PII/注入扫描/格式校验),并在
13-data.md的清洗报告中固化。 - 将坏案例写入 RAG 回归样本集(见
18-evaluation.md)。
延伸阅读¶
- RAG 与威胁模型:
10-agent-rag.md - 数据治理:
13-data.md
RB-06:Prompt 注入/越狱(策略突破)¶
触发条件(示例阈值)¶
- 示例:红队样本注入成功率上升,或线上出现“规则绕过”的可复现话术。
- 示例:敏感输出/系统提示泄露命中
> 0(S0/S1 视场景)。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,固定攻击样本与输出(脱敏)。
- 1:00–3:00 立即止血:开启严格安全模式(更严格拒答、更严格工具调用)。
- 3:00–6:00 降级能力面:移除高风险工具(写入、导出、外部调用),把系统降为只读/低权限模式。
- 6:00–8:00 封禁/限流:对攻击源做封禁或强限流(用户/租户/IP/入口)。
- 8:00–10:00 复跑红队回归:确认攻击样本不再成功;误伤率可接受。
回滚/降级动作(可执行)¶
- 策略回滚:切回上一
policy_version/prompt_version(更保守的系统提示与拒答模板)。 - 工具白名单:把可调用工具收缩到最小集合(只读查询)。
- 输出降级:对高风险内容仅给“检查清单/问题框架”,不输出具体步骤或细节。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(建议rb06-injection) - 必备:攻击样本与输出、命中规则与策略版本、处置动作时间线、回归结果
- 参照清单:
D-evidence-pack.md
恢复判定¶
- 攻击样本回归稳定失败(被拒绝/被降级),且正常样本通过率未明显退化。
复盘回写(防复发)¶
- 攻击样本进入阻断级回归;把“绕过路径”写入威胁模型与门禁阈值(见
20-governance.md)。
延伸阅读¶
- 合规与治理门禁:
20-governance.md - 评测与红队:
18-evaluation.md
RB-07:工具/第三方依赖故障(支付/邮件/搜索等)¶
触发条件(示例阈值)¶
- 示例:依赖方 5xx/超时率 >
5%并持续 5 分钟。 - 示例:工具调用失败导致任务闭环率下降
> 10pp。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,确认是单一依赖还是系统性网络问题。
- 1:00–3:00 熔断依赖:停止调用该工具(避免重试风暴拖垮自己)。
- 3:00–6:00 启用替代路径:
- 有备用:切到备用依赖(备用支付通道/备用邮件服务/备用搜索)。
- 无备用:降级为“可解释的失败”(提示稍后重试/改走手工流程)。
- 6:00–8:00 限制副作用:关闭会触发大量工具调用的入口(批量/自动代理)。
- 8:00–10:00 验证:关键链路能完成;失败路径可恢复且不产生重复副作用(重复扣费/重复发信)。
回滚/降级动作(可执行)¶
- 工具集合收缩:移除不可用工具(避免模型反复尝试调用)。
- 入口降级:把依赖强绑定的功能切为“排队/稍后处理”模式。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(建议rb07-dependency) - 必备:依赖方错误样本、熔断与切换日志、对用户提示截图
- 参照清单:
D-evidence-pack.md
恢复判定¶
- 依赖恢复后可平滑切回主路;熔断解除后错误率稳定。
复盘回写(防复发)¶
- 将依赖故障场景写入边界压力样本集与回归;明确“工具不可用时系统应如何降级”。
延伸阅读¶
- 部署、观测与回滚:
17-deployment.md
RB-08:计费事故(重复计费 / 回调重放 / 退款风暴)¶
触发条件(示例阈值)¶
- 示例:对账差异(账本 vs 支付回调)出现非零,或投诉在 1 小时内 >
3起。 - 示例:同一
idempotency_key出现重复入账,或 webhook 重放导致重复扣费。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,定级 S1(严重时 S0)。
- 1:00–3:00 先止血:暂停扣费/续费/出账任务;必要时隐藏新订阅入口。
- 3:00–6:00 保护用户:冻结有争议的账单行;对受影响用户先发“临时保护”说明(不争辩)。
- 6:00–8:00 导出差异清单:按
tenant_id、invoice_id、payment_id汇总差异。 - 8:00–10:00 准备纠错动作:冲正/补记/退款的最小脚本与审批口径(不改历史)。
回滚/降级动作(可执行)¶
- 回滚计费规则版本(
price_version回退)。 - 启用更严格幂等:对 webhook 重放按事件 id 去重;冲正也幂等。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(建议rb08-billing-incident) - 必备:差异清单、相关事件 id 列表、冲正/补记计划、对用户沟通内容
- 参照清单:
D-evidence-pack.md
恢复判定¶
- 新增账单无差异;受影响账单完成冲正/补记/退款;对账可重放且一致。
复盘回写(防复发)¶
- 将“回调重放/重试风暴/冲正重算”写入对账回归与门禁(见
12-billing.md)。
延伸阅读¶
- 计费与对账:
12-billing.md
RB-09:评测漂移(Judge 版本变化 / 基线失效)¶
触发条件(示例阈值)¶
- 示例:在无产品改动的情况下,同一回归集的
A/B/Tie分布大幅变化(例如胜率波动> 5pp)。 - 示例:Tie 率显著上升(例如
+10pp),导致门禁无法裁决。 - 示例:Judge 供应方升级/配置变化后,历史基线报告不可复现。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,定级 S2(若影响发布门禁则视为 S1)。
- 1:00–3:00 冻结发布:评测不可裁决时禁止推进发布(先恢复裁判)。
- 3:00–6:00 固定 Judge 口径:
- 固定 judge 模型/版本(或固定配置快照),避免“自动升级”改变裁判。
- 固定随机种子/采样策略(如有)。
- 6:00–8:00 重跑小校准集:用一组已知结论样本检查 judge 是否“偏移”。
- 8:00–10:00 重建基线:在固定 judge 口径后重新生成
report.baseline.json(只在明确接受口径变更时)。
回滚/降级动作(可执行)¶
- 回滚到上一可复现 judge 配置/版本;或切回上一基线报告与阈值组合。
- 临时降级:对关键阻断级样本改为人工复核(短期止损,不可长期依赖)。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(建议rb09-eval-drift) - 必备:旧/新 judge 配置对比、校准集结果、旧/新基线报告摘要
- 参照清单:
D-evidence-pack.md
恢复判定¶
- 同一回归集在固定口径下可稳定复跑;门禁阈值可裁决且误差在可接受范围。
复盘回写(防复发)¶
- 将“judge 版本锁定”写入评测流水线与发布门禁;将校准集纳入固定资产(见
18-evaluation.md)。
延伸阅读¶
- 评测体系与门禁:
18-evaluation.md
RB-10:数据管道污染(PII 混入 / 标签不一致 / 训练数据泄露)¶
触发条件(示例阈值)¶
- 示例:PII 扫描命中率 >
0(阻断级);或数据校验失败率 >5%。 - 示例:同一批次数据分布突变(长度/语言/标签比例),超过历史波动区间。
- 示例:训练/索引输入包含不应进入系统的字段(密钥/支付/合同机密)。
0–10 分钟动作清单¶
- 0:00–1:00 建证据包目录,立即暂停摄入/训练/索引构建任务(先断源)。
- 1:00–3:00 隔离批次:按
batch_id/snapshot_id标记为不可用,禁止进入下游。 - 3:00–6:00 回滚快照:把训练/索引指针切回上一
snapshot_id(数据注册表/manifest)。 - 6:00–8:00 清理污染:若已入库(RAG/数据表),按
batch_id执行删除或回滚。 - 8:00–10:00 复跑校验:确认 PII 扫描与 schema 校验恢复 100% 通过。
回滚/降级动作(可执行)¶
- 回滚数据处理脚本与配置(
config_hash/code_revision回退)。 - 回滚数据快照与索引版本;必要时临时停用相关能力(直到数据重新清洗完毕)。
证据包要求(必须落盘)¶
- 路径:
reports/YYYY-MM-DD/<change-id>/(建议rb10-data-pipeline) - 必备:污染样本(脱敏)、校验报告、manifest/指纹、清理日志、回滚指针
- 参照清单:
D-evidence-pack.md
恢复判定¶
- 校验全绿;污染批次已隔离;下游训练/索引均指向干净快照;无二次污染。
复盘回写(防复发)¶
- 强制“先校验后进入训练/索引”的门禁;把污染样本写入阻断级扫描样本(见
13-data.md、20-governance.md)。
延伸阅读¶
- 数据资产化与清洗:
13-data.md - 合规与治理:
20-governance.md
5. Runbook 最小模板(可复制)¶
把下面模板复制成 ops/runbooks/rb-xx.md,并在每次事故后更新它。字段对齐本书约定:gate/evidence/release/rollback。
# RB-XX:<场景标题>
## Gate(触发与门槛)
- 严重级别:S0/S1/S2/S3
- 触发条件(示例阈值):
- <metric> > <threshold> 持续 <duration>
- 触发样本:<id/trace_id>
- 守门指标(不得退化):
- <success_rate>, <unauthorized_hits>, <pii_hits> 等关键指标
## 0–10 分钟止损(只做可逆动作)
- 0:00–1:00 建证据包目录:`reports/YYYY-MM-DD/<change-id>/`
- 1:00–3:00 停止扩量/关闭开关:<flag>
- 3:00–6:00 回退版本集合(version set)到:<rollback_pointer>
- 6:00–8:00 验证黄金链路:<steps>
- 8:00–10:00 冻结坏版本 + 记录样本:<where>
## Rollback(回滚/降级动作)
- 开关:<flag>=<safe_value>
- 路由/版本:<prompt_version>/<model_version>/<index_version>/<policy_version>
- 配额/限流:<quota/rate_limit>
## Evidence(证据包要求)
- 目录:`reports/YYYY-MM-DD/<change-id>/`
- 必备文件(参照 `D-evidence-pack.md`):
- `meta.json`、`version_set.json`、`rollback_plan.md`
- `signals/`(面板截图/导出)
- `samples/`(JSONL/trace_id,脱敏)
## Release(恢复判定与恢复动作)
- 恢复判定:<metrics back to baseline> 持续 <time>
- 恢复动作:逐步放量(从 <x%> → <y%>),每步观察 <window>
## 复盘回写(让问题不复发)
- 将触发样本加入:回归集/红队集(阻断级)
- 将门禁阈值写入:CI/发布门禁
- 将回滚指针写入:发布说明与文档