2026-07-19 第四阶段 RAG、评测、安全与生产证据链记录

本阶段把第三阶段队列中的“RAG、评测、安全与生产化纵向复核”落实为一条可执行、可故障注入、可审计的证据链。主 Agent 统一公共/内部数据边界、术语、版本、交叉链接和最终验证;专项 Agent 分别进行 RAG、LLMOps、Reranking、来源链接、文档一致性与代码绕过审计,修改范围保持分离,最后由主 Agent 复核并合并语义。

结论边界

本阶段完成的是离线教学项目和高优先级主线页面的深审,不表示全部历史 RAG、评测、安全或生产资料都已逐页验证。确定性 fixture 证明的是本地契约能够失败关闭,不证明真实向量检索、真实 LLM、生产身份系统、在线遥测、签名制品或物理删除已经实现。

1. RAG:从“有引用”升级为逐层可复算证据

  • 重构 离线可引用问答项目:公共响应只包含稳定状态、由已验证 claims 渲染的答案、授权后引用和教学 trace_id;候选、过滤原因、阶段分数、内部版本与故障细节只进入 privileged_audit。
  • inspect --operator-view 只防止教学中误公开内部 envelope,不提供身份认证;公共访问使用显式 public 组,不再依赖空组或 magic ACL bypass。
  • Fixture 升级为 schema 2.0,包含 10 篇版本化文档、8 类 query、授权版本、风险切片、critical case、私有 canary 和含伪指令的不可信文档。有效期统一为半开区间 [effective_from, effective_to)。
  • 运行时 query 通过白名单投影,与 expected_*、forbidden IDs 和私有 canary 等离线 oracle 分离;runtime validator 不读取 oracle 决定答案。
  • 检索、重排、上下文选择、claims、citations、degraded/fallback、状态、公共响应和教学 trace_id 均从可信输入与阶段结果重新计算。每个 claim 的每条 citation 都必须逐字支持该 claim,重复引用和“一个有效引用掩盖另一个无效引用”会被拒绝。
  • 评测输出固定为 rag-evaluation-report-v1,分别报告 case、slice、critical、status accuracy、retrieval/context/citation fact recall 和 non-disclosure 违规;fixture 与 evidence 使用完整 SHA-256。按 fact 计数和严格审计语义由 offline-rag-harness-v3 绑定,正常运行 PASS,故障注入 BLOCK。
  • 主线补充原创 Mermaid 分层证据图及文字替代,明确 ingestion、retrieval、context、generation、system 四层不能被单一“正确率”折叠。

2. LLMOps:把离线分数、发布决策与在线窗口绑定

  • 离线发布门项目 的 evaluation artifact 现在绑定 subject release、suite、dataset、rubric、grader、harness 版本及完整 SHA-256;合同不一致返回 INCOMPARABLE,不再把不可比结果误判为性能退化或提升。
  • JSON 输入拒绝重复键;比例、下降率、安全上限、延迟和成本等策略字段有显式类型与数值边界,避免极端阈值静默放行。
  • 在线 observation 使用严格 UTC RFC 3339 窗口、assignment/population revision、候选/对照双臂、覆盖率、样本数、标签年龄、质量、安全、延迟与成本,并绑定候选发布门指纹和基线 control release。候选另记录 gate_decided_at 与 promoted_at,窗口必须满足 promoted_at <= window_start < window_end <= decision_as_of。
  • 在线判断比较同窗口并发对照,不再拿历史离线 baseline 伪装成线上 control。audit --release-id 必须存在 observation;批量审计要求每个已 promoted candidate 都有观测,离线已阻断候选不被错误要求在线数据。
  • 发布 ID 全局唯一,浮动引用(latest、HEAD、branch/ref/remote 形式)失败关闭;时间只接受 Z 或 +00:00,包括 -00:00、无时区和非 UTC offset 均拒绝。
  • 自动 FALLBACK 不再由 observation 裸布尔值触发;在线证据必须逐字段匹配 candidate gate 已绑定的 fallback release ID、manifest SHA-256 与 gate evidence SHA-256。证据缺失时只能进入人工复核,非空但不匹配时作为契约错误拒绝。当前仍未装载和验签外部 fallback artifact,课程明确把它列为 Layer B。
  • 绑定阶段无条件拒绝非空但不匹配的 fallback evidence;manifest 还拒绝候选把自己、已知循环或已知未通过/未发布的候选声明为自动降级目标。改变门禁合同后将策略升为 local-llmops-policy-v6、observation schema 升为 v3,并重新绑定所有 observation 的候选 fingerprint。短 decision fingerprint 只用于本地关联,不能替代签名、来源证明或审批记录。

3. Reranking 与运行监控:补齐隐藏输入和诚实边界

  • 可降级规则重排器 的 fixture 升为 schema 2,并增加 authorization_revision。规范化 fixture SHA-256 覆盖 query、tenant、groups、授权版本、as-of、候选正文与 ACL/状态/有效期/source revision/rank/score、settings、qrels 和 must-not-return;evidence SHA-256 另绑定 runtime overrides、故障、模型版本和最终决策。
  • Reranking 输出显式标记 visibility=protected_audit,文档说明该标签不是公共响应,也不是实际鉴权。权限和有效期继续先于评分,结束时间保持半开语义。
  • 离线监控审计项目 的 JSON loader 拒绝重复键,并修正 RED error rate 的课程公式。
  • 监控正文明确当前 Layer A 只验证本地阈值与事故分类,尚未绑定完整 SLO population、排除规则、合规窗口、数据源版本和变更审批;不能把离线测试写成生产 SLO 已成立。

4. 跨课程事实、来源与链接一致性

  • 纠正 MCP Roots 的安全含义:Roots 是客户端建议服务器关注哪些文件系统范围的协调机制,不是授权、ACL、沙箱或最小权限边界;MCP 客户端页及相邻路线页保持同一表述。
  • 冻结的 MCP 参考层只做窄范围事实修正,并要求后续逐页判定 curated / third-party 与许可,避免把整层译文误标成原创当前教程。
  • 知识库课程明确现有示例只有 flat allow-list,没有证明层级权限、显式 deny、ABAC 或权限来源传播;archived / tombstone 也不等于物理清除、保留期合规或旧快照不可复活。
  • RAG 的失败排查命令统一使用受保护的 inspect --operator-view,不再用公共 ask 暗示能读取内部 trace;未来供应商弃用日期保留为“核验时官方计划”,要求实施前重新确认。
  • 修复总路线中的不存在路径;专项链接审计对本阶段核心页面得到缺失 wikilink 0、歧义 wikilink 0、标题锚点错误 0。
  • 深审页面补齐 content_origin、content_status;只重新运行本地代码时使用 execution_verified: 2026-07-19,不机械刷新外部资料的 source_checked。

实际验证

检查结果证据边界
11 个纵向项目单元测试1,191/1,191 通过普通、python -O、warnings-as-errors 各 397 项;分别为文档解析 23、知识库 29、Chunking 29、Embedding 30、向量数据库 28、语义搜索 32、Reranking 29、RAG 68、评测 36、LLMOps 60、运行监控 33
8 个本阶段 Python 文件语法检查通过UTF-8 读取后使用内置 compile(),不生成 bytecode
专项红队复核通过逐项复测 citation、fact recall、trace/stage、公共 response、发布指纹、时间窗口、浮动 ref、重复 ID、批量审计、重复 JSON key,以及 fallback 错绑、自引用、阻断/未晋级目标和循环等绕过;最终无残余高/中严重度发现
CLI 证据复算通过RAG 正常 PASS/故障 BLOCK,Reranking 输出受保护 envelope;LLMOps v6 的 promote/healthy audit 为 0,cross-bind/no-window 为 2;Monitoring stable 为 0、incident 为 1
文档与本地链接复核通过核心页面测试计数、公共/审计边界、日期字段与术语一致;缺失/歧义 wikilink 均为 0
.website 单元测试33/33 通过发布策略、来源门禁、路线元数据、路径脱敏、资源白名单与仓库扫描
.website 完整构建通过880 篇源 Markdown;723 篇正文、157 个 stub、204 个资源;生成 883 篇 staged Markdown 与 2,400 个 HTML 页面
补充检查通过git diff --check 无格式错误;项目下跟踪的 __pycache__ / .pyc 为 0;三项外层本机/子模块状态未触碰

核心来源

本记录的 source_checked 表示本阶段记录与改动在 2026-07-19 汇总复核;各课程外部来源的实际核验日期仍以该页 frontmatter 或来源块为准,不因本地代码复跑而机械刷新。

后续队列

  1. 端到端 Layer B 摄取项目:把 source → canonical document → chunk/span → index → RAG citation 串成同一 provenance 链,并验证版本迁移、删除传播和旧快照不可复活。
  2. MCP Resources 与订阅安全:增加严格消息 validator、真实 AuthN/AuthZ、resource subscription 取消与权限撤销传播测试;Roots 继续只作协调提示。
  3. Tool Calling 结果 envelope:把不可信 tool result 的 schema、provenance、敏感字段、状态查询和 OUTCOME_UNKNOWN 对账接入同一证据模型。
  4. 权限与删除深水区:实现层级继承、显式 deny、ABAC/provenance、索引与缓存失效、保留策略和物理 purge 证据,而不是继续扩展 flat allow-list。
  5. 完整 SLO 合同:为监控 Layer B 绑定 population、排除规则、合规窗口、数据源/查询版本、变更审批和缺数策略。
  6. 真实制品与供应链:从“fixture 中写入摘要”推进到外部 artifact 装载、签名、attestation、审批主体和不可变存储验证。
  7. 路线元数据继续迁移:逐页迁移剩余 legacy 课程,并把 RAG、评测、安全、LLMOps 与监控的真实硬前置纳入 schema v2;不从展示顺序猜依赖。
  8. 真实组件与对抗评测:增加向量数据库、真实 reranker/LLM、prompt injection、数据投毒、延迟/成本与 provider 故障的小规模可控测试。
  9. 生产身份与可观测性:以真实 operator auth、随机 opaque trace ID、脱敏日志和受控审计存储替换教学 flag 与确定性 ID。
  10. 视觉抽查:在 Obsidian 与公开站点人工检查 Mermaid、Callout、长表格和跨课程导航;自动链接与构建通过不等于桌面端视觉已验证。

前序记录见 2026-07-19-第三阶段框架恢复与路线元数据记录;内容来源和许可继续遵循 内容质量与来源标记规范。