GPT-5.6-Sol-WM 隐藏模型实测:CHAIM01 调用成功与配置方法
先说结论
我在自己的 Windows 电脑 CHAIM01 上做了一次最小化实测:Codex Desktop 下发的模型目录中确实存在 gpt-5.6-sol-wm,它默认不显示在模型选择器里,而本次测试使用的当前账号可以直接请求。测试返回 WM_OK,进程退出码为 0。
这能证明两件事:
gpt-5.6-sol-wm不是手工编造的模型名,而是 Codex 客户端收到的真实模型条目;- 至少在本次测试使用的账号和时间点,服务端接受了这个模型请求。
但要把结论说严谨:一次成功调用不能证明它永久免费,也不能证明长期高频使用不会计入限额。 Codex 返回了 token usage,却没有返回账户扣减前后的限额数据。能调用是实测结果,“无限且不消耗额度”仍需要更长时间的连续观察。
实测环境
本次测试没有安装来路不明的补丁,也没有复制或修改登录凭据。使用的是 Codex Desktop 自带的 CLI:
主机:CHAIM01
Codex CLI:0.147.0-alpha.6.6
模型:gpt-5.6-sol-wm
测试方式:临时会话、只读沙箱、禁用工具
Windows 上的 Codex Desktop 会把命令行程序放在用户的本地运行目录。具体版本目录可能随客户端升级改变,所以不要机械复制别人的完整路径。更稳的做法是先通过 Get-ChildItem 定位当前版本:
Get-ChildItem "$env:LOCALAPPDATA\OpenAI\Codex\bin" `
-Filter codex.exe -File -Recurse
如果你另外安装了 Codex CLI,也可以直接运行:
codex --version
检查本地模型目录
Codex 的模型缓存通常位于:
%USERPROFILE%\.codex\models_cache.json
先确认文件存在:
$CodexHome = if ($env:CODEX_HOME) {
$env:CODEX_HOME
} else {
Join-Path $env:USERPROFILE '.codex'
}
$CachePath = Join-Path $CodexHome 'models_cache.json'
Test-Path -LiteralPath $CachePath
然后只读取目标条目:
$Catalog = Get-Content -Raw -LiteralPath $CachePath | ConvertFrom-Json
$Models = if ($Catalog.models) { @($Catalog.models) } else { @($Catalog) }
$Models |
Where-Object slug -eq 'gpt-5.6-sol-wm' |
Select-Object slug, visibility, supported_in_api, supported_reasoning_levels
CHAIM01 上读到的核心字段是:
slug : gpt-5.6-sol-wm
visibility : hide
supported_in_api : false
这里有两个容易混淆的概念:
visibility: hide表示客户端默认不把它列在普通模型选择器中;supported_in_api: false是当前客户端缓存里记录的字段值;仅凭这个字段,不能进一步断言服务端的完整产品定位。
本地看见条目不代表账号一定有权限。最终是否可用,仍由服务端在请求时判断。
不改配置,先跑最小探针
不要一上来就改默认模型。先用一次临时、只读请求判断账号是否被服务端接受,失败也不会影响现有 Codex 配置。
如果 codex 已经在 PATH 中,可以运行:
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.'
这条命令刻意做了几层约束:
--ignore-user-config:不读取当前项目的个性化配置;--ephemeral:使用临时会话;--sandbox read-only:只读沙箱;- 禁用网页搜索、Shell 工具和多 Agent;
- 使用最低推理档,只要求模型返回固定文本。
CHAIM01 的实际结果中包含:
{"type":"item.completed","item":{"type":"agent_message","text":"WM_OK"}}
{"type":"turn.completed","usage":{"input_tokens":15322,"output_tokens":6}}
最终退出码为 0。这说明服务端确实完成了本次 gpt-5.6-sol-wm 请求。
如果返回 model is not supported,说明当前账号没有访问权限。本地修改 JSON 只能改变显示状态,不能绕过服务端授权。若返回 401,优先检查 Codex 登录是否失效,不要去复制其他人的认证文件。
是否需要把隐藏模型改成可见
只为了使用模型,其实不必修改模型目录。命令行显式传入即可:
codex --model gpt-5.6-sol-wm
如果确实希望它出现在模型列表里,建议遵循三个原则:
- 不直接修改会被客户端刷新的原始缓存;
- 先备份,再从当前版本缓存生成独立副本;
- 只改目标模型的
visibility,并验证匹配数量必须恰好为一个。
下面是一段带保护检查的生成脚本。它解析 JSON 后精确定位目标对象,不用可能跨对象匹配的正则:
$CodexHome = if ($env:CODEX_HOME) {
$env:CODEX_HOME
} else {
Join-Path $env:USERPROFILE '.codex'
}
$Source = Join-Path $CodexHome 'models_cache.json'
$Target = Join-Path $CodexHome 'models_sol_wm_visible.json'
$Backup = "$Target.before-$(Get-Date -Format yyyyMMdd-HHmmss).bak"
if (-not (Test-Path -LiteralPath $Source)) {
throw "找不到模型缓存:$Source"
}
if (Test-Path -LiteralPath $Target) {
Copy-Item -LiteralPath $Target -Destination $Backup
}
$Catalog = Get-Content -Raw -LiteralPath $Source | ConvertFrom-Json
$Models = if ($Catalog.models) { @($Catalog.models) } else { @($Catalog) }
$WM = @($Models | Where-Object slug -eq 'gpt-5.6-sol-wm')
if ($WM.Count -ne 1) {
throw "目标条目数量异常:$($WM.Count),停止修改。"
}
$WM[0].visibility = 'list'
$Json = $Catalog | ConvertTo-Json -Depth 100
[IO.File]::WriteAllText(
$Target,
$Json,
[Text.UTF8Encoding]::new($false)
)
生成后,检查目标条目:
$CustomCatalog = Get-Content -Raw -LiteralPath $Target | ConvertFrom-Json
@($CustomCatalog.models | Where-Object slug -eq 'gpt-5.6-sol-wm') |
Select-Object slug, visibility
然后才考虑在 config.toml 顶层增加:
model = "gpt-5.6-sol-wm"
model_catalog_json = "C:/Users/你的用户名/.codex/models_sol_wm_visible.json"
model_reasoning_effort = "max"
Windows 路径建议使用正斜杠,减少 TOML 转义问题。客户端升级后如果模型目录结构发生变化,应从新的缓存重新生成,不要长期复用旧副本。
关于“不扣额度”的判断
这部分必须和“能否调用”分开。
本次请求的响应明确给出了输入与输出 token 数量,说明服务端对本轮消耗进行了统计;但响应里没有账户剩余额度、扣减明细或计费结果。因此,单靠 WM_OK 只能证明权限与路由正常,不能推出以下结论:
- 所有付费账号都可用;
- 所有请求永久免费;
- 高强度调用永远不会触发限制;
- 隐藏模型的行为和名称长期不变。
更可靠的验证方式是:记录测试前后的官方 usage 状态,在相同账号上进行有限次数、不同时间段的对照测试,再观察限额提醒或消费明细是否变化。即使短期没有可见扣减,也可能只是统计延迟、独立限额池或内部路由策略,并不自动等于“无限”。
安全边界
这个测试不需要、也不应该做以下事情:
- 复制别人的
auth.json、Cookie 或 Token; - 修改或伪造账号身份;
- 下载不明来源的 Codex 补丁;
- 为了验证模型而关闭 Windows 安全功能;
- 把登录文件上传到网盘或发给第三方。
模型权限由账号和服务端决定。拿到别人的认证信息既不安全,也不能把不具备的权限稳定地“变出来”。
最后的判断
gpt-5.6-sol-wm 在 CHAIM01 上已实测调用成功,这一点没有悬念。它目前是一个被客户端隐藏、但服务端允许当前账号访问的 Codex 模型路由。
真正值得采用的路径不是急着修改默认配置,而是:
- 只读检查模型缓存;
- 用临时只读探针确认服务端权限;
- 成功后先通过
--model显式使用; - 确有长期需要,再制作可回滚的独立模型目录;
- 对“无限、不扣额度”等说法继续保留验证意识。
能调用,是本次实测结果;能用多久、如何计入限额,仍由服务端策略决定。把这两件事分开,才不会因为一个隐藏模型名,把技术验证做成自我说服。