尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Claude Code与Codex多模型配置实战:环境变量、API兼容与一键切换

Claude Code与Codex多模型配置实战:环境变量、API兼容与一键切换 最近如果你同时装了 Claude Code 和 Codex大概率经历过这种场景刚用 Claude 写完一版重构方案下一分钟想切到 Codex 跑一段专项代码生成结果又要重新 export 环境变量、改配置文件、重启终端中间只要有一个变量写错终端里就是一连串的401和model not found。在 AI 编程工具越来越成熟的现在手工切换配置反而成了整个流程里最大的瓶颈。这篇文章要解决的就是这个问题。我会先讲清楚 Claude Code 与 Codex 的模型配置原理然后分别给出接入 Anthropic Claude、DeepSeek、通义千问这三家模型供应商的完整配置步骤最后演示如何用 cc-switch 这类配置管理工具把所有配置保存成 Profile做到一键切换。先给出一个判断模型本身的能力差距远小于你把模型接入到工具链中的效率差距。配置管理得好三套模型可以在同一台机器上无缝共存配置管理不好再强的模型也会因为频繁切换而被白白浪费。读完这篇文章你可以做到理解 Claude Code 和 Codex 读取模型配置的完整链路为 Claude Code 配置 Anthropic 官方与 DeepSeek 两套模型为 Codex 配置 OpenAI 官方、DeepSeek、通义千问三套模型并且以后遇到local proxy failed、model not found、401这类报错时能按排查清单快速定位问题。1. 为什么你需要给 Claude Code 和 Codex 配置三家模型很多人刚接触 Claude Code 和 Codex 时都有一个直观感受它们开箱即用官方默认模型也够强为什么还要费劲去配置多家模型真实项目里理由往往来自这几个现实问题。第一个是成本问题。不同模型的定价差异非常大。Claude 系列模型在复杂推理、长上下文代码理解上确实有优势但价格也相对更高。日常 CRUD、单元测试、脚本生成这类中低难度任务完全可以用价格更低的模型处理。如果所有任务都走最贵的模型月底账单会告诉你什么叫“生产力工具”。第二个是任务匹配问题。不同模型在不同任务上的表现并不一致。有的模型适合大规模重构有的模型在代码补全和短小任务上反应更快还有的模型在中文理解和本地化场景里表现更好。只锁死一个官方模型等于放弃了任务级别的模型选择空间。第三个是可用性与扩展问题。官方 API 在某些网络环境下的连通性不一定稳定而第三方模型服务商通常提供了兼容 OpenAI 或 Anthropic 协议的接入地址。开发者把同一套工具链指向不同供应商可以获得更高的可用性和容灾能力。把三家模型配置好之后你的工具链会变成这样工具官方默认方案低成本/替代方案Claude CodeAnthropic ClaudeDeepSeekAnthropic 兼容端点CodexOpenAI 官方模型DeepSeek、通义千问OpenAI 兼容端点换句话说一个 DeepSeek 可以在两个工具里同时使用通义千问则可以作为 Codex 的第二备选。这样配置下来你等于同时拥有了四套可用模型路径但日常维护只需要管理三套供应商配置。2. 模型配置的核心原理环境变量、API 端点与兼容协议在动手之前我建议你先理解底层原理否则配置出错时很难定位问题。2.1 Claude Code 是怎么读取模型配置的Claude Code 是 Anthropic 推出的命令行编程助手默认连接 Anthropic 官方 API。它的配置读取顺序大致是默认环境变量 → 项目级配置文件 → 用户级配置文件 → 系统环境变量。其中最关键的是下面几个环境变量环境变量作用ANTHROPIC_API_KEY用于身份认证的 API KeyANTHROPIC_BASE_URLAPI 请求的基础地址默认是官方地址ANTHROPIC_MODEL主模型名称负责主要对话和代码生成ANTHROPIC_SMALL_FAST_MODEL后台轻量任务使用的快速模型Claude Code 的模型配置本质上就是“把 API Key 和请求地址指向哪里”的问题。你想接 Anthropic 官方就把地址指向官方端点你想接其他支持 Anthropic 协议的服务商就把地址指向对方的兼容端点。这个思路一旦建立后面的配置就不再神秘。2.2 Codex 是怎么读取模型配置的Codex CLI 是 OpenAI 推出的终端编程助手默认连接 OpenAI API。它的配置文件通常存放在用户主目录下的~/.codex/config.toml里面定义了默认模型、默认模型供应商以及可选的多个自定义模型供应商。Codex 的核心概念是model_provider。你可以把每个供应商理解成一个配置块每个块里包含请求地址、API Key 的环境变量名称、以及使用的协议格式。需要切换模型时只要改变model和model_provider这两个顶层字段即可。2.3 兼容协议是第三方模型接入的关键Claude Code 和 Codex 分别使用了不同的 API 协议。Claude Code 走 Anthropic Messages API而 Codex 默认走 OpenAI Responses API 或 Chat Completions API。第三方模型服务商通常不会为每个工具单独开发一套接口而是直接兼容其中一种主流协议。所以你在配置时需要先确认一件事你的模型服务商提供了哪种兼容端点。例如 DeepSeek 既提供 OpenAI 兼容端点也提供了 Anthropic 兼容端点通义千问 DashScope 提供 OpenAI 兼容模式。确认好协议类型才能把正确的地址填到正确的工具里。3. 环境准备基础工具链安装在配置模型之前先确保你的机器上已经装好了必要的工具链。以下是通用步骤实际版本以你的项目环境为准。3.1 安装 Node.js 与 npmClaude Code 和 Codex CLI 都是基于 Node.js 生态的所以 Node.js 是必须的。建议安装 LTS 版本。node -v npm -v如果命令返回正常版本号说明环境已经具备。如果提示命令不存在需要先到 Node.js 官网下载安装包或者通过系统包管理器安装。3.2 安装 Claude CodeClaude Code 可以通过 npm 全局安装。安装完成后运行claude命令即可启动。npm install -g anthropic-ai/claude-code claude --version3.3 安装 Codex CLICodex CLI 的安装方式以官方文档为准常见方式是通过 npm 全局安装。安装后验证版本号npm install -g openai/codex codex --version安装完成后codex命令会在你的项目目录下创建会话并使用配置文件里的默认模型。3.4 安装配置管理工具 cc-switchcc-switch 是一个专门管理 Claude Code / Codex 多套供应商配置的开源小工具。它把每一套配置抽象成一个 Profile配置档Profile 里保存了 API Key、请求地址、模型名称、快速模型名称等信息。切换时只需要在界面里点一下工具会自动把对应配置写入到目标工具的配置文件或环境变量中部分版本还会启动本地代理来转发请求。安装方式以项目 README 为准通常是下载对应操作系统的安装包或者通过包管理器安装。安装完成后打开 cc-switch 的主界面你会看到 Claude Code 和 Codex 两个配置分组。4. 三家模型供应商的选型与 API 参数规划下面我们把三家模型供应商的具体接入参数梳理清楚。动手配置前请先准备好对应的 API Key并确认你所在的网络环境可以正常访问对应服务。4.1 Anthropic Claude配置项值服务商Anthropic 官方API 端点https://api.anthropic.com/v1模型名以官方当前模型列表为准接入工具Claude CodeAnthropic 官方是 Claude Code 的默认配置通常只需要配置ANTHROPIC_API_KEY即可。模型名以 Anthropic 官方提供的可用模型为准建议查阅最新文档。4.2 DeepSeek配置项值服务商DeepSeek 开放平台OpenAI 兼容端点https://api.deepseek.com/v1Anthropic 兼容端点以 DeepSeek 官方文档为准模型名示例deepseek-chat、deepseek-reasoner接入工具Claude Code CodexDeepSeek 的优势在于成本低并且同时提供了 OpenAI 兼容和 Anthropic 兼容两种接入协议是“一套 Key 喂两个工具”的理想选择。具体兼容端点地址请以 DeepSeek 平台文档为准不同时间段可能有调整。4.3 通义千问 Qwen配置项值服务商阿里云百炼OpenAI 兼容端点https://dashscope.aliyuncs.com/compatible-mode/v1模型名示例qwen-plus、qwen-max、qwen-coder-plus接入工具Codex通义千问主要提供 OpenAI 兼容模式因此直接接入 Codex 非常顺手。如果你希望把通义千问接入 Claude Code需要确认服务方是否提供 Anthropic 兼容端点如果没有则需要借助协议转换层不建议在没有验证的情况下直接改ANTHROPIC_BASE_URL。4.4 选型建议复杂架构设计、长上下文代码审查、多文件重构优先 Claude。大批量简单任务、日常脚本、单元测试DeepSeek。中文项目、函数级代码生成、依赖 OpenAI 兼容生态通义千问。5. Claude Code 接入 Anthropic 与 DeepSeek 的配置实战5.1 通过环境变量配置 Claude Code如果你只想临时使用某个模型可以先用环境变量方式验证。在终端里执行# 使用 Anthropic 官方 export ANTHROPIC_API_KEYsk-ant-xxxx export ANTHROPIC_BASE_URLhttps://api.anthropic.com/v1 export ANTHROPIC_MODELclaude-sonnet-4-5 export ANTHROPIC_SMALL_FAST_MODELclaude-haiku-4-5 # 启动 claude# 切到 DeepSeek 的 Anthropic 兼容端点 export ANTHROPIC_API_KEYsk-deepseek-xxxx export ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic export ANTHROPIC_MODELdeepseek-chat export ANTHROPIC_SMALL_FAST_MODELdeepseek-chat claude这种方式的优点是即时生效缺点是每个新终端都要重新执行容易遗漏。生产环境更推荐写到配置文件里。5.2 通过 settings.json 配置 Claude CodeClaude Code 的用户级配置文件位于~/.claude/settings.json支持通过env字段注入环境变量。完整示例{ env: { ANTHROPIC_API_KEY: sk-ant-xxxx, ANTHROPIC_BASE_URL: https://api.anthropic.com/v1, ANTHROPIC_MODEL: claude-sonnet-4-5, ANTHROPIC_SMALL_FAST_MODEL: claude-haiku-4-5 } }配置完成后保存文件重启claude命令配置就会生效。如果你想保存多套配置建议使用 cc-switch 这类工具来管理而不是手工来回改settings.json。5.3 在 cc-switch 中配置 Claude Code 的两套供应商cc-switch 的典型用法是新增多个 Provider然后为每个 Provider 填写 API Key、Base URL、模型名。例如Provider 名称Anthropic 官方Provider 类型Claude CodeAPI Key你自己的 Anthropic KeyBase URLhttps://api.anthropic.com/v1主模型claude-sonnet-4-5快速模型claude-haiku-4-5新增第二个 ProviderProvider 名称DeepSeekProvider 类型Claude CodeAPI Key你的 DeepSeek KeyBase URLhttps://api.deepseek.com/anthropic主模型deepseek-chat快速模型deepseek-chat保存后切到哪个 Provider 就相当于自动帮你把对应的配置写入了settings.json并从系统环境变量里清掉冲突项。这个设计最大的好处是你不会再出现“配置文件改了但环境变量还残留旧值”的问题。6. Codex 接入 OpenAI、DeepSeek 与通义千问的配置实战6.1 Codex 配置文件基础结构Codex 的配置文件路径是~/.codex/config.toml默认内容非常简单# ~/.codex/config.toml model gpt-5 model_provider openai如果你使用官方 OpenAI 模型到这步就可以运行codex了。需要接入其他模型时就要在model_providers区域里添加自定义供应商。6.2 一次性配置三家供应商下面给出一份完整的config.toml配置同时保留 OpenAI、DeepSeek、通义千问三套供应商# ~/.codex/config.toml # 默认使用 OpenAI 官方模型 model gpt-5 model_provider openai # 如果切换 DeepSeek可以将上面两行改为 # model deepseek-chat # model_provider deepseek # OpenAI 官方供应商内置可保留默认 [model_providers.openai] name OpenAI base_url https://api.openai.com/v1 env_key OPENAI_API_KEY wire_api responses # DeepSeek 供应商 [model_providers.deepseek] name DeepSeek base_url https://api.deepseek.com/v1 env_key DEEPSEEK_API_KEY wire_api chat # 通义千问供应商 [model_providers.qwen] name Qwen base_url https://dashscope.aliyuncs.com/compatible-mode/v1 env_key DASHSCOPE_API_KEY wire_api chat这份配置里的关键点有三个env_key指定了 Codex 读取 API Key 时使用的环境变量名称。比如 DeepSeek 的 Key 会从DEEPSEEK_API_KEY里读。wire_api决定了使用哪种协议格式。OpenAI 官方可以用responses而 DeepSeek 和通义千问这类兼容服务通常需要使用chat。model和model_provider是全局字段切换默认模型时改这两个字段即可。6.3 切换 Codex 模型到 DeepSeek 或千问切换方式有两种。第一种是直接修改配置文件里的model和model_provider# 切换到 DeepSeek # 将 config.toml 中的 model 和 model_provider 改为 # model deepseek-chat # model_provider deepseek # 切换到通义千问 # 将 config.toml 中的 model 和 model_provider 改为 # model qwen-plus # model_provider qwen修改配置后重启codex会话即可生效。第二种方式是使用 cc-switch 来管理 Codex 配置这样你不需要手工修改config.toml在界面上选择 Profile 后工具会自动帮你重写配置。下面单独说明完整的一键切换流程。7. cc-switch 一键切换三套配置的完整流程cc-switch 的核心价值在于把“配置切换”这件事从手工操作变成点按操作。下面是一套典型的工作流。7.1 创建三个 Profile打开 cc-switch 后分别创建三个 ProfileProfile 1Anthropic 官方作用于 Claude CodeAPI KeyAnthropic 官方 KeyBase URLhttps://api.anthropic.com/v1模型claude-sonnet-4-5Profile 2DeepSeek同时作用于 Claude Code 和 CodexAPI KeyDeepSeek KeyClaude Code Base URLhttps://api.deepseek.com/anthropicCodex Base URLhttps://api.deepseek.com/v1模型deepseek-chatProfile 3通义千问作用于 CodexAPI KeyDashScope KeyBase URLhttps://dashscope.aliyuncs.com/compatible-mode/v1模型qwen-plus保存时注意区分每个 Profile 的目标工具。有的 Profile 只配置 Claude Code有的只配置 Codex有的同时配置两者。7.2 一键切换操作切换时在 cc-switch 主界面点击对应 Profile工具会做三件事备份当前工具的配置文件。将所选 Profile 的配置写入目标位置。清理可能冲突的旧环境变量或旧配置项。操作完成后重新打开 Claude Code 或 Codex模型就已经切换完成。7.3 理解 cc-switch 的本地代理机制部分 cc-switch 版本为了兼容 Claude Code 或 Codex 的环境变量注入机制会在本地启动一个代理服务把请求先转发到本地端口再由本地代理转发到真实的模型服务商。这意味着你需要保证本地代理端口不被占用同时配置文件里的 Base URL 应该指向本地代理的端口而不是直接指向远端。配置错误时最常见的报错就是cc switch local proxy failed while handling codex endpoint /responses. provider...这个报错的意思是cc-switch 的本地代理在处理 Codex 的/responses请求时失败了后面的provider字段会指出具体是哪个供应商的配置出了问题。排查方向见第 9 节。8. 运行验证与效果检查配置完成后不能只看“界面显示成功”必须用真实的请求验证配置是否生效。8.1 验证 Claude Code 配置启动 Claude Codeclaude输入任意一句测试提问例如请用 Python 写一个读取 CSV 文件并统计每列空值数量的函数。如果回复正常说明配置链路是通的。如果出现401或model not found说明 API Key 或模型名有问题。8.2 验证 Codex 配置启动 Codexcodex同样发起一个简单任务。Codex 通常会在界面上显示当前使用的模型名称。如果你配置了 DeepSeek 或通义千问可以看到右上角或首行显示的模型名与你的配置一致。8.3 判断是否切换成功一个容易忽略的细节切换模型后旧会话可能还保持着之前的进程环境。建议的方法是完全退出当前 CLI 进程。检查对应的配置文件内容确认改动已写入。重新打开终端启动工具。如果你不确定当前生效的配置是哪套可以在启动后直接问 AI 助手“你现在使用的模型名称是什么”大部分情况下它能准确回答。9. 常见问题与排查方法下面整理了一份高频问题排查表基本覆盖了配置过程中最常见的坑。问题现象可能原因排查方式解决方案启动时报401 unauthorizedAPI Key 错误或已失效检查环境变量和配置文件中的 Key 是否一致重新生成 API Key确认没有多余空格报model not found或model does not exist模型名称与该供应商实际提供的模型不一致登录供应商后台查看可用模型列表修改配置中的模型名为正确值报cc switch local proxy failed while handling codex endpoint /responses. provider...cc-switch 本地代理无法转发到真实上游检查本地代理端口是否被占用核对 Provider 的 Base URL 和 API Key停用占用端口的进程重启 cc-switch重新验证 Provider 配置配置了多家供应商但 Claude Code 仍然走旧地址环境变量里残留了旧的ANTHROPIC_BASE_URL执行env | grep ANTHROPIC清空旧环境变量或使用unset ANTHROPIC_BASE_URLCodex 配置了 DeepSeek但请求还是到 OpenAIconfig.toml里model_provider没有改查看~/.codex/config.toml的全局字段将model_provider改为对应供应商名称通义千问接入 Codex 后响应格式错误wire_api配置不对确认服务商支持的是chat还是responses协议将wire_api改为服务商支持的协议切换 Profile 后旧会话报错旧会话仍持有旧的环境变量完全退出进程重开重启终端后再启动 Claude Code / Codex启动 codex 提示缺少环境变量未设置env_key对应的环境变量检查配置中的env_key名称在 shell 中 export 对应的 API Key9.1 local proxy failed 的深入排查local proxy failed在切换工具时非常典型。步骤是# 1. 检查本地代理端口是否在监听 lsof -i :端口号 # 2. 检查 cc-switch 进程是否正常 ps -ef | grep cc-switch # 3. 手动用 curl 测试上游端点连通性 curl https://api.deepseek.com/v1/models \ -H Authorization: Bearer $DEEPSEEK_API_KEY如果 curl 正常返回模型列表说明上游本身没问题问题定位在 cc-switch 配置文件上。如果 curl 超时或 401说明是 API Key 或网络问题和 cc-switch 无关。9.2 配置了但没生效的排查顺序如果你配置了所有文件但运行工具时仍然没有变化按以下顺序排查配置文件路径是否正确。Claude Code 是~/.claude/settings.jsonCodex 是~/.codex/config.toml。是否还有其他地方覆盖了配置。比如 shell 的.zshrc或.bashrc里 export 了同名环境变量。是否真的重启了进程。CLI 工具在启动时加载配置运行中修改不会实时生效。是否使用了代理环境变量导致请求被意外转发到其他地址。10. 最佳实践与工程建议10.1 用 Profile 管理一切不要手工改配置文件手工改配置文件在只有一套模型时问题不大但当你有了三套模型、两个工具、若干 API Key 之后人工维护的状态会迅速失控。建议从第一天就用 cc-switch 或类似的配置管理工具把每套配置作为一个命名清晰的 Profile。命名可以包含工具前缀和供应商前缀例如claude-anthropic claude-deepseek codex-openai codex-deepseek codex-qwen这样无论是在个人电脑还是团队协作中都能一眼看清楚当前用的哪套配置。10.2 环境变量优先级要心中有数Claude Code 和 Codex 都会读取环境变量而环境变量的来源非常多系统级、用户级、会话级、工具配置内注入。如果你发现配置不生效多数情况是旧的export还残留在 shell 启动文件里。建议统一约定环境变量只负责 API Key其他配置一律写在工具的配置文件里由配置管理工具统一写入。不要在.zshrc里写死ANTHROPIC_BASE_URL否则你的所有切换都会被这一行覆盖。10.3 API Key 安全边界API Key 是敏感信息不建议直接提交到 Git 仓库。以下做法比较稳妥把~/.claude/settings.json、~/.codex/config.toml加入.gitignore。使用系统密钥管理器或环境变量注入 API Key而不是把 Key 明文写在共享文档里。为不同供应商创建独立的 Key便于单独吊销和审计。10.4 生产环境切换前先备份配置切换配置前建议先备份当前配置文件cp ~/.claude/settings.json ~/.claude/settings.json.bak cp ~/.codex/config.toml ~/.codex/config.toml.bakcc-switch 切换时通常会自动备份但自己留一份更稳妥。遇到切换后工具崩溃直接用备份文件恢复即可。10.5 成本控制与任务分流配置多家模型的最终目的是让合适的任务落到合适的模型上。建议在实际项目中建立一条简单的分流规则任务类型推荐模型架构设计、复杂业务逻辑、长文档理解Claude 主模型测试代码、脚本生成、格式化、批量修改DeepSeek中文注释生成、简单函数补全、日常问答通义千问这种分流不一定能做到全自动但至少要在手动切换时有意识。时间长了你会积累出一套自己的“模型路由策略”。10.6 版本兼容性要持续关注AI 编程工具的版本迭代非常快配置文件格式、环境变量名称、协议版本都可能变化。每次升级 Claude Code 或 Codex 后建议先用最小配置跑通一个测试任务再批量恢复多套配置。遇到新版本不兼容的提示优先查看官方 changelog不要盲目追新。11. 总结这篇文章从“为什么需要给 Claude Code 和 Codex 配置多套模型”开始讲解了模型配置的核心原理包括环境变量、API 端点、兼容协议三个关键概念然后给出了完整的配置实战Claude Code 接入 Anthropic 与 DeepSeekCodex 接入 OpenAI、DeepSeek 与通义千问最后演示了用 cc-switch 建立 Profile 实现一键切换的完整流程。真正值得记住的点是多模型配置不是把一堆环境变量拼在一起而是建立一条清晰的“工具 供应商 模型”映射关系。Claude Code 看的是ANTHROPIC_*系列环境变量Codex 看的是config.toml里的model与model_provider字段cc-switch 这类工具只是把这两条链路的切换动作自动化了。理解底层逻辑之后即使未来出现新的工具、新的协议你也能快速接入。建议你接下来做一件事先在本地为 Claude Code 配置 Anthropic 与 DeepSeek 两套模型再为 Codex 配置好 DeepSeek 与通义千问然后跑一个真实的小任务验证切换效果。等三套配置都稳定运行后再去研究任务分流、成本控制和团队共享配置这些进阶内容。这篇文章先收藏备用配置过程中遇到问题随时回来查。
返回列表