《互联网产品的 AI 架构·模型接入与能力边界》13.1 能力清单与契约矩阵
「回声」的五个 AI 能力散落在五份文档里,评审时才发现摘要没有降级路径、审核却声明了模板兜底。本节把能力契约收敛成一张六面矩阵:输入、输出、质量、延迟、成本与失败姿态逐项填值,区分契约字段与租户配置,按风险分数排序,并给出可运行的 TypeScript 矩阵视图与缺失面门禁。
tag
「回声」的五个 AI 能力散落在五份文档里,评审时才发现摘要没有降级路径、审核却声明了模板兜底。本节把能力契约收敛成一张六面矩阵:输入、输出、质量、延迟、成本与失败姿态逐项填值,区分契约字段与租户配置,按风险分数排序,并给出可运行的 TypeScript 矩阵视图与缺失面门禁。
从「回声」一次采纳率 68% 的汇报被用户访谈推翻出发,说明线上质量信号为什么要以曝光为分母、点击率与采纳率差在哪里、重试与转人工如何补足,以及线上指标与离线评测对应的三个前提,附可运行的 TypeScript 采集实现、版本化指标定义与真实测试输出。
从「回声」一次账单比预估高 30% 却无法归因的事故出发,说明用量事件如何设计、两层幂等键如何挡住重复投递、日切为什么是业务策略,以及日结对账如何逐行比较 token 与金额并处理差异,附可运行的 TypeScript 实现、配额窗口与真实测试输出。
从「回声」一次查不到模型的线上投诉出发,说明一次 AI 请求必须记录哪些字段、耗时如何拆段、用量与错误类别如何统一,以及内容脱敏与分层采样如何让观测既够用又不越界;文中给出可逐条断言的 TypeScript 字段契约、脱敏规则、采样分桶与真实测试输出,帮助团队把一次请求追到模型、租户与错误类别。
一次输出拦截没有申诉入口,让「回声」的内容安全接入暴露出规则与流程的双重缺口。本篇给出规则加分类器的双层审查、拦截与降级、只存哈希的审计记录与带时限的申诉状态机,用可运行的 TypeScript 测试固定决策顺序、降级行为与已知边界,并说明申诉推翻后为什么不能自动放行原文。
用户在评论里写下「忽略前面的指令」,检索文档里又藏着角色伪造。「回声」的这次事故说明,提示注入不是句子黑名单问题,而是信任边界问题。本篇把系统指令、用户内容、检索内容与工具输出分成四层,给出可断言的信号评分、隔离策略和工具参数二次校验,并说明为什么正则只能是信号而不能是唯一防线。
从「回声」把合作方租户私信送进主站模型的事故出发,拆解密钥分级与轮换、租户隔离、出域字段白名单和区域路由四道边界,给出可运行的 TypeScript 实现与 11 条测试,说明每次放行为什么都要留下可追溯的决策记录,再复盘一次跨租户调用为什么会同时穿过四道默认值。
「回声」的一次故障开关开了三周,没人敢关,所有用户都在看模板摘要。本节用确定性故障注入、带过期时间的开关和恢复断言,把降级策略变成可以反复演练的代码,并复盘一次只检查动作、忽略用户文案的演练失败,说明恢复结果为什么必须写进演练报告,而不是留成一句口头承诺。
「回声」的主模型超时后自动切到小模型,摘要却变成了复读用户问题。本节把降级看成一条有预算、有质量下限、有风暴保护的链:小模型、规则、模板、排队各自分工,选择顺序由产品写死,并讨论预算、代价与降级风暴的规避,最后用可运行的 TypeScript 实现选链与逐步执行。
「回声」的智能回复超时后,前端自动重试三次,把一次故障拖成半小时;同一时刻审核调用也超时,发布按钮却仍然可点。本节把 AI 能力按可缺、可弱、必须阻塞分级,明确每种信号下的动作与用户文案,并用可运行的 TypeScript 把策略校验和批量编排固定下来。
「回声」的缓存命中率升到 92%,端到端延迟却变差了。本节把命中率拆成请求、token 与成本三个口径,说明为什么必须按能力与租户分层、精确命中与语义命中要分开、缓存污染与语义误命中要单独计数,并给出可运行的 TypeScript 分层指标实现。
提示改版后旧缓存继续返回旧口径,用户注销后摘要仍能被相似问题命中。本节把失效拆成提示换版、模型切换、权限调整与用户删除四类传播范围,说明作用域纪元如何挡住迟到的旧写回,并给出可运行的 TypeScript 失效器、删除权传播与完整隔离测试。
「回声」的搜索摘要缓存只按查询文本建键,两个租户问同一句退款政策时互相串了结果。本节把精确缓存、语义缓存与结果复用拆成三层,讲清作用域键的五个要素、字符二元组相似度与 0.72 阈值、订单号与动作词两道护栏,并给出可运行的 TypeScript 实现与测试。
「回声」为智能回复选模型,三个月里争论三次、结论三次,却没人说得清上一次为什么那样定。本节把质量、成本与延迟的取舍写成 ADR:先用护栏排除不可行方案,再按显式优先级选择,用六个可计算条件触发复核,并附可测试的 TypeScript 实现。
「回声」商家版租户被自己的预留限流三天:拦截分支没有结算,也未释放额度,真实花费不到配额三分之一。本节用整数微元、租户/能力/模型三维计量、预留与结算、失败也记账和 TTL 回收,搭一个可测试的成本账本,并复盘这次泄漏从发生到被发现的每一步。
「回声」智能回复承诺 2 秒,团队却把 2000 毫秒直接当成提供方超时,结果网络、排队与后处理叠加后稳定超时。本节把端到端预算拆成网络、排队、首 token、生成与后处理五段,给出整数毫秒分配、超时传播与审计代码,用 Node 测试逐毫秒验证,并复盘一次余量被当成预算的事故。
从「回声」客服辅助一次修复仍然失败的工单 JSON 出发,说明解析失败为什么要先分类再决定是否修复,修复提示如何把 Schema、失败明细和原始输出隔离,修复预算为什么同时限制次数、时间盒与提示长度,并给出失败后转人工队列或模板降级的可测试实现。
从「回声」模型试图自带 tenantId 查询别家订单、以及直接提议退款两个场景出发,拆开工具调用中“谁提议、谁授权、谁执行”三段职责,给出工具白名单、角色、租户注入、参数校验、副作用分级与单轮次数上限的可测试实现,并说明确认为什么必须绑定到具体调用 id。
从「回声」客服辅助返回的工单建议 JSON 出发,说明为什么只取 JSON Schema 的一个可审查子集,如何把必填、枚举、范围与多余字段变成可定位的问题码,并给出一个零依赖校验器与一次真实的失败分类,让解析失败从“模型不稳定”变成可测量、可回归的工程输入。
「回声」一次直接改线上提示、没有版本记录,效果变差后无法回滚,只能凭记忆重写。本节把提示发布做成不可变版本、变更记录、确定性灰度与回滚,并要求提示与模型快照精确绑定,配可运行的 TypeScript 注册表与完整测试,并把发布审计写进事件日志。