资讯动态

在Claude Code中调用Codex:用ccswitch实现双编码代理协作

发布时间:2026/10/13 12:11:06 来源:尧图企业网站定制
如果你也是 Claude Code 和 Codex 两个都装了的开发者大概率经历过这种尴尬在 Claude Code 里分析完问题复制了几百行的上下文又要切到另一个终端去跑 Codex结果那边又得重新理解一遍需求。最近我在整理工具链的时候发现其实完全可以在 Claude Code 的会话里直接调用 Codex让两个 Agent 在同一个项目里分工合作。核心方案不是去改 Claude Code 的源码而是用 ccswitch 这类配置管理工具把两套 CLI 的认证和模型端点统一起来再通过 Claude Code 自带的终端执行能力把 Codex 当成一个外部命令来调用。这篇文章就把我实际配置的过程、踩过的坑和一版可以直接抄作业的方案整理出来适合已经装过其中任意一个工具、想两条腿走路的开发者。1. 为什么非要把 Codex 塞进 Claude Code1.1 两个编码代理的定位差异Claude Code 和 Codex 虽然都叫编码代理但用起来的感觉完全不一样。Claude Code 更像个项目级的协作者它对整个仓库的理解能力很强能沿着调用链翻文件适合做多文件重构、架构梳理、代码审查这类需要长上下文的活。Codex 则更像个任务级的执行者响应快生成代码的动作很直接适合写具体函数、补单元测试、修一个小范围 bug。我在实际项目里的体验是Claude Code 负责“想清楚”Codex 负责“快点写”两边各有各的节奏。但问题也出在这里。一个项目里同时用两个 CLI意味着要维护两套登录态、两套模型配置、两套上下文规则。我早期是在两个终端窗口里手动切每次从 Claude Code 切到 Codex 时都得把自己刚说过的需求再复述一遍偶尔还要把关键代码片段重新贴进去。时间一长手动切换的成本开始超过工具本身的收益于是我开始找方案能不能让 Claude Code 在会话里直接把话传给 Codex或者至少把配置层合并掉。1.2 集成方案与工具选型为什么是 ccswitch实现“Claude Code 里直接调用 Codex”的方式其实有好几种。最朴素的方式是在 Claude Code 的会话里执行 shell 命令直接调codex exec这本质上就是让 Claude Code 当一个前台把 Codex 当成后台工具。这方案可行但有个前提Codex 自己的模型端点、登录信息得先配好。如果每次调用前还要手动去改 config 文件那还不如老实切窗口。所以我会把 ccswitch 作为核心工具。ccswitch 是一个专门用来管理 Claude Code 和 Codex 配置的命令行工具它做的事情很简单把分散在各处的配置项按“配置档”集中管理需要切到哪个模型或哪套登录态时执行一条命令就能把对应配置文件写回正确的位置。这样做的好处是两套 CLI 用的是同一份配置源不会出现 Claude Code 能跑、Codex 却找不到 key 的情况。选择 ccswitch 还有一个很实际的原因它能同时管理第三方模型的 OpenAI 兼容接口。我自己平时会用 DeepSeek、Qwen、GLM 这类模型来替换默认的官方模型这在 Claude Code 和 Codex 里都可以通过设置 base URL 和模型名来实现。ccswitch 把这些参数也做进了配置档所以在 Claude Code 里调用 Codex 时Codex 跑在什么模型上和 Claude Code 用哪个模型可以在同一个面板里提前定义好。1.3 这套方案最终能做到什么效果配置完成之后我日常工作的形态变成了这样在 Claude Code 的会话里先让它做全局分析分析到某一段适合 Codex 快速生成时直接告诉 Claude Code“这里用 codex exec 跑一下”Claude Code 就会在终端里把命令执行出来。命令返回后Claude Code 还能接着读取输出继续后续的整合工作。整个过程不需要离开 Claude Code 的窗口也不需要复制粘贴上下文。从更广的影响范围看这套配置是可以给团队复用的。只要把 ccswitch 的配置档文件抽出来加上必要的密钥说明一个新成员十分钟就能拥有一套和团队一致的 Claude Code Codex 环境。后面我在第 3 节会详细讲具体的操作方式。2. 准备工作安装与配置2.1 安装 Claude Code 与 Codex CLI先说前提。Claude Code 的安装方式现在很成熟命令行版本可以直接用 npm 装如果你用的是桌面版也建议把命令行版一起装上因为后面在 VSCode 和终端里调用都需要它。安装命令很简单# 全局安装 Claude Code npm install -g anthropic-ai/claude-code # 检查版本 claude --versionCodex CLI 的安装也类似官方提供了 Node 版本。装完之后你在任何目录里都能直接执行codex命令npm install -g openai/codex # 检查是否安装成功 codex --version这里有个小提醒安装时注意 Node.js 版本我实测低于 18 的环境里两个 CLI 都会出现莫名其妙的报错比如命令装好了但一执行就退出或者提示缺少运行时依赖。Mac 和 Linux 上一般用 nvm 管 Node 版本最省事Windows 上就老老实实去官网装 LTS。2.2 安装 ccswitch 并理解它的配置体系ccswitch 的安装同样走 npm我用的是当前比较主流的发布版本npm install -g cc-switch装完先不要急着用先理解它管的是哪些文件。Claude Code 的配置通常在用户目录下的.claude/里核心文件是settings.json和.claude.json里面记录了 API 端点、账户信息、权限规则等。Codex 的配置则在~/.codex/下主要文件是config.toml和auth.json。ccswitch 做的事情就是当你切换配置档时把预置好的内容覆盖到这些位置。我第一次用 ccswitch 时犯过一个错以为它是用来启动某个服务的直接执行cc-switch后看到一堆选项有点懵。实际上它的交互很简单启动后你会看到一个配置档列表里面可以新增、修改、切换配置档。每个配置档包含两部分一部分是 Claude Code 相关的环境变量和设置另一部分是 Codex 相关的模型 endpoint 和 key。2.3 用 ccswitch 配置第三方模型兼容接口ccswitch 最有价值的地方就是支持第三方模型。我自己的主力配置档里Claude Code 和 Codex 走的是不同的模型服务但都在同一个配置档里管理。配置时需要注意不同工具的字段名不太一样。我整理了一个常用的对照表配置项Claude Code 字段Codex 字段说明API 地址ANTHROPIC_BASE_URLmodel_providers.name.base_url指向模型服务商提供的 OpenAI 兼容接口API 密钥ANTHROPIC_AUTH_TOKENmodel_providers.name.api_key服务商分配的 key模型名称ANTHROPIC_MODELmodel_providers.name.model例如deepseek-chat、qwen-plus、glm-4.6请求超时内置参数request_max_retries等网络波动时可以调整以 DeepSeek 为例在 ccswitch 的配置档里Claude Code 部分需要设置ANTHROPIC_BASE_URL为 DeepSeek 提供的 Anthropic 兼容地址而 Codex 部分的base_url则需要设置成 DeepSeek 的 OpenAI 兼容地址。这里的关键是Claude Code 和 Codex 对 API 协议的要求不完全一样Claude Code 原生用的是 Anthropic 协议Codex 用的是 OpenAI 协议好在 DeepSeek、Qwen、GLM 这些服务商现在都同时提供两种兼容协议所以一个配置档里各写各的地址就行。注意模型名称不能拍脑袋写。我之前在 Codex 配置里写了个不存在的模型标识结果调用时报错提示the gpt-5.6-sol model is not supported when using codex with a。检查了一圈才发现是模型名拼写和服务商支持的列表不一致。建议配置前先到模型服务商的文档里确认可用的模型标识。3. 在 Claude Code 里直接调用 Codex 的三种实操方式3.1 第一种会话内直接执行 codex 命令这是最直接的方式。Claude Code 支持在会话里执行终端命令你可以用!或者/terminal前缀来跑 shell。于是当我在 Claude Code 里分析完一段代码后通常会这样对它说“你先看一下这个文件的改动范围然后用 terminal 命令执行codex exec 给 utils.py 新增一个参数校验函数并补充单元测试跑完之后把结果总结给我。”Claude Code 会执行这个命令Codex 会在后台以非交互模式运行等它完成后Claude Code 会把 stdout 输出抓取回来继续处理。我实测的一个典型场景是Claude Code 先分析出某段逻辑存在边界问题然后我让它调用 Codex 直接生成修复补丁最后 Claude Code 再把补丁合并进工作区。要注意的是非交互模式下 Codex 不能做长时间的人机确认所以命令里要带上明确的验收条件。否则 Codex 执行到一半停下来等输入Claude Code 会一直卡在那里。我一般会在codex exec后面加上--skip-human-review之类的参数让它识别到我没有强制确认需求时就直接跑完。具体参数名可以看你自己装的 Codex CLI 版本用codex exec --help查询最准。3.2 第二种自定义 slash command让调用更顺手每次都让 Claude 说一遍完整的codex exec命令也不是不行但稍微有点啰嗦。我更喜欢把这条链路包装成 Claude Code 的 slash command。Claude Code 支持在~/.claude/commands/目录下放 Markdown 文件定义一个带参数的快捷命令。举个例子我创建了一个~/.claude/commands/codex.md内容大致是这样在终端中执行 Codex 非交互命令并把输出结果反思、整合进当前任务。 请执行命令codex exec $1 执行前先向用户确认命令是否需要调整执行后把标准输出里的关键结论、文件改动整理成简洁摘要。这样在 Claude Code 会话里输入/codex 修复登录接口的空指针异常Claude Code 就会自动把$1替换成后面的文字然后调用 Codex。这种方式的好处是你可以把调用 Codex 的模型选择、超时控制、审查策略等额外参数全写进模板文件里不需要每次在对话里重复。命令模板里还可以加上一环让 Claude Code 在调用完 Codex 后把 Codex 的回复内容作为新上下文继续处理。这样两个 Agent 就形成了“交接”而不是“各干各的”。我实际用下来改动大一点的任务这种交接方式比手动复制粘贴靠谱得多。3.3 第三种用 ccswitch 一键切换默认编码代理第三种方式适合那种“今天心情是 Claude Code 主力明天心情是 Codex 主力”的开发者。通过 ccswitch 的配置档你可以在同一个项目里随时切换当前生效的 CLI 工具。比如某天要处理的工作大量依赖快速生成样板代码我就在 ccswitch 里切到 Codex 配置档然后直接在项目目录执行codex不用管 Claude Code 的配置是否还挂着。切换动作本身很快一条cc-switch命令就能完成。但这里有一个重要的影响范围问题切换配置档是全局生效的也就是说如果同时开着好几个终端窗口切换后所有窗口里的 Claude Code / Codex 都会受影响。我最初不知道这点导致一边在 Claude Code 里做长任务一边切了配置档结果那边任务下半场换了模型。建议这种方式只用在“集中处理单一任务”的场景或者团队里有明确约定避免互相干扰。4. VSCode 里的联动配置与模型接入4.1 Claude Code 官方插件与 Codex 终端复用很多人会在 VSCode 里用 Claude Code所以我也把这块单独拎出来说。Claude Code 提供了 VSCode 插件装上之后能在编辑器侧边栏开一个 Claude Code 面板。这个面板本质上是复用同一个 CLI 核心所以我们在命令行里配置的 ccswitch 配置档在 VSCode 面板里同样生效。Codex 这边我也建议直接用 VSCode 终端跑 CLI而不是单独装一堆扩展。原因是Claude Code 面板可以调用 VSCode 终端双方在同一个工作区里共享文件系统。我常用的操作是在 Claude Code 面板里让它分析当前文件然后让它打开集成终端执行codex execCodex 的改动会直接落在工作区里Claude Code 能立刻看到。如果你想把两边更进一步绑定可以在 VSCode 的settings.json里把 Claude Code 插件的默认命令字体、终端复用参数调一下。我不建议做太复杂的联动否则每次启动 VSCode 都要等一堆进程初始化。保持简单最好一个面板负责对话一个终端负责跑 Codex 命令。4.2 模型标识与不支持的报错处理在 VSCode 里接第三方模型时最常遇到的就是模型标识不匹配。ccswitch 配置档里如果写了个 Codex 后端不支持的模型名执行时就会直接报错。比如我见过有人把qwen-max写成了qwen-plus-v2还有把deepseek-chat写成deepseek-v4的。这些标识不是服务商随便起的每个模型服务商的 API 文档里都会列出一串可用的名字。我在配置时总结了一个思路先拿到模型服务商的 OpenAI 兼容文档把文档里的model列表复制一份然后对着 ccswitch 配置档一个个核对。核对时不要只看名字像不像还要看这个模型是否真的支持工具调用tool use和 agentic 行为。Codex 这类编码代理对工具调用的依赖很强如果选了个不支持结构化输出的模型执行到一半可能会静默失败。另外如果你在报错信息里看到model is not supported when using codex with a这种提示大概率不是网络问题就是模型名写错了。先用codex --version确认 CLI 版本再去服务商文档确认模型标识最后在 ccswitch 里改正。层层排查下来80% 以上都是配置档的模型名问题。4.3 桌面版与命令行版的配置互通Claude Code 桌面版也是个常见入口。桌面版和命令行版在底层配置上是相通的都是读同一个.claude目录。所以你在命令行里用 ccswitch 切好配置档后桌面版启动时会直接沿用当前配置。反过来如果你在桌面版里改了某个设置命令行版本的配置也会同步变化。不过桌面版有一个特点它自带 GUI 登录流程。如果你在用 ccswitch 接入第三方模型时发现桌面版登录状态和命令行版不一致优先检查环境变量是不是被桌面版的启动脚本覆盖了。我遇到过一次桌面版把ANTHROPIC_AUTH_TOKEN设成了自己的临时值导致命令行里一切正常桌面版一打开就报认证错误。解决办法很简单在桌面版的启动参数或环境变量里显式指定同一个配置档路径。5. 常见问题与排查技巧实录5.1 登录与组织设置加载失败怎么办先说 Codex 登录。Codex 的登录信息存储在~/.codex/auth.json如果你在切换 ccswitch 配置档之后突然出现codex无法加载组织设置先别急着重新登录检查一下配置档里的组织 ID 和账户信息是不是还匹配。我遇到的情况是配置档里保存的 org id 是旧的但认证 token 已经换过导致 Codex 不知道当前该用哪个组织。解决思路是先把旧的认证信息清掉重新走一遍登录流程。在终端里执行codex login登录完成后再看 ccswitch 配置档里的org字段和project字段是否和登录账号对应。如果还是报组织设置加载失败就去~/.codex/目录下把缓存里的临时文件删掉再重试。注意不要误删auth.json不然又得重新登录。5.2 ccswitch 本地服务连接失败怎么办这是很多人在配置阶段碰到的第一道坎。在 ccswitch 里切换配置档时有时候会提示本地服务连接失败然后 Claude Code 或 Codex 就没法正常访问配置好的端点。我第一次看到这个报错很懵因为配置档明明是好的后来才发现问题出在 ccswitch 的本地机制上。ccswitch 为了在配置切换后让工具感知变化会启动一个后台监听进程。这个进程如果启动失败最常见的三个原因是端口被占用、Node 版本过旧、配置文件路径有空格或特殊字符。我当时的排查顺序是先关掉所有占用该端口的进程再用 nvm 切到最新的 LTS Node最后把用户目录的路径简化了一下问题就消失了。如果你遇到的是同样的错误不妨也按这个顺序试试。5.3 权限、密钥与团队协作的避坑指南最后聊一个容易被忽略的问题安全。ccswitch 的配置档里保存了 API Key 和模型服务商地址这玩意一旦被推到公共仓库等于把密钥白送出去。我的建议是配置档文件不要放进 Git 仓库尤其是项目根目录下如果生成了.cc-switch或类似目录一定要在.gitignore里排除掉。团队协作时我倾向于把配置档的“模板”提交到仓库里面的密钥字段留空只写清楚每个字段的含义。新成员拿到模板后自己在 ccswitch 里填入自己的密钥。这样既保留了配置的标准化又不会导致密钥漂移和误用。还有一个细节不要在 Claude Code 的对话里直接贴 API Key它可能会把内容写进历史记录文件。正确做法是让 Claude Code 读环境变量而不是读明文。5.4 关于模型调用失败的一点补充如果你已经确认模型名没问题端点也配好了但 Codex 还是调用失败这时候多半要检查网络策略。有些公司内部网络会限制外部 API 调用这属于基础网络范畴一般需要找网络管理员开放对应域名。另外某些模型服务商的免费额度很低超额后 API 会拒绝请求报错信息里通常会有 429 或者insufficient_quota字样这时候去服务商控制台看一眼余额就知道了。还有一类隐蔽问题多个配置档之间切换后Codex 的缓存里有旧模型的环境变量残留。我的习惯是切换配置档后先在新终端里执行env | grep -i codex和env | grep -i anthropic确认环境变量都是预期值再开始跑任务。这种检查 30 秒不到省下来的排查时间却是半小时起步。最后再分享两个小技巧第一个小技巧在 shell 配置文件里给 Codex 加一个短别名。我自己用alias cxcodex exec这样在 Claude Code 会话里让 Claude 执行终端命令时可以少打一串字符。别小看这点Claude 在生成命令时减少出错概率比人手动敲更稳。第二个小技巧在 Claude Code 的系统提示或者项目记忆文件里加一句“遇到需要快速生成代码的场合可以优先调用 Codex 命令”。这样 Claude Code 会更主动地使用 Codex而不是每次都要你手动吩咐。我在一个前后端项目里用了两周整体下来感觉两个 Agent 的配合越来越像真实团队里的结对编程Claude Code 负责架构和上下文Codex 负责快速落地两边各干各擅长的部分。当然这类方案迭代很快工具版本一升级参数和配置文件格式都可能有变化。如果你照着上面步骤配置时遇到不对的地方先去各自的--help和官方文档确认最新写法再结合 ccswitch 的实际交互调整。工具始终是辅助真正让效率翻倍的还是你对手头任务的理解深度。这套玩法帮我省了不少来回切换的精力希望也能帮到你。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑