Claude Code vs Codex 第 2 轮:3 个多文件实务任务,各运行 3 次
第 1 轮实测采用小型单文件任务,两个工具均获得满分。这次我们创建了更接近实际服务代码的小型商城项目(价格计算、库存、订单、存储,共 6 个文件),设置了像客户反馈一样只告知症状的错误、以规格文档描述的功能,以及仅在并发下单时出现的错误。
运行日期 2026-10-04
一览
- 正确率:两个工具各运行 9 次,再次全部通过所有隐藏测试。并发任务存在随机延迟,因此每次运行均评分三次,没有一次失败。
- 速度:按各任务的耗时中位数,Codex(GPT-6.1 Sol)比 Claude Code(Claude Opus 5)快约 1.3~1.9 倍。各任务相差 24~42 秒。
- token:按各任务的中位数,Claude Code 的输入 token(含缓存复用)约为 Codex 的 4~6 倍,输出 token 约为 2.5~3.7 倍。
- 工作习惯:Codex 在错误修复任务(T4)和并发任务(T6)的全部 6 次运行中都新增了回归测试文件,其中一次还修改了 README 和存储代码(store.js)。Claude Code 的全部 9 次运行均未添加测试,只修改源文件。
- 设计选择:在并发任务的全部 6 次运行中,两个工具都使用全局锁,让订单处理 '排成一队'。结果正确,但不同商品的订单也需要依次等待。
结果
耗时为 3 次运行的中位数,括号内为最快~最慢值。
| 任务 | 工具 | 通过(全部 3 次) | 耗时 | 输入 token | 输出 token | 修改行数(+/−) | |
|---|---|---|---|---|---|---|---|
| T4 多文件错误修复 · Claude Code | T4 多文件错误修复 | Claude Code | 3/3 | 60.6s (59.7–75.2) | 564,618 | 4,495 | +6 / −5 |
| T4 多文件错误修复 · Codex CLI | Codex CLI | 3/3 | 36.3s (31.9–44.2) | 94,160 | 1,363 | +4 / −4 | |
| T5 按规格添加功能 · Claude Code | T5 按规格添加功能 | Claude Code | 3/3 | 90.1s (89.8–110.6) | 592,485 | 7,366 | +42 / −2 |
| T5 按规格添加功能 · Codex CLI | Codex CLI | 3/3 | 47.8s (47–49.3) | 95,745 | 2,002 | +41 / −2 | |
| T6 并发错误 + API 改造 · Claude Code | T6 并发错误 + API 改造 | Claude Code | 3/3 | 111.9s (104.4–147.4) | 660,107 | 9,554 | +87 / −16 |
| T6 并发错误 + API 改造 · Codex CLI | Codex CLI | 3/3 | 85s (79–93.1) | 162,193 | 3,818 | +49 / −18 |
输入 token 大多包含通过缓存重新读取前序对话的部分。两个 CLI 的 token 统计方式不同,因此仅适合比较大致规模。
Claude Code 报告的 '按 API 标准价格折算的费用',本轮每个任务约为 0.78~1.25 美元。订阅账户无需另付该金额,而是扣减套餐使用额度。Codex 未报告同类数值,因此未作比较。
3 个任务
T4 多文件错误修复
仅通过 ISSUES.md 提供 4 条客户反馈(日元金额出现小数、恰好购买 10 件时未触发批量折扣、15% 优惠券产生 1 美分差额、优惠券导致总额为负),让工具从 README 中查找正确规则。错误原因分散在 money.js 和 cart.js 两个文件中。
T5 按规格添加功能
按 README 中的规格实现部分退款(refundOrder)。隐藏测试检查以下条件:退货导致不再满足批量折扣条件时退款额减少、重新计算优惠券、恢复库存、分多次退款、拒绝超额退款,以及失败时不得改变任何状态。
T6 并发错误 + API 改造
修复多人同时购买最后一件库存时全部成功、导致库存变为负数的错误,并在保留原有回调调用方式的同时支持 await。隐藏测试检查 20 人并发下单、多商品订单的死锁、全有或全无,以及错误传递方式。
所有运行使用的指令
下面的指令中,只有 'Task:' 后的一句话随任务变化。与第 1 轮实测不同,这次要求读取 'README.md 和其他文档'。
This folder is a small Node.js project (ES modules, no dependencies). Read the code, README.md and any other docs, and the tests. Task: {task} Do not modify existing test files. When you are done, make sure `node --test` passes.- T4 多文件错误修复 —
Fix the bugs reported in ISSUES.md. README.md describes the correct pricing rules. - T5 按规格添加功能 —
Implement refundOrder in src/orders.js according to the Refunds section of README.md. - T6 并发错误 + API 改造 —
Fix the problems described in the Orders section of README.md (overselling, and supporting both the Promise and the callback style).
测量方法
- 运行日期 2026-10-04(韩国时间夜间),Apple M1 Pro · macOS 26.6 · Node.js 22。与第 1 轮实测使用相同电脑、版本和设置。
- Claude Code 2.1.250 — 默认模型 Claude Opus 5(简短辅助任务也会调用 Claude Haiku 4.5)。Codex CLI 0.159.2 — 模型 GPT-6.1 Sol,推理强度 medium。
- 两个工具均使用运营者个人订阅账户,以非交互模式(claude -p、codex exec)运行,并自动允许修改文件和执行 node。在现有订阅内运行,无额外费用。
- 每个任务都交替安排运行顺序(第 1 次 Claude Code 先运行,第 2 次 Codex 先运行,第 3 次 Claude Code 先运行)。运行期间未在同一电脑上执行构建等高负载工作。
评分方法
- 每个任务设置了 3 个代理可见的测试,以及仅在评分时加入的隐藏测试(9~12 个)。隐藏测试先用运营者编写的参考答案代码验证,并将并发任务的参考答案代码重复运行 10 次,确认每次结果一致。
- 评分前将 test 文件夹恢复为原始版本。代理新增的测试文件未用于评分。
- 并发错误可能偶尔才出现,因此对所有结果在不同时间各评分三次,并记录最低分。
两个工具编写的代码有何不同
- T4:两个工具都找出了 money.js(日元小数位数、四舍五入)和 cart.js(10 件门槛、优惠券上限)中的全部 4 个错误。修改的源代码行数相近,Claude Code 为 5~9 行,Codex 为 4~5 行。Codex 三次均单独创建了回归测试文件,以复现反馈中的问题。
- T5:两个工具都按规格,通过 '按原始规则重新计算剩余商品价格,再相减' 实现退款,新增的源代码行数也相近,为 40~47 行。
- T6:两个工具在全部 6 次运行中,都将整个订单处理过程放入单一队列(全局锁),串行执行。Codex 在第 2·3 次运行中将锁设在存储层级,使使用同一存储的多个订单服务共享队列;第 1 次则在存储中新增 transaction 功能,并在 README 中添加说明。Claude Code 仅修改 orders.js 一个文件。两者均未采用按商品分别加锁的方式。
本次实测的局限
- 项目约 200 行,包含 6 个文件,规模较小。虽比第 1 轮更接近实务,但远小于实际服务代码库。
- 两个工具均获得满分,因此未能体现准确度差异。在更大的代码库或需求模糊的任务中,结果可能不同。
- 耗时会随服务器状态和网络变化。同一晚交替运行只能减少影响,无法消除影响。
- Codex 使用推理强度 medium,Claude Code 使用默认设置。未测量订阅使用额度减少了多少。
该选什么
以下是运营者基于本次实测结果的意见。
- 在本次规模的实务任务中,结果准确度也未出现差异。优先使用现有付费订阅包含的工具是合理的选择。
- 如果希望尽快运行并查看结果,本轮 Codex 同样快了 1.3~1.9 倍。
- 如果希望缩小修改范围,Claude Code 更有优势(仅修改源文件)。Codex 会主动添加回归测试,但有时也会修改未要求更改的 README 和存储代码,需要审查。
- 对于并发、性能等需要设计判断的问题,两个工具都选择了最简单的正确方案。如果吞吐量等条件很重要,请在指令中明确说明。
全部 18 次运行记录
| 任务 | 工具 | 轮次 | 秒 | 通过的测试 | 输入 token | 输出 token | 修改行数(+/−) | |
|---|---|---|---|---|---|---|---|---|
| T4 · Claude Code · 轮次 1 | T4 | Claude Code | 1 | 59.7 | 15/15 | 567,694 | 4,495 | +9 / −5 |
| T4 · Claude Code · 轮次 2 | T4 | Claude Code | 2 | 75.2 | 15/15 | 496,174 | 4,638 | +5 / −5 |
| T4 · Claude Code · 轮次 3 | T4 | Claude Code | 3 | 60.6 | 15/15 | 564,618 | 4,458 | +6 / −5 |
| T4 · Codex CLI · 轮次 1 | T4 | Codex CLI | 1 | 44.2 | 15/15 | 95,606 | 1,850 | +5 / −5 |
| T4 · Codex CLI · 轮次 2 | T4 | Codex CLI | 2 | 36.3 | 15/15 | 94,160 | 1,363 | +4 / −4 |
| T4 · Codex CLI · 轮次 3 | T4 | Codex CLI | 3 | 31.9 | 15/15 | 89,421 | 1,168 | +4 / −4 |
| T5 · Claude Code · 轮次 1 | T5 | Claude Code | 1 | 89.8 | 12/12 | 654,717 | 7,366 | +42 / −2 |
| T5 · Claude Code · 轮次 2 | T5 | Claude Code | 2 | 90.1 | 12/12 | 585,062 | 7,327 | +47 / −2 |
| T5 · Claude Code · 轮次 3 | T5 | Claude Code | 3 | 110.6 | 12/12 | 592,485 | 9,232 | +40 / −2 |
| T5 · Codex CLI · 轮次 1 | T5 | Codex CLI | 1 | 49.3 | 12/12 | 95,745 | 2,054 | +40 / −2 |
| T5 · Codex CLI · 轮次 2 | T5 | Codex CLI | 2 | 47 | 12/12 | 95,683 | 1,989 | +41 / −2 |
| T5 · Codex CLI · 轮次 3 | T5 | Codex CLI | 3 | 47.8 | 12/12 | 116,203 | 2,002 | +43 / −2 |
| T6 · Claude Code · 轮次 1 | T6 | Claude Code | 1 | 147.4 | 12/12 | 1,100,259 | 10,403 | +105 / −16 |
| T6 · Claude Code · 轮次 2 | T6 | Claude Code | 2 | 111.9 | 12/12 | 660,107 | 9,554 | +87 / −16 |
| T6 · Claude Code · 轮次 3 | T6 | Claude Code | 3 | 104.4 | 12/12 | 646,651 | 8,335 | +63 / −16 |
| T6 · Codex CLI · 轮次 1 | T6 | Codex CLI | 1 | 85 | 12/12 | 173,381 | 3,818 | +64 / −25 |
| T6 · Codex CLI · 轮次 2 | T6 | Codex CLI | 2 | 93.1 | 12/12 | 162,193 | 4,385 | +49 / −18 |
| T6 · Codex CLI · 轮次 3 | T6 | Codex CLI | 3 | 79 | 12/12 | 157,801 | 3,694 | +44 / −17 |
下载任务与评分文件
打包提供原始任务(商城代码)、隐藏测试、参考答案代码、运行脚本、18 次结果摘要(JSON)以及每次运行的 diff。
下载 coding-agents-round2-2026-10.zip