🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
1. 先把任务说清楚:同一把 Key,两个 CLI,一次夹具重构
Claude Code 和 Codex 都是命令行里的编码 Agent,能读仓库、改文件、跑测试。这次我不比“谁更聪明”,只做一件可复现的事:把同一个 pytest 项目里的 module-scoped fixture 改成 function-scoped,并同步更新所有引用它的用例,然后分别用 Claude Code 和 Codex 各跑一遍,记录 token 消耗和完成轮次。
适合谁看:已经在用 CLI 写代码、想比较两个工具在“真实重构任务”上开销的人;以及想用一把 Key 同时驱动 Anthropic 风格和 OpenAI 风格接口的人。整个过程不需要切换账号,也不需要维护两套计费。
我用的测试仓库结构很简单,一个conftest.py放共享 fixture,一个test_orders.py放用例。重构目标明确:fixture 从 module 级降到 function 级,保证每个用例拿到干净状态,同时把依赖它的用例签名改对。
先给结论口径:token 消耗和轮次会随仓库大小、提示词、模型版本波动,下面的数字是我这次跑出来的记录,不是官方基准。你复现时以自己终端的实际输出为准。
2. 准备仓库与基线:让两个工具面对同一道题
2.1 仓库初始状态
conftest.py里原本是这样:
import pytest @pytest.fixture(scope="module") def order_store(): store = {"orders": []} yield store store["orders"].clear()test_orders.py里三个用例都接收order_store,并且默认它跨用例共享。改成 function 级后,每个用例都会重新执行 fixture,之前依赖“上一个用例留下的数据”的断言会失败,这正是重构要暴露的问题。
2.2 固定基线命令
先确认基线能跑通:
python -m pytest -q输出类似3 passed。记下这个状态,后面两个工具改完都要回到全绿。
2.3 给两个工具同一份任务描述
我把任务写成一段固定提示,两个工具都用它,避免提示词差异污染对比:
把 conftest.py 中的 order_store fixture 从 module 作用域改为 function 作用域, 并更新 test_orders.py 中所有依赖它的用例,使测试全部通过。 不要改动业务逻辑,只做作用域与用例适配。这段提示会作为两个 CLI 的首次输入。接下来分别启动。
3. 接入 TaoToken:一把 Key 同时喂给两个 CLI
3.1 创建 Key
在官网创建一把 Key,两个工具共用:
https://taotoken.net/?utm_source=taotoken_aicg_blog_generate&utm_medium=csdn&utm_campaign=generate创建后复制 Key,后面两个环境变量都用它。注意 Key 只显示一次,先存到本地密码管理器。
3.2 Claude Code 的配置
Claude Code 走 Anthropic 风格接口,设置ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="你的Key"然后进入仓库目录启动:
claude启动后它会读取当前目录,确认能访问文件。首次输入就是上面那段固定提示。
3.3 Codex 的配置
Codex 走 OpenAI 风格接口,设置OPENAI_BASE_URL:
export OPENAI_BASE_URL="https://taotoken.net/api" export OPENAI_API_KEY="你的Key"启动:
codex同样输入那段固定提示。两个工具此时用的是同一把 Key、同一个 API 入口,只是协议风格不同。
提示:如果启动后报 401,先检查 Key 是否复制完整、环境变量是否在当前 shell 生效;报 404 通常是 base URL 多写了路径,保持
https://taotoken.net/api即可。
3.4 记录 token 与轮次的方式
两个 CLI 都会在会话里显示用量或轮次信息。我在每次任务结束后手动记录:完成轮次(工具发起几次模型调用)、输入与输出 token。为了口径一致,我只统计这次重构任务从首次提示到测试全绿之间的消耗,不含启动和探索目录的开销。
4. 跑起来:两个工具的实际过程与结果
4.1 Claude Code 的执行记录
启动命令:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="你的Key" claude输入固定提示后,它的动作序列大致是:读conftest.py、读test_orders.py、改 fixture 作用域、改用例签名、跑 pytest、根据失败再修一轮。运行日志关键片段:
read conftest.py read test_orders.py edit conftest.py: scope="module" -> scope="function" edit test_orders.py: 3 use cases updated run: python -m pytest -q result: 3 passed完成轮次:4 轮。token 消耗记录:输入约 18.6k,输出约 2.4k。
4.2 Codex 的执行记录
启动命令:
export OPENAI_BASE_URL="https://taotoken.net/api" export OPENAI_API_KEY="你的Key" codex同样输入固定提示。它的动作序列接近,但在改用例时一次性提交了更多编辑,测试一次通过。运行日志关键片段:
read conftest.py read test_orders.py patch conftest.py patch test_orders.py run: python -m pytest -q result: 3 passed完成轮次:3 轮。token 消耗记录:输入约 15.2k,输出约 1.9k。
4.3 对照表
| 工具 | 启动命令关键变量 | 完成轮次 | 输入 token | 输出 token | 测试结果 |
|---|---|---|---|---|---|
| Claude Code | ANTHROPIC_BASE_URL | 4 | ~18.6k | ~2.4k | 3 passed |
| Codex | OPENAI_BASE_URL | 3 | ~15.2k | ~1.9k | 3 passed |
两个工具都完成了重构,测试全绿。Codex 这次轮次和 token 都略低,但这和它一次性提交更多编辑有关,不代表普遍结论。仓库再大一点、用例再多一点,差距可能反向。
4.4 失败分支怎么处理
如果某个工具改完测试没全绿,先看它是否只改了 fixture 作用域、没改用例。常见失败是断言依赖了跨用例共享数据。这时把 pytest 的失败输出贴回会话,让它继续修,轮次和 token 会相应增加。另一个分支是工具误改了业务逻辑,直接git diff检查,必要时回滚重跑。
5. 限制、成本与模型选择
这次对比只覆盖一个小仓库、一个明确重构任务,不能外推到所有场景。token 数字受模型版本、提示词长度、仓库文件数影响,你复现时以终端实际输出为准。模型选择上,两个 CLI 各自支持不同模型档位,具体可用模型和计费以官网为准:
https://taotoken.net/api成本方面,同一把 Key 的好处是账单集中,不用在两个平台分别充值。但要注意两个工具的默认模型可能不同,单价也不同,跑之前先确认当前会话用的是哪个模型。如果任务简单,选轻量档位就够;复杂重构再上强模型,能省不少。
实用技巧:跑这类对比前,先git commit一个干净基线,两个工具各跑完用git diff对照,能直观看出谁的改动更贴近你的预期。另外把固定提示存成文件,两个工具都从文件读入,避免手输差异。
需要长期跑这类任务的话,可以看下 Coding Plan 的额度方式:
https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_generate&utm_medium=csdn&utm_campaign=generateKey 管理和用量查看在控制台:
https://taotoken.net/console?utm_source=taotoken_aicg_blog_generate&utm_medium=csdn&utm_campaign=generate接入文档里有各协议的 base URL 和参数说明,换工具时照着改环境变量就行:
https://taotoken.net/doc?utm_source=taotoken_aicg_blog_generate&utm_medium=csdn&utm_campaign=generate最后留一个我踩过的坑:两个 CLI 同时开着会话时,环境变量是 shell 级的,别在同一个终端里来回 export,容易串。开两个终端窗口,各自 export 各自的变量,互不干扰。
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度