官方 API 兼容接入 · 多模型直连 · 即刻体验

已切换新模型,为什么 Codex 上下文仍然偏小?

以 Astra 为例,区分已选模型与客户端窗口,读取自己的网关目录,验证后配置 model_catalog_json,并保留同步与回滚方式。

已切换新模型,为什么 Codex 上下文仍然偏小?

ERR-006 · 更新:2026-09-15

问题说明

你已经在任务中选中新模型,但 Codex 显示的上下文仍明显偏小。例如使用 GPT-6 Astra,任务却报告 258,400 tokens;重新切换模型或新建任务也没有变化。模型选择正确,并不代表客户端同时更新了窗口信息。

先核对切换后的任务记录,再比较网关与客户端的模型目录。本文处理“已选中模型,但能力元数据未同步”的问题;如果模型根本没有出现在选择器中,请先阅读新模型不可见的排查经验。

解决方案

让 Codex 帮你处理

我通过 Sub2API 兼容入口使用 Codex,已经选中新模型,但运行时上下文仍明显小于站点或模型文档公布的值,例如选择 GPT-6 Astra 后仍显示 258,400。请先核对当前任务,而不是拿切换前的旧模型日志解释。我希望让客户端采用自己入口提供的正确模型目录,并明确上下文与压缩预算的边界。

所需资源:[下载目录同步脚本(Python 3.11+)](/downloads/sync-codex-model-catalog.py)。下载这个公开脚本不需要 API Key,不附带认证头。网页中的提示词会自动带上当前站点的完整下载地址;如果拿到的是相对路径,请结合教程来源解析,不要猜域名,也不要把模型 API Base URL 当作脚本所在站点。

请检查我的操作系统、实际运行的桌面内置 Codex 或终端 CLI 路径与版本、当前任务模型、运行时窗口,以及真正生效的用户配置、profile、项目和启动覆盖。只读取必要字段,不打印 API Key、认证头、完整认证文件或私有对话。保留 provider、features、memories、profiles、MCP、项目 trust 和任务历史。

使用我已有配置中的实际 Base URL 和对应凭证,读取 Codex 完整目录:在 Base URL 现有路径后追加 /models,并带当前客户端 client_version;不要随意补删 /v1,不跨域跟随带凭证的重定向。普通 data/id 模型列表不能替代包含 models/slug 与能力字段的目录。只有 HTTP 200、完整 JSON、目标模型存在且窗口字段有效,才继续。比较服务端 context_window、max_context_window、effective_context_window_percent、auto_compact_token_limit 与该实际 Codex 程序的 debug models 输出;不预设所有版本的 API Key 模式都不刷新。

若确认是目录未被采用,允许生成独立的本地目录候选文件。保留完整上游元数据,不手写一个模型的小 JSON,不复制他人的账号目录,也不捏造百万窗口。先用该 Codex 程序的单进程 -c model_catalog_json=候选文件 debug models 验证,成功后才备份并替换旧目录;下载、认证、解析或验证失败则保留旧文件。

允许备份后,仅在当前使用的 config.toml 顶层设置 model_catalog_json 为验证过的绝对路径;该行应位于首个 [section] 之前。已有 model_context_window、压缩阈值或 profile 覆盖时,先说明它们的实际影响,不静默移除或提高预算。根据接入通道已验证的最大输入和输出预留决定预算;没有长输入证据时,不把目录数字当成压测结果,也不自动把所有模型统一设为百万窗口。不得用简化示例覆盖整份配置。

可使用上面链接中的 Python 3.11+ 目录同步脚本;先查看代码与 --help,并传入实际 Codex 程序和独立输出路径。脚本只生成、验证目录,不会自动修改 config.toml,也不会发起模型生成;执行后仍需核对配置加载与预算。若系统不支持脚本或当前版本没有 debug models,保持旧配置并报告具体限制,不绕过验证。

请在当前生成和工具调用结束后说明重新加载配置的步骤,不在活跃任务中重启应用。最后分别报告:网关公布值、客户端实际目录值、重新加载后的任务模型与窗口、修改和备份路径、尚未验证的长上下文行为,以及回滚方式。默认不执行收费生成或长输入压测;只有我另外授权后才进行有限验证。不要修改服务器、账号、密钥或上游路由。

为了避免再次发生,在客户端升级、切换入口或分组、站点更新模型后重新比较目录,按相同流程更新静态文件。切换 provider 时必须同时检查 model_catalog_json 的对应关系,不能继续套用另一个入口的目录。

自己操作:先生成目录,再接入配置

下载目录同步脚本(Python 3.11+)。保存后先查看代码和帮助。脚本只请求模型目录、验证并保存文件,不发送生成请求,也不自动修改 config.toml。

以下示例适用于 macOS / Linux / WSL 终端,输出路径按你实际的 Codex 配置目录调整:

python3 sync-codex-model-catalog.py --help
python3 sync-codex-model-catalog.py --model gpt-6-astra --output "$HOME/.codex/model-catalogs/sub2api.json"

脚本默认检查终端中的 codex。桌面使用者必须添加 --codex-bin,指定当前应用实际使用的内置引擎绝对路径;更新终端 CLI 不等于更新桌面程序。Windows PowerShell 可用 py -3.11 启动脚本,并使用 "$env:USERPROFILE/.codex/model-catalogs/sub2api.json" 作为示例输出路径;Windows 版本尚未专项实操验证。

默认读取用户目录下 .codex/config.toml 和同目录 auth.json,支持该 provider 的普通 API Key 或 env_key。使用自定义 CODEX_HOME、profile 文件或其他认证方式时,先确认实际配置,再使用 --config、--provider、--auth-file 等参数;脚本不合并所有配置层,也不支持命令获取凭证或自定义认证请求头。不要把 API Key 写进命令行或网页。

脚本会读取带 client_version 的完整 /models 目录,保留原有路径前缀和所有模型能力字段;验证目标模型、候选 JSON 与实际 Codex 加载结果。成功后备份旧文件并替换,失败保留旧目录。第一次生成没有旧文件,因此不会产生目录备份。

生成成功后,脚本会打印适合本机的配置行。先备份配置,核对下面第三部分的窗口预算,再把该行放在 config.toml 顶层、首个 [section] 之前;如果已有该键,只更新它,不重复添加:

# 示例路径,必须换成脚本输出的真实绝对路径
model_catalog_json = "/absolute/path/to/sub2api.json"

保留其他 provider、features、memories、profiles、MCP 和 trust 设置。已有窗口或压缩覆盖时先判断其用途,不随意删除。在当前生成和工具调用结束后重新加载客户端配置,再检查实际任务。目录文件准备好,不等于活跃任务已经采用新预算。

原因、验证与注意事项

直接复制基础配置,文件不存在怎么办?

接入弹窗的基础示例不预先设置 model_catalog_json,因此不会依赖尚未生成的 JSON 文件。它不保证新模型已出现在选择器中或已使用完整上下文;遇到这些情况时,使用本文提示词生成、验证目录,再添加配置引用。已有自定义目录配置时先检查文件,不直接删除。

macOS / Linux 的 ~/.codex/config.toml 和 Windows 的 %USERPROFILE%\\.codex\\config.toml 是寻找配置文件的位置提示;自定义 CODEX_HOME 时以实际目录为准。不要把这些缩写照抄为 TOML 中的目录文件路径。生成成功后使用真实绝对路径;Windows 可写成 C:/Users/你的用户名/.codex/model-catalogs/sub2api.json,避免反斜杠转义问题。macOS、Windows 原生 Codex 和 WSL 的目录各自独立,必须由实际运行的客户端验证文件可读。

模型列表有别名重复怎么办?

同步脚本默认保留上游列表,不会按名字相似或能力相同推断重复,也不再内置具体型号规则。需要隐藏已核实的别名时,在输出目录文件旁保存同名 .rules.json 文件,例如 sub2api.json 对应 sub2api.rules.json,以后同步自动读取。

规则采用 version: 1,并用 provider 和 endpoint 绑定实际 provider 与不带查询参数的完整模型目录接口。aliases 填写已核实的“别名 → 完整型号”;visibility 可对模型指定 list 或 hide。别名仅在最终完整型号存在且可见时隐藏,显式显示偏好优先;支持别名链,循环与自引用会报错。日期版本不自动合并,能力或价格不同的型号应先确认是否需要分别选择。

每次从最新上游目录重新计算,不把旧输出的隐藏状态当成用户偏好。删除规则条目后下次同步恢复上游状态;--ignore-rules 可临时忽略全部本地规则,--rules 可指定其他规则文件。入口不匹配或规则格式错误时保留旧目录,输出 picker_decisions 说明每条规则是否应用。

规则格式示例(使用自己的 provider、目录接口与已核实模型 ID):

{"version":1,"provider":"your-provider","endpoint":"https://gateway.example/v1/models","aliases":{"friendly-alias":"canonical-model"},"visibility":{}}

为什么模型切换了,窗口却没有变化?

客户端既需要模型 ID,也需要默认窗口、最大窗口等能力信息。2026-09-15 的案例中,桌面内置 Codex 0.154.0-alpha.6.2 和 CLI 0.154.0 在普通 API Key 认证下未自动刷新远端目录,使用了内置 Astra 数据。这是带版本的观测,不代表所有未来客户端都会如此。

核验对象 Astra 默认窗口 最大窗口字段
案例中的网关响应 1,050,000 1,050,000
案例中的客户端目录 272,000 872,000

客户端按 95% 计算可用预算,因此 272,000 × 95% = 258,400。它不是“当前任务仍在用旧模型”的证明,也不是上游拒绝超过该长度请求的证明。当前案例中,显式传入网关完整目录后,同一个程序能正确加载 1,050,000;没有进行百万上下文生成测试。

目录、使用窗口、压缩阈值分别管什么?

字段 含义
model_catalog_json 启动时读取的模型能力 JSON 文件路径,本身不是窗口数值
context_window / max_context_window 模型目录中的默认窗口与允许的最大窗口
model_context_window 本地对当前模型使用窗口的覆盖;案例版本仍会按目录最大值限制
model_auto_compact_token_limit 自动压缩触发阈值;未设置时由客户端模型规则推导

总上下文、最大输入、输出预留和压缩阈值不是同一个数。官方 Astra API 文档列出总上下文 1,050,000、最大输入 922,000;具体接入通道是否支持该长度仍需验证。按 95% 算出的 997,500 不能直接当成允许发送的输入量。目录可解析、短请求成功,都不能替代长输入验收。

没有长输入证据时,先保留已验证可用的使用预算,不因目录变大就自动提高阈值。在案例中的 272K 默认窗口下,客户端按 90% 推导的自动压缩阈值为 244,800;这些数字仅用于解释该版本,不是所有模型的推荐配置。后续扩大预算应在独立、有限的验证中进行,并为下一轮输入、工具返回和输出留出空间。

怎样确认修复到了哪一步?

  1. 用自己的凭证取得完整 models/slug 目录,目标模型和窗口字段存在。
  2. 候选文件经过实际 Codex 程序验证;可比较 codex debug models 与 codex debug models --bundled。桌面端应使用其内置程序执行同类检查。
  3. 重新加载后,实际目录采用目标文件;检查启动覆盖与 profile 是否仍选择其他目录。
  4. 当前任务选中目标模型,报告的窗口与生效目录及本地预算相符。保留较小预算时,窗口不增大可以是预期结果。
  5. 只有额外完成真实请求,才能报告生成链路通过;只有验证对应长度,才能报告长输入可用。默认的同步流程不执行这两项。

怎样减少再次发生?

这个 JSON 是静态快照,不会自动同步。客户端升级、模型发布或窗口变化、切换接入入口或个人分组后,重新运行脚本并核对差异、来源和获取时间。保存脚本输出中的来源、版本和摘要即可,不公开完整目录或认证文件。

model_catalog_json 默认是顶层配置,可能随 provider 切换继续生效。不同入口保留不同文件,切换时同步修改目录引用,或在确认客户端支持后放进对应 profile。每次刷新只在验证成功后替换,不把失败下载保存成正式文件。

回滚时恢复脚本输出的目录备份,并恢复原来的 model_catalog_json 配置行;首次启用则移除新增的这一行。保留此前窗口与压缩设置、memories 和任务历史,不删除整个 .codex。等当前任务结束后重新加载并复查。

失败时检查什么?

结果 下一步
401 / 403 核对当前入口、对应 Key 与个人权限;不要公开 Key
重定向 核对本站给出的最终入口,不携带凭证跨域跟随
只有 data/id 或缺少目标模型 联系站点确认 Codex 完整目录、模型映射与个人访问范围
Codex 拒绝候选目录或没有 debug models 核对实际引擎版本和格式兼容性;保留旧文件,不绕过验证
文件更新后任务仍显示旧值 检查实际路径、profile、启动覆盖和配置是否重新加载
模型或长请求报错 保留脱敏错误、时间与请求标识;目录成功不等于生成成功

本站提供的是通用方法与脚本,不提供适用于所有账号的固定模型目录。案例及脚本已在 macOS 验证;Linux / WSL / Windows 未专项验证。本文针对 Codex,Claude Code 不使用这套配置。

资料:Codex 官方配置说明、GPT-6 Astra 模型说明、案例版本目录刷新实现。

Rest2Build 提供官方 API 兼容接入与多模型直连体验,不属于 OpenAI、Anthropic 或其他模型厂商,模型可用性以实时状态为准。

常见问题

我拿到的是什么密钥? 是我们签发的服务密钥,只能访问本站网关。上游厂商的密钥永远不会发给用户,也不接受用户购买或共享上游账号。

Codex Pro、GPT Pro 和 Claude 代充值是同一种服务吗? 本站按具体商品展示账号充值服务。搜索中常见的 Codex Pro、GPT Pro 叫法不能代替商品名称,ChatGPT Pro 的权益及 Codex 使用范围需按具体套餐核对。Claude 代充值是否提供,以充值页实际列出的可购商品为准;账号订阅不等于本站 API 余额。

公益额度怎么领?要好评吗? 相关专业学生、有明确学习科研用途的开发者和开源维护者可以填写申请说明,按用途与当期名额审核。额度、模型和有效期在发放前确认,不要求好评、转发或拉新。

企业可以开发票吗? 可以,但只针对真实发生并收费的技术服务或软件服务,按实际业务内容和金额开具。公益额度不开票,也不开与实际业务不符的项目。

你们会保存我的输入吗? 网关只记录计费与排障所需的元数据。数据保留、日志和撤销策略见安全策略页;对敏感代码建议使用 BYOK 模式。

返回首页 · 登录