Files
obsidian-notes/InBox/CLI-Switch-Agent调用ClaudeCode-Codex的正确姿势.md
Build Bot f7310caea0 同步
2026-05-18 01:20:38 +08:00

92 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CLI-SwitchAgent 调用 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.jsnpm 安装,聚焦只做一件事:
> **让 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 注入和模型选择。