Browse this library

Chinese source article

6.2 · 可观测性、安全与发布

记录可重放证据链, 防止越权与提示注入, 并用灰度和回退控制生产变化.

View original Markdown ↗

1. 一次请求需要留下什么

追踪从原始问题开始, 保存身份范围、时间、语料快照、索引版本、查询改写、过滤、候选、重排、上下文、模型配置、回答和引用. 每个阶段带耗时与错误状态.

1.1. 可重放与隐私

可重放不等于永久保存全部正文. 可以保存受控对象 ID、哈希和版本, 在授权环境中重新取得内容. 日志本身遵守访问控制和保留期.

聚合指标用于告警, 单次轨迹用于诊断. 无结果率、候选数量、重排截断、拒答率、引用解析失败和尾部延迟是常用信号.

2. 安全边界

2.1. 权限前置

用户与租户过滤在召回前执行, 缓存键包含授权范围. 模型看不到无权材料, 输出过滤只作额外防护. 管理员测试也不能把特权缓存共享给普通请求.

检索文档视为不可信数据. 文档中的指令不能修改系统目标、请求凭据或调用工具. 工具层独立验证参数与权限, 并限制网络和写入范围.

RAG 安全依赖数据域和执行域的边界, 不能依赖模型自行忽略恶意文字.

3. 新鲜度与故障

3.1. 更新延迟

监控源变化到索引可见的时间, 分开抓取、解析、embedding 和发布延迟. 对关键来源设置最大允许陈旧时间, 超时后限制回答或标示时间.

向量服务故障时可以降级到稀疏检索, 重排超时时使用召回排名, 生成服务故障时返回可读搜索结果. 降级路径必须仍遵守权限并明确能力变化.

4. 发布、灰度与回退

4.1. 兼容版本组

语料快照、切分器、embedding、向量索引、重排器、提示和生成模型形成一次发布配置. 改 embedding 通常要求重建向量索引; 改切分同时影响引用位置和评测集.

先离线回归, 再影子运行或小流量灰度. 同时观察质量、权限、延迟、错误和成本. 回退恢复完整兼容配置, 合规删除和权限撤回继续按最新状态执行.

生产成熟度表现为问题可定位、运行可重放、变更可比较、风险可阻断. 模型和检索算法会持续变化, 这些系统属性让变化保持可控.

端到端答案分数告诉系统是否成功, 却不告诉失败发生在哪里. RAG 同时依赖语料快照、检索、上下文选择和生成, 每层都需要自己的输入、输出与指标. 线上运维还要处理索引延迟、模型限流、缓存、权限变化和版本回滚. 评测结构应与运行数据流一致, 这样离线结论才能进入发布门禁.

评测样本记录查询、调用者数据域、语料快照、相关证据、答案和可答性. 运行记录再加入索引、模型、提示和参数版本. 如果语料快照没有固定, 同一查询的答案变化无法归因;如果只保存最终回答, 也无法重现候选和上下文.

5. 运行基线与发布证据

语料层测解析、索引新鲜度、删除残留和授权;检索层测 Recall@k、MRR、nDCG 与证据集合覆盖;上下文层测覆盖、冗余、冲突和 token;生成层测答案正确、命题支持、引用与拒答;系统层测延迟、成本、失败率与可用性.

这些指标不能平均成一个总分. 权限错误与删除残留是硬门, 不允许被答案质量抵消. Recall 提升若让 P99 超预算, 需要回到候选规模和重排配置. 自动 judge 用于快速回归, 仍需人工校准集监控漂移.

请求 trace 保存查询和改写、各路候选、融合与重排、最终证据、模型输入输出、引用和拒答原因. 敏感正文可保存受控快照引用和哈希. 错误出现后, trace 应能回答正确证据是否存在、在哪一层被丢掉、生成器是否看见以及引用为何通过验证.

发布门禁分为安全硬门、质量回归门和资源预算门. 新版本依次经过离线配对、影子运行和逐步放量. 回滚组合包括语料、解析器、切分器、embedding、索引、重排器、生成模型、提示和缓存. 删除与权限变更不随普通版本回滚撤销.

5.3. 安全与攻击面

间接提示注入把恶意指令藏进可检索文档. 系统必须把文档作为数据, 工具调用继续由独立权限控制. 语料投毒通过重复页面、关键词填充和伪造来源影响排序;越权探测利用结果数量、延迟或拒答差异推断文档存在;资源攻击则制造极长查询、宽过滤和反复检索.

红队样本进入固定回归集, 覆盖恶意文档、冲突来源、删除文档、跨租户查询与极端长度. 安全测试与质量评测共享 trace, 发布判定保持独立. 修复提示注入不能以降低权限隔离为代价.

分层评测、观测与发布 给出指标公式、切片方式、自动 judge 校准、线上仪表和事故定位流程. 它把 BEIR、KILT 与 RAGAS 放回各自适用层, 避免用一个框架替代完整评测.

后续若增加专门的安全评测、成本建模或索引运维方法, 都进入这条路线. 共同前提是请求级 trace 和版本化资产, 各叶子只展开不同故障面.

5.5. 评测数据的结构

每个样本包含查询、调用者可见域、语料快照、相关证据集合、答案、可答性和风险等级. 多跳问题允许多个等价证据集合, 比较问题记录每个对象的必需槽位. 训练、调参和测试按时间、来源或查询簇隔离.

人工标注保留分歧. 相关性、事实支持和答案质量是不同任务, 标注说明分别定义. 自动 judge 在人工校准集上报告一致性, 模型或提示变化后重新校准. 评测框架提供执行工具, 不替代标签定义.

请求 trace 串起语料、检索、上下文和生成. 每层保存版本、输入、输出、耗时和停止原因. 敏感正文可以保存受控快照引用与哈希, 仍要保证授权审计能够复现. 抽样 trace 回流到错误切片和回归集.

仪表按分层指标与查询切片展示. 总成功率之外, 监控索引消费位点、少于 kk 的结果、重排超时、上下文截断、无效引用和拒答比例. 分布变化与服务故障使用不同告警, 避免把新查询类型误判成组件宕机.

5.7. 发布、回滚与安全

硬门覆盖权限、删除、敏感信息和引用有效性;回归门覆盖召回、证据集合、答案支持和拒答;预算门覆盖延迟、token 和成本. 版本先离线配对, 再影子查询和逐步放量. 每次发布记录完整组件组合.

回滚包含语料快照、解析切分、embedding、索引、重排器、生成模型、提示和缓存. 删除与权限事件在所有版本上继续生效, 不能因回滚恢复撤回内容. 蓝绿索引切换前后使用同一探针验证.

安全测试包括间接提示注入、语料投毒、排序操纵、越权探测和资源耗尽. 文档只作为数据, 工具调用保持独立授权. 每条降级路径同样执行安全硬门, 不以服务可用性换权限正确性.

索引消费落后、候选不足、重排超时、上下文截断、生成限流和引用验证失败使用不同状态码. 端到端失败可以同时包含多个状态, trace 保留发生顺序. 告警指向最早失效层, 并关联同一请求的上下游影响.

数据分布变化与服务故障分开. 新语言、新实体或更长查询会改变质量指标, 却不一定表示组件异常;错误率、超时和资源饱和则属于运行状态. 仪表同时展示输入切片与系统容量, 避免把一种变化解释成另一种.

定期演练索引损坏、外部搜索不可用、模型限流和缓存污染. 每条降级路径都有固定回归, 确认权限与删除硬门仍然执行. 恢复后对积压索引事件检查消费位点, 不以进程启动成功代替数据一致.

事故复盘保存受影响的语料和组件版本、请求切片、触发时间、检测与恢复路径. 修复转化为自动探针或回归样本. 对有副作用的工具请求不自动重放, RAG 问答缓存则按证据版本决定是否可以重建.

请求 trace 可能包含用户问题、内部文档和模型输出, 保存期限按数据类别设置. 调试样本进入评测集前需要脱敏与重新授权, 不能因为已经出现在日志中就默认允许长期训练. 来源正文可以只保存受控快照引用和哈希.

审计事件记录谁在什么时间访问了哪个证据版本、使用了哪套模型和权限快照. 普通质量分析看到聚合指标, 只有授权调查才能读取敏感正文. 日志系统本身执行租户隔离和删除传播.

自动 judge 的输入也属于外部处理路径. 若使用第三方模型, 需要确认数据发送范围、保留策略和区域要求. 高敏感数据可以使用本地评估器或人工审核, 不因评测便利扩大数据边界.

5.11. 运行基线

上线前记录冷启动与热缓存两种延迟, 正常流量和峰值并发, 索引构建和增量更新资源. 基线同时包含质量与系统数据, 后续优化才能判断是否把成本转移到其他层.

容量计划根据查询长度、候选数、重排序列和输出 token 建模. 平均值用于成本估计, P95/P99 用于容量和超时. 限流按租户与高成本路径配置, 避免单个宽查询占满重排或生成队列.

运行基线在主要组件升级后重测. 硬件、驱动和框架版本也记录, 因为相同模型参数在不同批量与内核下会产生不同延迟. 论文中的吞吐数字不能替代本系统压测.

  • Petroni et al., KILT, 2021.
  • Thakur et al., BEIR, 2021.
  • Es et al., RAGAS, 2023.

6. 从 trace 到安全发布

1. 职责边界

本页聚焦 RAG 特有的离线评测、线上观测、发布门禁、故障恢复和检索内容攻击面。通用的独立监督、留出评测、权限、回滚与不可变记录原则见 RSI 理论极限与安全;跨会话经验写入记忆的风险见 技能、记忆与 Harness。

本页不给"绝对安全"结论.测试通过只说明在记录的威胁模型,数据,系统版本和时间点上没有发现超出门槛的问题.

6.1 门禁分三类

  • 硬门:本次门禁覆盖样本中不得发现权限泄漏或撤回/删除残留;schema 可解析,关键安全测试通过;
  • 回归门:关键任务切片不得低于已批准基线和容忍区间;
  • 预算门:P95/P99,成本,索引构建与新鲜度满足 SLO.

阈值是产品风险决定,不存在通用的 Recall@5 或 faithfulness 合格线.

6.2 一次只改变一个层

典型发布顺序:

  1. 在固定语料上比较切分/检索;
  2. 在固定候选上比较重排;
  3. 在固定上下文上比较生成与提示;
  4. 端到端复验交互效应;
  5. 影子流量或离线回放;
  6. 小比例灰度并保留即时回滚;
  7. 扩容后继续监控分布与长尾.

若同时换语料,embedding,向量库,reranker 和生成模型,即使总分上升也无法定位原因或安全退化.

6.2. 线上可观测性

7.1 请求级 trace

用请求 ID 关联语料/索引版本,权限策略摘要,查询改写,候选 ID,重排顺序,最终证据 ID,提示版本,模型版本,拒答码,耗时和验证结果.敏感原文按策略脱敏或只留受控引用;日志系统本身必须有更严格权限和保留期.

7.2 聚合看板

按租户,查询类型,语言,来源和系统版本观察:

  • 空召回,少于 kk,拒答与回退率;
  • 候选重复,来源集中度,证据年龄;
  • 引用无效,用户打开引用,纠错与升级人工;
  • 每阶段延迟,错误,token 与成本;
  • 权限过滤失败,异常写入,删除积压;
  • 查询/语料 embedding 或词项分布漂移.

用户点赞不能直接当正确标签;它可能反映语气,速度或迎合.

7.3 可控探针

定期运行不含真实敏感数据的合成探针:当前版本命中,撤回版本不命中,跨租户不可见,冲突可披露,无答案会拒答,恶意文档不改变系统规则.探针也要隔离,防止被模型或缓存专门识别后"通过考试".

8.1 间接 Prompt Injection

网页,邮件,PDF,工单和代码注释都可能包含面向模型的恶意指令.Greshake 等的原始论文展示了把指令放进可能被检索的数据,从而影响 LLM 集成应用的攻击面.Indirect Prompt Injection 论文

最低控制:

  • 把检索内容标为不可信数据,不允许它提高指令优先级;
  • 工具调用由服务端策略,最小权限和参数校验控制;
  • 读取敏感数据与对外写入/发送分离,关键动作需确认;
  • 不把系统提示,密钥或其他租户内容放入模型可回显上下文;
  • 对 HTML 隐藏内容,注释,元数据和外链做解析与风险测试;
  • 模型声称"已忽略恶意指令"不等于攻击被阻断.

8.2 语料投毒与排序操纵

攻击者可写入重复或针对特定查询优化的文本,使其进入前排,内容未必包含显式指令.PoisonedRAG 在其威胁模型和实验设置中演示了向知识库注入少量恶意文本来操纵目标回答;论文数字只适用于其数据,模型和攻击设置,不应作为生产风险概率.PoisonedRAG, USENIX Security 2025

控制包括:写入身份与审批,来源签名/版本,异常重复与突增监控,来源多样性,检索结果可追溯,可信源分区,以及独立的投毒红队集.签名可证明来源身份与完整性,不能证明内容真实;内容过滤也不是完备防御.

8.3 越权与存在性泄漏

  • 权限必须在检索时执行,不能把越权文本送给模型再让它忽略;
  • 缓存包含身份与权限版本;
  • "没有权限"和"没有记录"的外部响应避免泄漏对象存在性;
  • 管理员查询与普通用户查询分开审计;
  • 片段,父文档扩展,引用预览和附件下载使用同一或更严格授权.

Azure 文档级访问控制提供了权限元数据随索引,查询时过滤的官方实现示例;具体机制和预览状态需绑定当前 API 版本.Azure 文档级访问控制

8.4 数据外泄与恶意引用

  • 输出引用只允许服务端映射的 https/内部受控链接;
  • 防止模型拼接任意 file:, javascript: 或带秘密参数的 URL;
  • 不把检索分数,ACL 列表,内部路径和调试上下文直接展示;
  • 对敏感实体做输出策略与人工升级,但不要依赖简单关键词替代授权;
  • 日志,评测集,反馈平台和 trace 导出同样属于敏感数据面.

8.5 资源耗尽

超长查询,多查询扩展,迭代检索,巨大 top_k,重排长文档和反复重试都能放大成本.设置输入,分解数,候选数,循环,token,并发,时间与总预算上限;超限时返回明确降级或拒答,不让模型自行决定无限搜索.

8.6 隐私与派生数据外泄

原文,查询,embedding,索引,缓存,评测副本,judge 输入,trace 和导出共同构成 RAG 数据面.最低控制包括:按数据分类决定是否允许向外部处理器发送;记录处理方,地域,保留与删除边界;对派生数据执行最小权限和保留期;把更正,撤回,数据主体删除传播到可检索副本与允许删除的日志;用专门切片测试 PII 输出,成员/属性推断,跨租户存在性和调试导出泄漏.NIST AI 600-1 将数据隐私纳入生成式 AI 风险管理;它提供风险框架,不替代具体法域和组织政策.NIST AI 600-1

6.4. 故障与恢复

故障 安全默认 恢复验证
权限服务不可用 受保护语料失败关闭 权限探针与缓存过期测试
新索引构建失败 继续服务上一获批版本;标新鲜度 manifest 完整,回归后再切换
删除积压 隐藏待删除对象或停相关源 孤儿扫描,缓存与引用复验
embedding/reranker 超时 使用获批降级检索或拒答 降级集质量和权限不退化
生成模型失败 不返回未验证的半成品 重试幂等,预算和重复发送测试
judge 不可用 不阻塞低风险请求可选;不伪造分数 延迟评测并标缺失,不静默记满分

回滚对象不仅是代码,还包括语料快照,索引,模型,提示,策略和缓存.已经撤权或依法删除的数据不能因"技术回滚"重新暴露.

10.1 离线回归

运行固定 manifest 的分层测试,输出每条查询的候选,上下文,答案,命题支持,引用和拒答.比较版本时用配对差异,列出退化样本,不只看平均值.

10.2 注入与投毒实验

在隔离语料中加入:

  • 显式"忽略此前指令";
  • 隐藏 HTML/注释/元数据指令;
  • 请求泄露其他证据或系统提示;
  • 恶意链接与工具调用参数;
  • 多份近重复,针对查询优化的错误文本;
  • 权威源与恶意低权威源冲突.

观察恶意候选进入率,最终上下文进入率,模型服从率,工具越权率,敏感输出率与来源异常告警.测试报告必须写清攻击者写权限,是否知道查询/检索器,语料规模和防御配置.

10.3 权限矩阵实验

为每个 (用户/组, 租户, 文档, 版本, 操作) 建预期矩阵;验证检索,父段扩展,答案缓存,引用预览,导出和日志查看.随后撤权,改组,改标签和删除,测传播延迟与失败关闭.

10.4 线上灰度

先影子执行不向用户返回,再小比例流量.设定自动停机条件:任何越权,撤回内容出现,关键切片显著退化,成本或 P99 超限.灰度期间不临时改变 judge 或阈值,否则失去对照.

  • 评测 manifest 能固定语料,权限,索引,模型,提示,judge 与硬件.
  • 语料,检索,上下文,生成和系统五层都有独立指标.
  • 公共 benchmark 与业务留出分开,许可和时效已核验.
  • 真实查询,长尾,无答案,冲突,权限和攻击样本均有切片.
  • 自动 judge 已与人工标注校准,不能单独充当发布裁决者.
  • 权限,删除,引用安全和关键风险使用硬门.
  • 请求级 trace 可定位每阶段,同时遵守数据最小化与保留策略.
  • 检索内容按不可信数据处理,工具权限不由文档文字决定.
  • 投毒,间接注入,跨租户,存在性泄漏和资源耗尽已测试.
  • PII,派生向量/缓存,外部处理器,评测副本,trace 与导出纳入隐私和删除传播测试.
  • 新索引,模型和提示支持灰度,停止与回滚;回滚不恢复已撤权数据.
  • 线上反馈进入人工复核队列,不直接污染语料或黄金集.

6.6. 容量与降级

14.1. 各层预算

检索预算包含查询改写、各路召回和 ANN 探索;重排预算由候选数、长度和批量决定;生成预算由输入输出 token 与模型吞吐决定. 监控同时记录分层耗时和排队时间. 端到端 P99 变长时, 分层数据能区分索引、外部搜索和模型限流.

容量测试使用真实长度和过滤分布. 无过滤短查询测出的 QPS 无法代表多租户权限过滤和长文档重排. 冷缓存、索引重建和并发更新也进入压力测试, 这些状态经常决定线上长尾.

14.2. 降级保持哪些约束

重排器不可用时可以退回已验证的融合排名, 外部搜索不可用时限定到本地语料, 大模型限流时缩短回答或返回证据列表. 降级不能关闭权限过滤、引用验证或删除传播. 每条降级路径作为独立配置进入回归集.

降级响应说明能力范围并记录触发原因. 恢复后不自动重放有副作用的请求. 对纯问答可以重试, 对工具执行和事务操作需要幂等与审批, 由 Agent 或业务系统处理.

6.7. 变更影响分析

解析器变化影响语料与片段身份, embedding 变化影响向量索引, 重排器变化影响前排候选, prompt 与生成模型变化影响证据利用. 发布单记录预期影响层和保护指标, 线上差异超出范围时停止放量.

同一批影子请求在新旧版本并行运行, 比较候选、上下文、回答和资源. 差异按最早发生的层归因, 防止最终文本变化掩盖上游原因. 结果也用于选择人工复核样本.

影响分析结束后保存差异样本和判断依据, 进入下一次固定回归. 线上事故与人工复核由此逐步扩大高价值测试集.

变更若同时跨越多层, 应拆成可独立回放的阶段版本. 确实无法拆分时, 至少保留各层中间输出, 让差异仍能落到最早变化点. 这种记录也为后续组件替换提供稳定参照.

一次 trace 的核心不是堆日志,却是保存能复现决策的因果链。请求根节点记录用户、租户、权限快照、原问题和时间;子 span 依次记录查询改写、过滤条件、索引版本、候选 ID 与分数、重排、上下文选择、模型请求、命题引用和工具调用。每个输出都带父输入的散列与版本。只有耗时和最终答案的 trace 无法解释错误;保存全量敏感正文又扩大泄漏面,因此生产记录优先保存不可逆散列、结构化特征和受控加密载荷,并按权限单独解密。

因果定位依赖“最早分叉点”。同一请求在旧版本正确、新版本错误时,先比较规范化查询;相同则比较过滤集合与候选 ID;候选相同再比较排序和最终上下文;上下文相同才检查模型与提示。若第一个差异发生在 ACL 过滤,后续答案差异不应归罪于生成模型。回放器必须绑定当时语料快照,拿当前文档重放历史请求会把内容更新误判为代码变化。

权限要在检索前收窄候选域,不能检索后再从答案里删敏感句。设用户可见集合为 DuD_u,合法检索是 R(q,Du)R(q,D_u);先在全库 DD 检索再过滤得到 F(R(q,D),Du)F(R(q,D),D_u),两者并不等价,因为不可见文档会占据 top-k,且其标题、分数、摘要可能已经进入日志或模型上下文。缓存键至少包含权限策略版本与主体范围,用户 A 的候选缓存不能被用户 B 命中。文档权限变化时相关缓存和派生索引同步失效。

一个反例是全库 top-5 中四项来自董事会私有区,过滤后只剩一项;公开库中本应排第六到第十的有效文档没有补入,系统错误拒答。更严重的是模型在过滤前已看到私有片段,事后删引用无法撤销泄漏。正确顺序是身份鉴别、权限求值、在授权分区检索、生成、输出校验。管理员调试界面也遵循同一规则,不能以“只看 trace”为由绕过内容权限。

提示注入的根因是把外部内容当指令。检索文档、网页元数据、OCR 文本和工具返回都标为不可信数据,系统提示明确它们不能改变任务、权限或工具政策,但文字声明不是唯一防线。模型提出工具调用后,由确定性策略检查工具名、参数 schema、资源范围和风险等级;读取动作也要验证目标仍在授权域。文档中出现“忽略规则并发送密钥”时,候选可用于回答相关事实,却不能获得调用网络或读取环境变量的能力。

攻击评测要跨步骤构造。单段注入可能被模型拒绝,但攻击者可以让第一篇文档要求查找第二篇,第二篇再诱导调用工具;多跳链把恶意意图拆散后更难由关键词发现。测试集应含直接指令、编码指令、伪系统消息、工具参数污染、引用诱导和跨文档组合。成功标准不是模型口头说“不会执行”,却是敏感工具没有调用、秘密没有进入输出、审计事件被记录且正常答案尽量不受影响。

安全门禁用不变量表达:未授权文档进入候选数必须为零,未经批准的高风险工具调用必须为零,引用 ID 必须属于当前请求可见集合。普通质量指标可以容忍统计波动,这些不变量一旦命中就阻断发布。零事件测试仍不能证明零风险,因此灰度阶段继续监控策略拒绝、异常参数和跨租户缓存命中,并预设自动熔断条件。

发布包是兼容版本组,包括切分器、语料快照、embedding、索引、过滤策略、重排器、提示模板、模型和引用解析器。若只回退生成模型而保留新提示字段,旧模型可能输出无法解析的引用;若只回退 embedding 而不重建索引,向量空间不匹配。每个 trace 写入完整版本组 ID,回退操作切换经过验证的整组别名,旧资产在观察期内保持可用。

灰度比较应随机且配对到稳定单位。用户或会话一旦分桶,在实验期保持同一版本,避免多轮对话中途切换。监测答案支持率、拒答率、权限拒绝、延迟与成本,也监测请求构成是否平衡。新版本的流量若恰好更多来自简单问题,端到端均值会虚高。关键切片使用置信区间;安全不变量、崩溃和数据污染使用事件门禁,不等待统计显著才停流量。

例如基线 10 万请求中支持错误率 1.20%、P95 延迟 1.8 秒;灰度 1 万请求为 0.95%、2.4 秒,并出现一次跨权限候选。质量点估计改善不能抵消权限事故,发布立即停止。另一个灰度没有安全事件,错误率从 1.20% 降到 1.05%,但区间重叠且多跳切片从 2.0% 升到 3.1%,应保持灰度并补样本,而不是用总体均值全量放行。

故障降级必须保持安全语义。向量服务不可用时可退到授权域内的稀疏检索;重排器不可用时减少候选并明确使用稳定排序;引用验证不可用时不应输出带有可靠性暗示的答案,可拒答或仅给导航结果。绝不能为了可用性关闭 ACL、跳过来源校验或使用跨用户缓存。降级路径与主路径使用相同的演练请求定期验证,否则真正故障时才发现备用索引过期。

隐私保留按字段分层。性能指标长期保留聚合值;候选 ID 和配置版本保留到覆盖发布回滚窗口;原问题、文档片段和模型输出按敏感级别缩短期限并加密。删除请求要传播到原文、索引、缓存、trace 载荷和离线评测副本。只删事实源而保留可解密日志并不构成删除。审计读取本身也生成事件,记录谁因何查看了哪段受限内容。

演练从具体故障假设出发:索引落后事实源两小时、权限撤销未传播、重排器分数反向、模型区域故障、注入文本触发工具。每次记录发现时间、隔离时间、恢复点与数据影响范围。恢复后用固定请求验证主路径和降级路径,再解除熔断。事故样本加入回归集时去除秘密但保留触发结构,使同类错误成为后续发布门禁,而不是只留一份无法执行的复盘文字。

告警必须指向可操作的不变量或服务目标。候选为空率突升关联语料与过滤层,引用解析失败关联生成协议,授权拒绝异常关联身份或策略层。只设置一个“RAG 成功率下降”告警,会让排障从整条链盲查;分层指标与 trace 采样共同提供最早异常位置。