修复 Codex OpenRouter 模型名称错误 | AI生成和翻译

Home 2026.02

Question: 为什么即使在将 model_provider 设置为 openrouter 后,Codex CLI 仍显示错误 “anthropic/claude-4-sonnet is not a valid model ID”,该如何修复?

Answer:

模型名称 anthropic/claude-4-sonnet 不是 2026 年 OpenRouter 所期望的正确格式。

OpenRouter 使用的命名规范与你在其网站下拉菜单中看到的或人们随手写的名称不同。

OpenRouter 的正确模型名称(截至 2026 年 2 月)

以下是在使用 OpenRouter provider 时,你应该在 model = "..." 字段中填入的实际字符串:

常用称呼 正确的 OpenRouter 模型字符串 备注
Claude 4 Sonnet anthropic/claude-sonnet-4-20250514 最新的 Claude 4 Sonnet
Claude 3.7 Sonnet anthropic/claude-3-7-sonnet-20250219 2026 年初非常流行
Claude 3.5 Sonnet anthropic/claude-3.5-sonnet 依然出色且更便宜
DeepSeek R1 deepseek/deepseek-r1 最佳性价比
DeepSeek V3 0324 deepseek/deepseek-v3-0324 非常强大的 coding model
Qwen 2.5 Coder 32B qwen/qwen2.5-coder-32b-instruct 出色的 coding 能力且便宜
Gemini 2.5 Pro google/gemini-2.5-pro-exp-03-25 或检查准确的日期后缀
Gemini 2.5 Flash google/gemini-2.5-flash 快速且便宜
Grok 3 xai/grok-3 极具创意且擅长代码

如何立即修复你的配置

编辑 ~/.codex/config.toml 并将 model 行更改为上述有效名称之一。

推荐的快速修复方案 – 使用一个经过验证的高效且便宜的模型:

model = "deepseek/deepseek-r1"           # ← 这几乎总是有效
model_provider = "openrouter"

[model_providers.openrouter]
name     = "OpenRouter"
base_url = "https://openrouter.ai/api/v1"
env_key  = "OPENROUTER_API_KEY"
# 可选但建议添加
headers = { "HTTP-Referer" = "https://github.com/lzwjava", "X-Title" = "Codex CLI" }

然后在 terminal 中:

export OPENROUTER_API_KEY="sk-or-v1-..."
codex

或者如果你确实需要 Claude 级别的质量(价格更贵):

model = "anthropic/claude-sonnet-4-20250514"
# ... 其余部分同上

快速诊断命令

  1. 查看 Codex 实际加载的内容:
codex --debug config
  1. 列出 Codex 所知的模型(有助于确认 provider):
codex --debug models

导致 “not a valid model ID” 的最常见错误:

修复模型名称后 → 重启 codex(直接退出并再次运行)。

你应该不再看到 400 错误,并且模型名称应该正确显示在 header 中。

References:


Back Donate