# CLI-Switch:Agent 调用 Claude Code / Codex 的正确姿势 **来源:** [微信公众号 - WilleAi笔记](https://mp.weixin.qq.com/s/_lFBObJClMx74DuJVegAaw) **作者:** 上心12138 **日期:** 2026年5月13日 02:05 **标签:** #cli-switch #ClaudeCode #Codex #Agent #AI #开发工具 --- ## 从工具箱到手术刀 三个月前作者发过一篇文章介绍 cli-switch,定位是"Agent 的 CLI 工具箱"——支持多个编码 Agent,能调很多模型。跑了一段时间后发现:做得太多,反而没有一个做得够好。 Claude Code 和 Codex 在编码场景的领先优势越来越明显,其他工具逐渐边缘化。所以整个项目重构了。 **v1.0.0** 换成了 TypeScript / Node.js,npm 安装,聚焦只做一件事: > **让 Agent 正确调用 Claude Code 和 Codex,并知道选对应的什么模型。** ### 重构带来的关键变化 - **更干净**:砍掉了不必要的 Agent 支持,专注 Claude Code + Codex - **环境隔离**:每次调用起独立子进程,不碰全局配置 - **策略引擎**:4 种执行策略——single(单步)、write_review(写完审查)、write_test_fix(写完跑测试、不过就修)、high_quality(全程 premium 模型) - **Skill 系统**:给 Agent 操作手册,自动识别 8 种能力(写代码、代码审查、重构、修 bug、分析、写测试、跑测试、解释代码) --- ## 两个人的电脑(核心痛点) Claude Code 只有一份全局配置。Agent 没法单独指定模型,只能用全局配的那个。就像两个人共用一台电脑,谁改了设置另一个都受影响。 Codex 也一样。每次调 Codex 要手动设 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`,用完还得改回来。 --- ## 一行安装,一个 Key 搞定 ```bash npm install -g cli-switch ``` 配一个环境变量: ```bash export SWITCH_API_KEY=your-gateway-key export SWITCH_BASE_URL=https://your-relay.example.com/v1 ``` Agent 调 Claude Code 时自动注入为 `ANTHROPIC_API_KEY`,调 Codex 时注入为 `OPENAI_API_KEY`。**不碰全局配置**,通过子进程临时环境变量注入,用完即焚。 --- ## 使用示例 **调 Claude Code:** ```bash cli-switch run "给 src/auth.ts 补单元测试" --agent claude-code ``` **调 Codex:** ```bash cli-switch run "重构 utils 模块" --agent codex ``` **写完自动跑测试,不过就修(最多循环 5 次):** ```bash cli-switch run "实现登录功能" --strategy write_test_fix ``` **路由预览,不花 Token:** ```bash cli-switch run "重构 auth 模块" --dry-run ``` --- ## 对比表 | | 之前 | 之后 | |---|---|---| | 调 Claude Code | 手动设环境变量,担心改全局配置 | 一条命令,自动注入 | | 调 Codex | 又得手动设一套 OpenAI 的变量 | 同一条命令,换 `--agent codex` | | Key 管理 | 中转站 Key 要手动塞给每个工具 | 配一次,两个工具都能用 | | 模型切换 | 改全局配置,影响自己正在用的 | Agent 用自己的,互不影响 | | 执行隔离 | 直接在项目里改,改坏了就麻烦 | worktree 或临时副本,随便折腾 | --- ## 与 Hermes Agent 的关联 这个工具直接解决了 Hermes Agent(以及类似 AI Agent)在调用 Claude Code / Codex 时的**环境变量冲突**和**配置隔离**问题。Hermes 的 `delegate_task` 工具配合 `acp_command` 参数可以调用 Claude Code 和 Codex,而 cli-switch 进一步简化了 Key 注入和模型选择。