把 Codex CLI 接入阿里云百炼 Qwen,我从装包到跑通一共踩了 4 个坑,全是”配置细节”,逐一拆解。

坑一:npm 包名写错,404

报错现象

npm error 404 Not Found - GET https://registry.npmjs.org/@anthropic-ai%2fcodex-cli - Not found

根因:用了错误的包名 @anthropic-ai/codex-cliCodex CLI 是 OpenAI 的产品,不是 Anthropic 的

解决

npm install -g @openai/codex
codex --version

坑二:配置后仍显示 Kimi(config.toml 缺区块)

报错现象:Codex 启动显示 model: kimi-k2.6,而不是配置的 Qwen。

根因:config.toml 里只写了 model_provider = "bailian",但缺少完整的 [model_providers.bailian] 区块,Codex 识别不了这个 provider。

解决:补全配置块。~/.codex/config.toml

model = "qwen-max"
model_provider = "bailian"
wire_api = "responses"

[model_providers.bailian]
name = "bailian"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
env_key = "BAILIAN_API_KEY"
wire_api = "responses"

同时设置好环境变量 BAILIAN_API_KEY

坑三:reachability 404(base_url 错了)

报错现象

✗ reachability provider base URL route returned 404 - verify the configured API prefix

根因:base_url 写了不存在的路径 https://dashscope.aliyuncs.com/apps/anthropic

解决:更正为百炼的 OpenAI 兼容接口:

https://dashscope.aliyuncs.com/compatible-mode/v1

坑四:配置清了它还是显示 Kimi(缓存残留)

报错现象:config.toml 已改对,codex doctor 也通过,启动后仍显示 kimi

根因:三个隐藏缓存源在干扰旧配置:

  • auth.json:保存了旧的 OPENAI_API_KEY
  • cc-switch-model-catalog.json:缓存了 CC Switch 的模型列表
  • state_*.sqlite:保存了 kimi 的历史会话记录

解决:彻底清除缓存:

Remove-Item "$env:USERPROFILE\.codex\auth.json" -Force
Remove-Item "$env:USERPROFILE\.codex\cc-switch-model-catalog.json" -Force
Remove-Item "$env:USERPROFILE\.codex\.codex-global-state.json" -Force
Remove-Item "$env:USERPROFILE\.codex\state_*.sqlite" -Force
Remove-Item "$env:USERPROFILE\.codex\sessions" -Recurse -Force

清完重启 Codex,新配置才真正生效。

有效配置参考

**Claude Code(DeepSeek)**打法不在范围内,这里专注 Codex + 百炼:

配置项
modelqwen-max
model_providerbailian
base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1
wire_apiresponses
env_keyBAILIAN_API_KEY
配置文件~/.codex/config.toml

排错速查表

现象处理
npm 404@openai/codex
显示旧模型[model_providers.xxx] 区块
reachability 404用 compatible-mode/v1 地址
改完仍旧配置清 auth/cache/sqlite 缓存

核心经验:Codex 配置失效,八成是”provider 区块没写全”或”隐藏缓存没清”。先 codex doctor,再检查 config.toml 是否完整,最后清缓存。

按教程操作还是没解决?直接把报错原文发我,帮你定位。

找我问