#agent#ai

cluade code 和 codex 如何配置其它模型

前置说明

cluade code 和 codex 是anthropic和openai两家公司发布的ai agent工具,重点在工具两个字上面,这两家公司分别有自己的大模型,例如 anthropic 的 fable,opus,sonnet,haiku 系列,openai 的 gpt-6.1-sol,gpt-6-astra,gpt5.6-sol,gpt5.6-terra,gpt5.6-luna 。因此在我们没有指定模型的时候,默认启动这两个工具,都是默认使用的自家模型。

理论前提

前面讲了cluade code 和 codex 是agent工具,而这两个工具又开放了接入别家大模型的能力,因此只需要修改一些配置即可完成模型的切换。举个例子,在cluade code中使用 minmax模型, codex中使用kimi,而这个模型的配置部分被称为 Provider。

codex

config.toml 文件

通常家目录 ~/.codex/config.toml 或者项目根目录.codex/config.toml

如果都配置了则以优先级最高的项目为准,但是大家常用的都是在家目录下进行配置。先看看最原始的文件内容

model_provider = ""
model_catalog_json = ""
...
...

其中这两行最为重要

  • model_provider 表示当前使用的 provider id 是什么

  • model_catalog_json 表示当前的自定义模型目录文件

如果没有指定model_provider,启用的是openai provider默认的模型,是在项目启动后动态通过接口拉取的。

具体操作示例

model_provider = "custom"
model_catalog_json = "cc-switch-model-catalog.json"

[model_providers.custom]
name = "your any name"
wire_api = "responses"
base_url = "https://xxx.xxx.xxx/xxx"
experimental_bearer_token = "xxxx"
requires_openai_auth = false

...
...

这里再认识底下这段配置

  • [model_providers.custom] 表示一下是providerId = custom 的相关配置

  • name 随便取一个名字

  • base_url provider 模型对应提供模型能力的服务器地址

  • experimental_bearer_token 也就是你的服务器地址的验签key

  • requires_openai_auth 不需要open ai的登录认证

cc-switch-model-catalog.json 文件

{
  "models": [
    {
      "display_name": "my-model-show-name",
      "slug": "my-model-id",
      "max_context_window": 272000,
      "default_reasoning_level": "high",
      "default_reasoning_summary": "none",
      "supported_reasoning_levels": [
        {
          "description": "Disable Thinking",
          "effort": "none"
        },
        {
          "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"
        },
        {
          "description": "Extra high reasoning depth for complex problems",
          "effort": "xhigh"
        },
        {
          "description": "Maximum reasoning depth for the hardest problems",
          "effort": "max"
        }
      ]
    }
  ]
}
  • display_name 表示在终端展示的名称

  • slug 实际底层模型调用时候使用的参数

  • max_context_window 最大上下文窗口

  • default_reasoning_level 默认推理等级

  • supported_reasoning_levels 推理等级支持的档次有哪几层

cluade code

Claude Code 则要求网关提供 Anthropic Messages、Bedrock 或 Vertex 等兼容接口,并正确转发指定字段和请求头,才能进行以下配置

settings.json文件

通常也是家目录 ~/.claude/settings.json 或者是项目的根目录 .claude/settings.json,优先级也是一样的

{
  "model": "sonnet"
}

不像codex,cluade code 就只有这一个文件。这个就是没有官方没有配置任何的provider的样子,就指定一个默认的模型。

具体操作

{
  "model": "sonnet",
  "env": {
    "ANTHROPIC_BASE_URL": "https://gateway.example.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "replace-with-gateway-token",
    "ANTHROPIC_API_KEY": "replace-with-gateway-token",
    "ANTHROPIC_MODEL": "gateway-model-v1",
    "ANTHROPIC_DEFAULT_FABLE_MODEL": "gateway-reason-model-v1",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "gateway-reasoning-model-v1",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "gateway-coding-model-v1",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "gateway-fast-model-v1"
  }
}
  • ANTHROPIC_BASE_URL provider 模型对应提供模型能力的服务器地址

  • ANTHROPIC_AUTH_TOKEN/ANTHROPIC_API_KEY 也就是你的服务器地址的验签key

    • 前者适用于Authorization: Bearer

    • 后者适用于X-Api-Key

  • ANTHROPIC_MODEL 默认使用的模型

  • NTHROPIC_DEFAULT_FABLE_MODEL fable模型对应provider的哪个模型

  • ANTHROPIC_DEFAULT_OPUS_MODEL opus模型对应provider的哪个模型

  • ANTHROPIC_DEFAULT_SONNET_MODEL sonnet模型对应provider的哪个模型

  • ANTHROPIC_DEFAULT_HAIKU_MODEL haiku模型对应provider的哪个模型

小结

以上说明都是 codex和claude code 命令行工具的配置流程。当前codex 的桌面端主要配置和命令行通用,claude code 桌面版则是另外进行配置