为什么我在使用 Codex 时,会额外使用其他模型?

2026-08-04 1,427 0

我明明在 Codex 里选了一个主模型,为什么中转站日志或者用量记录里,还会突然冒出 gpt-5.6-luna、gpt-5.6-terra?

这不一定是模型选错了,也不一定是账号出现了异常。一种已经能够验证的原因是:Codex App 并不是把所有工作都交给当前对话模型,而是会为自动标题、记忆生成和特定建议内容的安全分类等后台任务单独调用辅助模型。

我顺着官方文档、Codex 开源代码、本机 App 安装包和真实运行日志核验了一遍。结论很明确:这件事确实存在,而且不同任务使用的模型还不一样。

先看结论

截至 2026 年 8 月 4 日,我核验的当前 macOS Codex App 是 26.727.51351,内置 codex-cli 0.146.0-alpha.9.2。当前安装包、官方源码和保留的较早版本运行日志共同支持下面这些结论:

功能 使用的模型 档位
主对话与开发任务 用户当前选择的模型 用户设置
自动生成对话标题 gpt-5.6-luna Low
手动重命名对话 不调用模型 —
单个对话的记忆提取 gpt-5.6-luna Low
全局记忆整理与合并 gpt-5.6-terra Medium
Ambient 建议候选安全检查 gpt-5.6-luna Low

所以,当主对话使用 Sol 或其他模型时,后台同时出现 Luna、Terra 请求,在这些核验版本里是可以解释得通的。

为什么 Codex 不让主模型顺手把这些事做完?

从公开的模型定位和客户端代码可以推断,一个重要原因是这些任务对模型能力的要求并不相同。

写代码、做架构判断、处理复杂上下文,需要更强的推理和工具能力;但从一段对话中提取标题、分类信息或者结构化摘要,目标非常明确,也很容易判断结果是否合格。

OpenAI 对 GPT-5.6 系列的公开定位也是这样:Sol 面向复杂、开放和高价值任务;Terra 是日常工作的全能档;Luna 更适合提取、分类、转换和结构化摘要等明确、可重复的任务。详情可看 Codex 模型选择说明。

换句话说,Codex 做的是任务分级:

  • 主对话通常从用户选择的模型开始,服务端仍可能继续路由。
  • 本次核验的自动标题、记忆提取和特定建议安全分类选择了 Luna。
  • 需要跨多条记忆进行归并和取舍的全局整合默认选择 Terra。

这种拆分可以让不同复杂度的工作使用不同的速度、成本和能力范围,而不必把所有事情都塞给最强模型。

证据一:自动标题确实会单独调用 Luna

对话标题要分成两种情况。

用户手动输入标题时,不需要调用模型。客户端只需要把这个名称保存下来。

新对话的自动短标题则不同。在我核验的当前桌面端安装包中,Codex 会启动一个临时、只读的系统线程来生成标题和描述,指定使用 gpt-5.6-luna 和 Low 推理,并关闭联网、多代理、插件等不需要的能力。

包内代码整理后的关键字段如下。这是本机安装包观察,不是 OpenAI 对未来版本作出的公开稳定承诺:

feature: thread_title
model: gpt-5.6-luna
effort: low
threadSource: system
web_search: disabled

我保留的一份较早桌面版本日志还能证明这条路径真实运行过。该日志对应 runtime 26.715.12143、app-server 0.145.0-alpha.30,其中一条完整事件是:

2026-07-23T13:22:41.876Z
feature=thread_title model=gpt-5.6-luna
reasoningEffort=low status=success
inputTokens=18380 cachedInputTokens=11008 outputTokens=87

也就是说,标题不是当前主对话模型“顺手”生成的,而是一笔独立的辅助请求。

这里还有一个容易误解的细节:Codex 开源核心可以直接从第一条用户消息派生一个本地标题,桌面宿主又可以在其上生成更短、更自然的 AI 标题。因此,不是每一次标题变化都会调用模型,但桌面端的自动标题路径确实会。

另一个例子:Ambient Suggestions 候选安全检查

当前 App 包内代码还为 ambient_suggestion_safety 指定了 gpt-5.6-luna 和 Low 推理。本机 2026 年 7 月 26 日至 28 日的日志也连续记录过成功事件,例如:

feature=ambient_suggestion_safety
model=gpt-5.6-luna
reasoningEffort=low
status=success

这个证据只覆盖 Ambient Suggestions 的候选安全分类,不能泛化成“Codex 的所有安全检查都使用 Luna”。

证据二:记忆不是一次调用,而是两个模型阶段

“Codex 会用模型存储记忆”这句话只说对了一半。

把数据写入 SQLite 或 Markdown 文件,本质上只是普通程序逻辑,并不需要大模型。真正需要模型的是:从历史对话中判断什么值得留下,以及怎样把多条记忆合并成稳定、可复用的上下文。

官方文档公开了两个独立配置项:

  • memories.extract_model:覆盖单个对话的记忆提取模型。
  • memories.consolidation_model:覆盖全局记忆整合模型。

这两个配置项证明存在两个可独立配置的模型角色;官方源码的 Memories 流水线说明进一步确认了 Phase 1 提取、Phase 2 整合的执行过程。官方文档还说明,它会跳过仍在活跃或过短的会话,等待会话空闲后在后台处理,并可能在额度过低时跳过本轮任务。它不是每次聊天结束后立即执行。参见 Codex Memories 文档。

第一阶段:从单个对话中提取记忆

这一阶段读取一段符合条件的历史对话,提取值得长期保留的信息、摘要和索引字段。当前官方默认模型是 gpt-5.6-luna,推理强度为 Low。

它属于典型的结构化提取任务,结果格式明确、执行量可能很大,正好符合 Luna 的定位。

第二阶段:整理全局记忆

这一阶段需要把多个对话产生的记忆进行合并、去重和重组,再同步成全局记忆文件。当前官方默认模型是 gpt-5.6-terra,推理强度为 Medium。

从任务形态上看,它比单条提取更需要跨记录判断;使用 Terra 也与官方对其“日常全能档”的定位一致。

这两个默认值可以直接在 OpenAI 的 Codex 源码中找到:模型常量、第一阶段选择逻辑、第二阶段选择逻辑以及 两个阶段的推理档位。

为什么有人看到的是 GPT-5.4,而不是 Luna 和 Terra?

因为客户端的默认模型选择会随版本变化。

旧版本曾默认使用 gpt-5.4-mini 做记忆提取、使用 gpt-5.4 做记忆整合。

2026 年 7 月,OpenAI 在官方提交中把这些内部用途迁移到了对应的 GPT-5.6 Luna/Terra 型号。可以直接查看这次 模型迁移提交。

所以,不能把“Codex 永远固定使用某个辅助模型”当成规则。准确说法应该是:某个 Codex 版本会为特定后台任务设置默认辅助模型,而且这些默认值可能更新,也允许配置或模型提供方覆盖。

在中转站看到额外模型请求,要不要担心?

先不要只凭模型名称下结论。

如果额外的 Luna 或 Terra 请求发生在你刚创建对话、长会话空闲、启动 Codex 或启用记忆功能附近,它可能来自上述后台流程。模型不同,并不能单独证明主任务被降级,也可能只是主任务和辅助任务被拆开执行。

macOS 用户可以先在 Codex 桌面日志中搜索当前能够确认的特征:

rg "thread_title|ambient_suggestion_safety" \
  ~/Library/Logs/com.openai.codex/

记忆任务的痕迹会因版本和存储路径不同而变化,不能假定桌面文本日志一定包含 memory_consolidation。

如果能同时对上时间、功能标签、模型名称和成功状态,证据就比只看一条账单记录完整得多。

反过来,如果请求时间与任何 Codex 操作都对不上、消耗持续异常,或者服务端没有保留足够的功能标签,那就仍然需要继续检查 API Key 使用记录、客户端日志和服务端路由,不能因为“Codex 本来会用辅助模型”就把所有异常都合理化。

最后一个边界:客户端记录的模型,不等于服务端物理模型

本次证据能够确认的是:当前客户端代码为自动标题和记忆阶段选择了这些模型 ID;较早版本的桌面日志还实际记录了标题生成的成功调用。

但如果使用第三方模型提供方或中转服务,服务端仍可能做别名解析、模型映射或内部路由。只看客户端无法证明后端最终运行的物理模型是什么。

因此,最严谨的说法不是“后台百分之百运行了某块指定权重”,而是:这些 Codex 客户端路径明确选择或请求了对应的 Luna/Terra 模型 ID。

结论

Codex 不是“一个模型外面套了一层聊天界面”,而是一个会拆分任务、调度模型和运行工具的 Agent 客户端。

在本次核验版本里,自动标题、记忆提取和 Ambient Suggestions 候选安全检查会选择 Luna;更复杂的全局记忆整理默认选择 Terra。公开资料与代码能够确认这种分工及其模型定位,但不能据此推断所有后台任务都走同一个轻量模型。

所以下次在中转站账单里看到主模型之外又出现 Luna、Terra,先别急着判断“掺水”或者“串号”。把时间、功能标签、客户端版本和服务端路由一起对上,才能知道这笔请求到底从哪里来。

相关文章

Codex 子代理实测:开了并行,小任务反而慢 2.7 倍
Codex 系列 05:别再一直说「继续」,用 Goal 让它干到完成
Codex 系列 04-3:你的第一个 Codex Skill,是被「烦」出来的
Codex 系列 04-2:我每天在用的 19 个 Codex Skills,7 大场景直接抄
Codex 系列 04-1:别再复制提示词了,让 Codex 记住你的工作方法
Codex 系列 03:我一直在用的神级提示词

发布评论