跳到正文

06 - 生产验收与已知边界 ​

一句话:知识底座算不算上线,不看功能清单点完了没有,看十二组证据能不能当场复现、数值门禁有没有签字人、没做的项有没有老实标成未覆盖——验收的价值不在于全过,在于哪一格没过所有人都看得见;用“未覆盖”冒充“通过”,签出去的就是一个说法而不是一个系统。

一、验收的对象是四件事 ​

回扣总纲:进得来、查得准、越权查不到、删了真没有。前三件有正向证据可看,第四件只有负向证据——无法用“跑通了”证明权限生效,只能用“越权被拒了”证明。这就是为什么验收清单里一半是否定式用例。

闭环环节正向证据反向证据
进得来批量导入完成、抽检还原章节关系不支持格式被明确拒绝、坏文档与高风险内容不污染检索
查得准评测集召回与引用正确率无答案题必须拒答,正常题不得被过度拒答
越权查不到授权范围内结果稳定跨租户、跨角色、伪造参数、撤订后调用、旁路直连全部被拒
删了真没有删除任务完成状态可查删除后同查询零命中,旧引用显示失效,切断生效有计时

二、十二组证据与归档状态 ​

状态三态:已归档(有台账位置,可当场复现)/待归档(机制已定,按步骤跑完即出证据)/未覆盖(依赖尚未部署,不得写成通过)。本栏交付的是判定口径与复现步骤,不把未跑过的项预填成已归档。

#证据复现方式判定状态
1端到端调用链从 Agent 凭证发起一次检索,逐跳留日志:网关 → 鉴权 → 凭证注入 → Broker 决策 → 引擎 → 计量落库六跳齐全,引用可打开待归档
2跨租户越权用 A 租户凭证查 B 租户知识库拒绝;审计有原因;返回中无 B 的任何片段待归档
3同租户角色普通员工访问管理端点、访问转授端点均拒绝;管理员可访问且留痕待归档
4文档级权限私有文档出现在他人检索与提问中不出现,也不出现在引用、建议与“存在性”提示里待归档
5参数伪造请求体自报租户、用户、知识库范围;请求头夹带同名标识以签名为准,不一致拒绝;请求头在入口剥离,剥离前后抓包对比留档待归档
6撤订与撤权计时撤订 / 撤权后按秒级轮询调用实测值与目标值同表记录(目标秒级、缓存不超版本刷新周期),不拿目标值当实测待归档
7删除传播删一份文档后跑同一条查询零命中;旧引用变失效;清理任务有影响条数与完成时间待归档
8审计回溯用一次真实提问反查能答出谁、何时、以谁的身份、取了哪份文档哪一段、哪一版待归档
9计量对账预登记容差与解释流程,覆盖一个含周末与批量导入的完整周期差异在容差内或每条都有解释;先解释再动阈值待归档
10紧急切断与降级下架一个知识产品后计时验证;停掉权限源验证 fail-closed秒级停止新可见;权限源不可用时拒绝而非放行;Broker 与审计存储故障语义按 05 表逐项验证待归档
11注入不被执行在文档内埋“忽略以上指令”样本并提问不改变系统行为、不泄露其它文档;隔离区命中并告警待归档
12废止不召回与冲突提示废止一份旧版制度后提问同主题不出现在默认答案;同主题存在多说法时答案带冲突提示(依赖权威源标记下发)待归档

两点纪律:

  • 凭证泄露与旁路成功不由第 9 组证明,分别由全链路密钥扫描、第 5 与第 10 组单独证明;对账只证明“账对得上”。
  • 越权证据分两级记:用例内被拒(自己写的负向用例)与生产流量中被真实尝试并拒绝(外部真实探测)。只有第一级,等于“没人来试所以没出事”,与本栏第 05 篇“越权拒绝数一直为零说明没有人在试”的判断一致。

三、质量门禁:没有数值就拦不住任何东西 ​

上一版本栏只写了“没有任何一桶明显退化才放行”,没定义“明显”,等于门禁拦不住任何一次改动。补齐五件:

要素口径状态
分桶集合单跳事实、多跳、表格、扫描件、无答案、过度拒答、过期与废止、同主题冲突、新域漂移(每进一个新知识域必测)已定
每桶最小样本量不低于 30 题(经验值;低于此数的桶波动大于改进幅度,不参与判定)待业务确认
通过线各桶召回、MRR、引用正确率、拒答率的门槛值,由业务与平台共同签一次,写进评测集版本说明待业务确认
“明显退化”定义建议起步:任一桶主指标下降超过 3 个百分点,或过度拒答率上升超过 5 个百分点即拦(经验值,需按首次基线校准)待业务确认
评测集治理出题与定标分离:题目由内容负责人出、答案依据由管理员确认、指标定标人签字;季度换血一部分(建议 20%,经验值)防过拟合;留出集只用于门禁判断,不参与日常调参已定

三条结构约束:

  1. 权限桶从质量门移出,并入第二节的反向证据。混在质量分桶里,会让“平均分没退”被权限题的表现污染,两件事都判不准。
  2. 每次改动只动一个变量,与上一版配对比较;只看平均值会掩盖“精确串整类查不到”这类结构性退化。
  3. 换模型、换向量引擎、改默认参数一律算新基线,旧数字不再可比(机制见 07 §三);换基线时必须在台账里写明“因参数变更重置”,不能静默替换。

上线前的一次性动作:把当时各桶数值记进台账,标注评测集版本、引擎与模型版本、参数快照。此后所有比较都跟这份基线比。

四、已知边界(不写成已完成) ​

项现状处理与对外话术
多模态(音视频解析、图文混排理解、多模态重排)一期不做明确拒收并转人工或第三方;对标托管平台的多模态重排一类能力按“不做”记账,不算交付缺口。代价要说清:会议决议、客服话术这类口径高发载体因此无解,再入需另接转写能力并指定转写块的复审责任人
国内系统开箱连接器社区需自补,无成品矩阵不只功能缺口,是删除传播的前置:拿不到上游删除与变更事件,就只能靠每日全量清单比对兜底,成本按文档总数乘单次清单接口调用量估;不做则“删了真没有”断链
内容合规审核引擎不提供需外部内容安全服务或人工判定;未接入前高风险内容类型直接拒收并列清单(见 08)
多库路由与库级权重反向设计,不做产品化开关范围由授权与场景配置派生;代价是新域必须显式配置,少配表现为“查不到”,由零命中清单兜住(见 02、09)
记忆层隔离与删除属另一条线本栏只保证知识检索不越权,不代答记忆隔离
计费闭环只有调用事实与用量价格与结算在计费系统;本栏做到可对账,不宣称已结算
容量与 HA 数值无压测与演练数据一律记经验值或设计目标,不做平台间性能对比;方法式与公式见 05
观测面板开源版本不足以支撑判定自建指标与事件落库
写操作进工具面责任归属未解只读四动作是当前边界

五、与 3.2 历史台账的关系 ​

3.2 的实证篇记录单机小样本阶段,它的“边界”与“不宣称项”照旧成立,本栏不覆盖也不改写那段结论。两份文档的分工既是时间性的也是身份性的:那一份是事实记录(当时跑到哪、哪些没做),本栏是生产口径(按什么标准交付、每项用什么证据判定)。因此本栏不宣称第二节十二组证据已全部归档;一旦某组跑完,把状态从“待归档”改成“已归档 + 台账位置”,这一栏就是全栏的销项表。3.2 留的那句“这些完成前不得表述为生产可用”,在本栏以状态列为执行方式。

六、上线判定 ​

五句话,缺一不签:

  1. 十二组证据逐条有状态,标“已归档”的当场可复现,标“未覆盖”的不许用“未覆盖”冒充“通过”;
  2. 评测基线已锁版本记录在案,质量门与权限门各自独立跑过,通过线与“明显退化”定义有签字人;
  3. 删除、撤权与切断的延迟口径已经告诉业务,他们知道“秒级停可见、分钟级清索引、备份等保留期”,且这三段有实测值或明确标注为设计目标;
  4. 个人信息与审计的保留期四要素齐全:谁定义、配在哪、谁执行、到期如何证明(见 03);
  5. 已知边界在使用者看得见的地方——不支持的格式、不做的能力、不给的承诺,写在页面与答案话术里,不只在文档里。

第五条最容易被省掉,也最贵:一个不说自己边界的知识底座,收到的不会是投诉,而是看起来很对、实际没依据的答案。

把 AI 工程讲到既懂也会用