模型资料消费链路审计
审计日期:2026-10-14。 本轮检查模型资料从来源到使用者的链路。 读取 models.dev 不代表全部参数已经动态更新。 最终验证还必须覆盖配置和客户端消费。
已确认的遗漏
| 问题 | 原行为 | 修复与验证 |
|---|---|---|
| 推理等级 | 只有推理布尔值时,清空原生等级 | 缺少等级声明时保留精确原生等级;明确空列表和禁用仍生效 |
| 默认窗口来源 | 容量缺失时,忽略已知客户端窗口 | 单独记录运行窗口来源;未知容量不冒充已核验容量 |
| 断网后的资料消费 | 服务目录失败后,生成目录仍用旧能力 | 先用同一连接的已知目录应用新资料,再请求服务目录 |
| 订阅字段保留 | 规范化时丢弃原始能力字段 | 使用同一字段解析器和补全流程;账号目录仍保留各自授权路径 |
旧候选的隔离测试复现了推理等级丢失。 修复后的测试覆盖目录关闭和服务目录故障。 它对照实际生成文件,不靠重新打开模型页通过。 订阅字段保留另有 Rust 单测。 真实订阅与服务限制继续独立验收。
来源与生效边界
| 数据 | 来源或策略 | 本轮检查 |
|---|---|---|
| 型号存在性 | 当前服务或授权账号的目录 | 精确 ID、非对话筛选和已选型号保留 |
| 容量与普通能力 | 有效服务声明,再查 models.dev | 明确 false、缺字段、刷新、离线和来源保留 |
| Codex 默认窗口 | 服务限制与精确客户端资料 | 已知客户端窗口不被容量兜底覆盖 |
| 明确窗口选择 | 用户保存的配置 | 资料更新不撤销选择;默认项移除固定覆盖 |
| 推理等级 | 明确等级声明,再保留精确原生等级 | 区分未声明、空列表和禁用;默认等级必须有效 |
| 协议和地址 | 服务声明、连接配置和受限协议资料 | 实际路径与转换分别回归,不能由模型名称猜测 |
| 当前参考价格 | models.dev 的有效快照 | 新请求使用新价,旧请求保留冻结快照 |
| 实际服务费用 | 服务返回的费率和响应证据 | 不用参考价冒充成交价或订阅扣款 |
| Token 用量 | 本次上游响应 | 可证明的默认与推导分别保留,不编造未知值 |
| 额度和授权 | 对应账号的实际来源 | 不使用 models.dev 推断登录、套餐或剩余额度 |
明确的服务声明可以覆盖 models.dev。 用户明确配置也可以保留不同运行值。 这些情况应能说明来源,而不是悄悄冻结默认值。 资料写入成功不证明运行中的客户端已经重读。 实际客户端加载和生成必须分别验收。
保留的固定策略
固定值不一定是模型资料缺陷。 超时、请求大小和历史读取上限属于保护策略。 默认输出预算也不等于型号的输出上限。 缺少资料时的运行兜底仍需标明来源。
兼容控制已按来源和协议细分。 压缩阈值及有效窗口比例保留有效声明。 搜索和 verbosity 需服务声明及协议支持。 并行调用按实际请求参数转换。 详细规则见 Codex 兼容控制。
这些控制不属于 models.dev 的全部自动更新范围。 修改规则时,须验证实际客户端消费。 实际输出上限、音频、长上下文和计费仍需上游验证。 本轮不能证明整个项目没有其他隐藏问题。
回归要求
入口为 tools/native/model-metadata-consumption-test.mjs。 共享窗口断言位于 tools/shared-core/codex-client-contract-test.mjs。 新增入口已纳入默认门禁。 功能映射为 MO01、MO03 和 CL01。
开发者修改一个资料字段时,应按以下顺序检查。
- 改变来源字段,确认解析值和来源变化。
- 检查磁盘与进程缓存,确认重启后仍使用新值。
- 检查生成配置和目录,确认字段没有丢失。
- 在页面关闭时刷新,确认不依赖打开页面才生效。
- 验证服务目录失败和来源局部失败。
- 验证明确配置、空列表、false 和迟到响应。
- 用实际客户端消费配置,再核对请求与 Trace。
预期值不变化时,也必须检查保留的依据。 例如用户明确覆盖、服务限制或历史冻结快照。 不能只断言缓存里存在某个新值。 不能用新会话成功代替原线程续接。
程序化、真实上游和应用操作继续分项记录。 当前执行结果见 资料审计交付。