Codex 兼容控制与验证
核对日期:2026-10-15。 本轮区分模型能力和客户端控制。 明确声明优先,缺失资料使用保守默认。 每个生成值都记录来源和限制原因。
资料依据
Codex 官方文档允许省略压缩阈值。 省略后,客户端使用模型默认值。 verbosity 控制输出详细程度。 未设置时,客户端使用所选模型的默认值。 说明见 Codex 配置参考。
公开源码将默认压缩比例设为 90%。 默认有效窗口比例为 95%。 模型可以提供更低的压缩阈值。 客户端仍按运行窗口约束该阈值。 依据见 ModelInfo。
当前公开目录结构没有 supports_parallel_tool_calls。 实际并行控制属于请求参数。 不能用无效目录字段声称并行调用已关闭。 字段含义见 Responses 请求。
Messages 使用 disable_parallel_tool_use。 该参数属于 tool_choice。 接口说明见 Messages 请求。 公开源码会变化,升级客户端时须重新核对。
生效规则
| 控制 | 解析与生效规则 |
|---|---|
| 压缩阈值 | 有效服务声明优先,再读取精确客户端型号;缺失时省略字段,让客户端按实际窗口计算 90% 默认值 |
| 阈值上限 | 不超过当前运行窗口的 90%;记录约束原因 |
| 有效窗口比例 | 服务声明优先,再读取精确客户端型号;有效范围为 1% 至 100% |
| 搜索 | 服务必须明确支持;当前路由还须使用 Responses |
| verbosity | 服务必须明确支持;当前路由还须使用 Responses |
| 默认详细程度 | 保留有效的服务或客户端默认值;不覆盖用户明确配置 |
| 并行工具 | 移除无效目录字段;按实际请求参数双向转换 |
| Messages 输出预算 | 请求未指定时,默认 8,192 Token;已知模型上限更小时,使用该上限 |
| 请求明确预算 | 保留原值,不静默缩减用户请求 |
客户端官方模板只能证明客户端接受字段。 它不能证明同名中转服务支持该字段。 models.dev 的普通工具能力也不能证明服务端搜索可用。 Chat 和 Messages 转换仍不声明搜索或 verbosity。 未知能力、非法字段及明确 false 分别处理。
来源记录
模型条目的 codexCompatibility 保存解析结果。 values 保存实际生成值。 sources 保存服务、客户端、兜底或协议来源。 restrictions 保存未确认服务及协议限制。 这些字段用于核对消费链路,不增加常驻界面提示。
输出预算只读取同一连接和精确型号的缓存。 缓存身份必须匹配当前连接。 只有服务及 models.dev 的有效上限参与约束。 兜底能力不冒充已知上限。
默认压缩阈值不固化为旧窗口的 Token 数。 用户选择更大窗口后,客户端重新计算默认阈值。 用户明确配置继续优先。 刷新目录不重写压缩阈值或 verbosity 配置。 超时、请求大小和历史读取上限仍属于资源保护。 本轮没有调整这些资源限制。
自动化范围
| 功能编号 | 入口 | 核心断言 |
|---|---|---|
| MO01、CL01 | tools/native/model-metadata-consumption-test.mjs | 真实生成文件、逐字段来源、明确 false、非法值、资料刷新、配置保留 |
| MO03 | 同上及 Rust 单测 | 转换协议关闭不支持的控件;窗口限制约束压缩阈值 |
| CL01 | tools/native/installed-clients-test.mjs | 已安装 Codex 读取目录;请求包含详细程度和搜索;刷新后禁用生效 |
| MO03 | Rust 协议单测 | 并行参数双向保留;工具选择类型不变;预算和明确请求值分别验证 |
| MO01 | Rust 目录单测 | 连接身份与型号隔离;兜底预算不冒充已知模型上限 |
| MO01、CL01 | 资料消费及缓存修复套件 | 正常并发刷新重新补全;主动修复仍拦截旧结果 |
| LF06 | tools/native/application-reset-test.mjs | 等待重置工作进程退出,再验证重开及原数据保留 |
本轮在隔离配置和合成上游中测试。 正常配置、登录与正在运行的客户端保持原状。 真实服务支持、费用及 Desktop 重载继续单独验收。 程序化结果不能替代这些真实环境证据。
回归时序
首次完整回归发现旧端口夹具互相影响。 本机正常安装仍在使用产品端口范围。 账本恢复夹具改用临时端口,并同时检查 IPv4 和 IPv6。 记录的代理仍在运行时,恢复必须拒绝。 重置夹具等待后台进程退出后再启动 RPC。 两项修正均保留原有业务断言。 首次失败和修正后结果分别保留。
本轮结果
执行结果见 路由与消费链交付记录。 本轮只同步源码和构建本地候选包。 不安装替换,不对外发布。
未定位的连接异常
独立合成回归曾出现两次上游连接 502。 复测通过,但根因尚未定位。 不能把后续通过改写为问题已解决。 真实服务能力与同类连接异常仍须分别验收。