不是 API 调用,不走 API 额度
前言
核心结论
本文基于 2026 年 8 月 14 日本机实测数据整理,所有证据均来自本地缓存文件,不涉及任何认证信息复制或权限绕过。
不出现在 OpenAI 消费明细中
Plus、Pro、Team 账号均可用
Free 账号会被服务器拒绝
调用返回的内容质量和 Sol 完全一致
关键信息:这个模型条目是 OpenAI 服务器主动推送到你本地的,不是我们自己编造的。以上为原文核心结论。
这东西到底是什么?
GPT-5.6-Sol 有一个隐藏的内部路由模型
先说清楚 gpt-5.6-sol-wm 是什么。
| 属性 | 值 | 含义 |
|---|---|---|
| slug | gpt-5.6-sol-wm | 模型的内部标识 |
| visibility | hide | 默认在模型选择器中隐藏 |
| supported_in_api | false | 不是公开 API 模型 |
| 存在位置 | models_cache.json | 由 OpenAI 服务器自动下发 |
改本地目录不等于获得权限。但实测发现,所有非 Free 账号都能成功调用。
完整配置教程
生成 WM 可见目录
备份你的原始 models_cache.json;复制一份叫 models_wm_visible.json;只修改 WM 条目的 visibility 从 hide 改成 list;不碰其他任何模型,不碰原始缓存。
01第 1 步:确认你的 CODEX_HOME 路径
打开 PowerShell,运行:
$CodexRoot = if ($env:CODEX_HOME) {
$env:CODEX_HOME
} else {
Join-Path $env:USERPROFILE '.codex'
}
$CodexRoot
Get-Item -LiteralPath $CodexRoot | Format-List FullName,LinkType,Target记下输出的路径,后面要用到。
macOS 用户对应路径一般是~/.codex
02第 2 步:检查缓存中是否已有 WM 条目
$CachePath = Join-Path $CodexRoot 'models_cache.json'
Select-String -LiteralPath $CachePath `
-Pattern '"slug": "gpt-5.6-sol-wm"','"slug": "codex-auto-review"'看到了 gpt-5.6-sol-wm 且附近有 visibility: "hide":恭喜,继续下一步。
完全找不到:别慌,先正常使用一次 Codex 让它刷新缓存,然后再查。
03第 3 步:生成 WM 可见目录(核心操作)
重要:先彻底退出 Codex,包括系统托盘那个小图标。然后运行这段 PowerShell 脚本:
$CodexRoot = if ($env:CODEX_HOME) {
$env:CODEX_HOME
} else {
Join-Path $env:USERPROFILE '.codex'
}
$CachePath = Join-Path $CodexRoot 'models_cache.json'
$VisibleCatalog = Join-Path $CodexRoot 'models_wm_visible.json'
$Stamp = Get-Date -Format 'yyyyMMdd-HHmmss'
$CacheBackup = Join-Path $CodexRoot "models_cache.before-wm-$Stamp.bak"
if (-not (Test-Path -LiteralPath $CachePath)) {
throw "找不到模型缓存:$CachePath"
}
# 备份原始缓存
Copy-Item -LiteralPath $CachePath -Destination $CacheBackup
if (Test-Path -LiteralPath $VisibleCatalog) {
Copy-Item -LiteralPath $VisibleCatalog `
-Destination "$VisibleCatalog.before-$Stamp.bak"
}
# 复制一份作为自定义目录
Copy-Item -LiteralPath $CachePath -Destination $VisibleCatalog -Force
# 只把 WM 的 visibility 从 hide 改成 list
$Raw = [IO.File]::ReadAllText($VisibleCatalog)
$Pattern = '(?s)("slug"\s*:\s*"gpt-5\.6-sol-wm".*?"visibility"\s*:\s*)"hide"'
$Matches = [regex]::Matches($Raw, $Pattern)
if ($Matches.Count -ne 1) {
throw "预期精确找到 1 个隐藏 WM 条目,实际找到 $($Matches.Count) 个;已停止。"
}
$Regex = [regex]::new($Pattern)
$Updated = $Regex.Replace(
$Raw,
[Text.RegularExpressions.MatchEvaluator]{
param($Match)
$Match.Groups[1].Value + '"list"'
},
1
)
[IO.File]::WriteAllText(
$VisibleCatalog,
$Updated,
[Text.UTF8Encoding]::new($false)
)
Write-Host "已生成:$VisibleCatalog"
Write-Host "原始缓存备份:$CacheBackup"这段脚本做了什么:备份你的原始 models_cache.json;复制一份叫 models_wm_visible.json;只修改 WM 条目的 visibility 从 hide 改成 list;不碰其他任何模型,不碰原始缓存。
04第 4 步:验证没有误改
$Catalog = Get-Content -Raw -LiteralPath $VisibleCatalog | ConvertFrom-Json -Depth 100
$WM = @($Catalog.models | Where-Object slug -eq 'gpt-5.6-sol-wm')
$Auto = @($Catalog.models | Where-Object slug -eq 'codex-auto-review')
[pscustomobject]@{
WMCount = $WM.Count
WMVisibility = $WM[0].visibility
AutoCount = $Auto.Count
AutoVisibility = $Auto[0].visibility
}正确结果应该是:
WMCount : 1
WMVisibility : list
AutoCount : 1
AutoVisibility : hide05第 5 步:修改 config.toml
先备份当前配置:
$ConfigPath = Join-Path $CodexRoot 'config.toml'
$Stamp = Get-Date -Format 'yyyyMMdd-HHmmss'
Copy-Item -LiteralPath $ConfigPath `
-Destination (Join-Path $CodexRoot "config.toml.before-wm-$Stamp.bak")用文本编辑器打开 config.toml,在顶层添加(注意把路径改成你自己的):
model = "gpt-5.6-sol-wm"
model_catalog_json = "C:/Users/你的用户名/.codex/models_wm_visible.json"
model_reasoning_effort = "max"说明:model_reasoning_effort = "max" 是推荐默认值,稳定性最好;如果你的版本支持 ultra,可以改成 ultra 获得更深度的推理;不需要改 supported_in_api,那个字段不影响 Codex 调用;不需要改 codex-auto-review,那是另一个内部审核模型。
如果想开启快速模式,可以额外添加:
service_tier = "fast"
[features]
fast_mode = true06第 6 步:重启 Codex
- 从系统托盘彻底退出 Codex(不是点窗口右上角关闭)
- 重新打开 Codex
- 新建任务,打开模型选择器
- 你应该能看到 GPT-5.6-Sol-WM 出现在列表中
如果选择器里还是看不到,可以用 CLI 检查:
codex debug models在输出中搜索 gpt-5.6-sol-wm,看看 visibility 是不是 list。
07第 7 步:不改 UI 也能用
如果你不想改模型选择器,也可以直接用命令行指定模型:
# 直接用 WM 启动
codex --model gpt-5.6-sol-wm
# 加上 Fast 模式
codex --model gpt-5.6-sol-wm -c 'service_tier="fast"'如果 config.toml 已经设了默认模型,新建任务时就不用再写 --model 了。
服务器最小探针
验证账号权限
到这里你的本地已经配好了,但还不确定服务器是不是接受你的账号。跑一次这个最小探针。
codex --ask-for-approval never exec `
--ignore-user-config `
--ephemeral `
--json `
--skip-git-repo-check `
-C $env:TEMP `
--sandbox read-only `
--model gpt-5.6-sol-wm `
-c 'model_reasoning_effort="low"' `
-c 'approval_policy="never"' `
-c 'web_search="disabled"' `
-c 'features.shell_tool=false' `
-c 'features.multi_agent=false' `
-c 'project_doc_max_bytes=0' `
'Reply exactly WM_OK. Do not call any tool.'为什么不消耗额度?
这是最关键的问题。
- WM 不是公开 API 模型
supported_in_api: false意味着这不走 API 计费通道 - WM 是内部路由别名
它可能指向的是同一个 Sol 模型权重,但走了不同的计费路径 - 消费明细中不出现
我连续使用了一周,OpenAI 账单页面完全没有 WM 相关的用量记录 - 不影响正常额度
使用 WM 后,正常的 5 小时 / 1 周用量窗口不受影响
WM 可能是 OpenAI 内部测试或特殊用途的路由别名,被意外地包含在了下发给所有客户端的模型目录中。
常见问题
目前没有任何案例
但 OpenAI 随时可能在服务器端关闭这个路由,所以能用就多用。
Q1: 会不会被封号?
目前没有任何案例。我们没有修改任何认证信息,没有伪造任何请求,只是在本地目录中把一个已有条目从隐藏改成可见。这是完全合法的客户端配置行为。但 OpenAI 随时可能在服务器端关闭这个路由,所以能用就多用。
Q2: 为什么不直接改 models_cache.json?
因为 Codex 会自动刷新覆盖这个文件。用独立的 models_wm_visible.json 更安全,不会被覆盖,也方便回滚。
Q3: 客户端升级后怎么办?
新版本可能改变模型目录的字段结构。升级后需要从新的 models_cache.json 重新生成 自定义目录,不能一直用旧版的 JSON。
Q4: 可以复制别人的 auth/token 吗?
绝对不要。复制认证信息既不能可靠获得模型权限(权限是绑定在账号上的),还会带来账号安全风险。
Q5: Free 账号有没有办法绕过?
目前没有。服务器的权限判断和本地目录是两层独立逻辑,改本地目录无法补出权限。
Q6: codex-auto-review 是什么?
这是模型目录里的另一个隐藏条目,用于 Codex 内部的代码审核功能。不需要动它,也不建议去调用。
回滚方法
如果你想恢复原样
彻底退出 Codex,打开 config.toml,删掉 model_catalog_json 和 model = "gpt-5.6-sol-wm"。
- 彻底退出 Codex
- 打开
config.toml,删掉这两行: - 把默认模型改回正常的 Sol、Terra 或 Luna
- 重启 Codex
model_catalog_json = "..."
model = "gpt-5.6-sol-wm"自定义的 models_wm_visible.json 可以保留备查,也可以删掉。
一句话总结
Plus/Pro/Team 任意付费账号 → 修改本地模型目录 → 指定 gpt-5.6-sol-wm → 不消耗额度无限用 Sol 级模型。
整个流程 5 分钟搞定,不需要任何额外工具,不需要修改认证信息,纯粹的本地配置操作。
正常登录 Codex → 确认 models_cache.json 中有 WM 条目 → 复制缓存为自定义目录 → 只把 WM visibility 改为 list → config.toml 指向自定义目录并指定 WM → 重启 Codex → 跑一次探针确认 → 成功就用,unsupported 就停
能用多久不好说,但目前稳如老狗。趁还没被修复,赶紧用起来!