给Codex同一个provider增加非GPT模型选择(如grok)

MilQcxe 2026-07-23 18:59 1

codex app自从更新支持批注功能后,又从pi+plannotator插件跳回来了 ^-^。


加上最近吃上grok-4.5,速度很快,在pi里面可以同时直接用gpt和grok进行协作,于是也想在codex里面让gpt能同时调用上grok做subagent。


因为我是自己用new-api作为网关管理各路来源的model在一个provider下,所以以下配置都是基于“同一个provider同一个apikey”下的操作。


1. 生成模型配置文件



如果codex cli中通过codex login登录过了,一般都会自动抓取最新的models_cache.json(位于 ~/.codex 中),但如果是free账户,抓取下来的文件就没有5.6-sol模型配置了。



models_cache.json 里面全的话就可以直接复制已有的文件,重命名如 models_cache_bundled.json ,如果没有就直接使用codex仓库内置的静态配置生成:


codex debug models --bundled | jq . > "$HOME/.codex/models_cache_bundled.json"

# 如果没有jq的话,用python工具
# codex debug models --bundled | python -m json.tool --indent 2 > "$HOME/.codex/models_cache_bundled.json"

2. 增加第三方模型配置


在这个 models_cache_bundled.jsonmodels 字段下增加如 grok-4.5 配置(就按照其他gpt模型格式进行添加):




grok-4.5 配置

  {
"additional_speed_tiers": [],
"availability_nux": null,
"base_instructions": "You are Codex, a coding agent. You and the user share the same workspace and collaborate to achieve the user's goals.",
"context_window": 500000,
"default_reasoning_level": "high",
"default_reasoning_summary": "none",
"description": "Grok 4.5",
"display_name": "Grok 4.5",
"effective_context_window_percent": 95,
"experimental_supported_tools": [],
"input_modalities": [
"text",
"image"
],
"max_context_window": 500000,
"priority": 1000,
"service_tiers": [],
"shell_type": "shell_command",
"slug": "grok-4.5",
"support_verbosity": false,
"supported_in_api": true,
"supported_reasoning_levels": [
{
"description": "Fast responses with lighter reasoning",
"effort": "low"
},
{
"description": "Balances speed and reasoning depth for everyday tasks",
"effort": "medium"
},
{
"description": "Greater reasoning depth for complex problems",
"effort": "high"
}
],
"supports_image_detail_original": true,
"supports_parallel_tool_calls": true,
"supports_reasoning_summaries": true,
"supports_search_tool": false,
"truncation_policy": {
"limit": 10000,
"mode": "bytes"
},
"upgrade": null,
"visibility": "list"
}


3. 指定模型配置文件


回到codex的 config.toml 文件,在最上方指定 model_catalog_json 字段为刚刚改的json文件:


model_catalog_json = "models_cache_bundled.json"



重开codex之后就可以看到grok-4.5选项






4. 支持subagent调用


还没完,5.6-sol/5.6-terra只能调用 model_catalog_json 中同为 multi_agent_versionv2 的模型(也就是sol和terra)。




因此如果主agent用的如果是这sol/terra,直接让其调用非sol/terra模型会失败






相关 issue:GPT-5.6 Sol cannot specify subagent models, forcing all subagents to also be Sol instances



解决方案:需要回到刚刚的 model_catalog_json = "models_cache_bundled.json" 文件中,将里面出现的 "multi_agent_version": "v2" 改为 "v1",使用旧版的UUID子线程模式调用subagent:


"multi_agent_version": "v1"

然后回到 config.toml 文件,[features] 下增加 multi_agent_v2 = false(虽然默认值就是 false,不过也指定上方便提示自己之前改过这个配置),如:


[features]
multi_agent = true
multi_agent_v2 = false

这时候重开会话,5.6-sol就可以召唤grok-4.5了:

最新回复 (2)
  • jjrhlb 07-23 19:02
    1

    model_catalog_json



    好贴!搜半天没解决的问题一个帖子说清楚了!

  • DenisZheng 07-23 19:29
    2

    学习一下,这几天同一会话切gpt和grok经常4.5获取不到

* 帖子来源Linux.do
返回