AI 编程如何省 Token?SunnyCode 与 Codex 的同模型对照评测
AI 编程如何省 token?选模型之外,还可以比较使用同一模型的 Agent 产品。我们通过相同任务与统一验收,观察不同配置的 token 用量、估算成本和完成表现,再从运行记录中分析差异。
我们固定 GPT-6 Astra、中等推理强度并关闭 Fast,在三个开源仓库的八道任务上,对比 Codex、SunnyCode Base 和 CodeMode。每组每题重复三次,共 72 次运行,采用统一的主验收标准,并保留失败运行。
在这组实验中,CodeMode 平均比 Codex 少用 77.2% 的 token;SunnyCode Base 与 CodeMode 均通过 23/24 次主验收,Codex 为 21/24。结果包含失败运行,反映的是这组任务上的完整配置表现。
按同一套冻结费率估算,CodeMode 每次运行的平均成本为 $0.669,Codex 为 $1.440,低了 53.5%。SunnyCode Base 为 $0.785,比 Codex 低 45.5%。
成本为 API 等价估算,并非 ChatGPT OAuth 实际账单;统计包含未通过验收的运行。
实验数据采集于 2026 年 10 月 14 日。题目来自 p-queue、Click 和 markdown-it,覆盖异步队列、命令行界面与 Markdown 解析,包括五道自编功能任务、一道自编缺陷任务和两道上游缺陷任务。
实验是怎么做的
每次使用 GPT-6 Astra、中等推理强度、关闭 Fast,从新会话和准备好的仓库副本开始。每道题每种模式运行三次。任务结束后独立执行冻结的行为验收与仓库测试,这部分耗时不计入完成时间。比较的是完整配置,系统提示并不相同。
| 模式 | 估算成本(美元) | 平均 token | 通过 / 总数 | 平均耗时(秒) |
|---|---|---|---|---|
| Codex | $1.440 | 725,185 | 21/24 | 222.6 |
| SunnyCode Base | $0.785 | 281,080 | 23/24 | 297.1 |
| SunnyCode CodeMode | $0.669 | 165,566 | 23/24 | 232.2 |
Token 差异来自哪里
记录中的主要差异来自输入上下文。Codex 相比 CodeMode 多出的 token 中,96.5% 是缓存输入。按冻结费率拆分,估算成本差额的 70.0% 来自缓存输入,24.6% 来自非缓存输入,5.4% 来自输出。这个分解说明成本如何累计,并不单独证明某个产品设计造成了差异。
这解释了为什么 token 的降幅和成本降幅不同。CodeMode 平均少用 77.2% 的 token,估算成本低 53.5%。缓存输入有折扣,但重复累计之后仍然影响成本。
查看各分项精确数值
| 模式 | 缓存输入 | 非缓存输入 | 输出 |
|---|---|---|---|
| Codex | 670,939 | 48,574 | 5,672 |
| SunnyCode Base | 246,944 | 29,221 | 4,915 |
| SunnyCode CodeMode | 131,099 | 29,635 | 4,833 |
按任务类型比较
功能任务中,SunnyCode 的两种模式均通过 14/15 次主验收,Codex 为 12/15。两类缺陷任务中,三种模式均全部通过。这里展示每次运行的平均 token;保留了失败运行。
功能开发 · 5 道题
自编缺陷 · 1 道题
上游缺陷 · 2 道题
查看各任务类型的精确数值
| 模式 | 平均 token | 通过 / 总数 |
|---|---|---|
| 功能开发 · 5 道题 | ||
| Codex | 839,279 | 12/15 |
| SunnyCode Base | 342,539 | 14/15 |
| SunnyCode CodeMode | 201,552 | 14/15 |
| 自编缺陷 · 1 道题 | ||
| Codex | 890,709 | 3/3 |
| SunnyCode Base | 300,896 | 3/3 |
| SunnyCode CodeMode | 161,532 | 3/3 |
| 上游缺陷 · 2 道题 | ||
| Codex | 357,187 | 6/6 |
| SunnyCode Base | 117,524 | 6/6 |
| SunnyCode CodeMode | 77,620 | 6/6 |
Token 更少,不一定更快
从提交任务到最终回复保存,Codex 平均耗时 222.6 秒,CodeMode 为 232.2 秒,SunnyCode Base 为 297.1 秒。按每题三次运行的均值比较,Codex 在八道题中的六道慢于 CodeMode;但在 D、H 两题上更快,拉低了总体均值。缓存输入的累计 token 不能直接用来推断生成耗时。
如何用这些结果评估自己的工作流
比较 Agent 时,可以固定模型、推理强度、任务与验收标准,再分别记录非缓存输入、缓存输入和输出 token。把成功与失败运行都算进去,同时比较费用与耗时。我们的结果提示,选择 Agent 也值得纳入省 token 的评估;但不能保证换一个产品,在你的仓库上就能获得相同降幅。
实验限制与未通过的检查
这是八道题的 72 次运行,不是普遍的质量排名。Base 采集时间较晚,供应商状况、缓存和机器负载未随机化,半数题目来自 p-queue。成本是按冻结费率计算的 API 等价估算,并非 ChatGPT OAuth 实际账单。
补充检查仍保留 CodeMode C3 的字符串 Iterable 缺陷,以及 Codex C1 的时序敏感失败。正文中的通过率采用原有主验收口径;不能把它当成没有其他缺陷。
估算口径与计时范围
本次记录按每百万非缓存输入 token 10 美元、缓存输入 1 美元、输出 50 美元的冻结费率计算。这是实验的历史估算口径,不是当前价格声明。耗时从提交/派发前开始,到最终助手回复保存为止;独立验收耗时不计入。
任务与仓库对照
| 任务 | 仓库 | 内容 |
|---|---|---|
| A | p-queue | 批量任务结果汇总 |
| B | p-queue | 队列通知时序 |
| C | p-queue | 有界流式映射器 |
| D | p-queue | 优雅关闭队列 |
| E | Click | 环境变量提示 |
| F | Click | 规范选项别名 |
| G | markdown-it | 引用定义边界 |
| H | markdown-it | 稳定的标题 ID |
查看每道题的原始运行
| 任务 | 模式 | 重复 | USD | Tokens | 通过 / 总数 |
|---|---|---|---|---|---|
| A | SunnyCode Base | 1 | 0.7422 | 241,335 | 通过 |
| A | SunnyCode CodeMode | 1 | 0.4455 | 92,950 | 通过 |
| A | Codex | 1 | 2.0236 | 1,183,932 | 未通过 |
| A | SunnyCode Base | 2 | 0.7598 | 241,086 | 通过 |
| A | SunnyCode CodeMode | 2 | 0.4498 | 112,613 | 未通过 |
| A | Codex | 2 | 1.2592 | 641,490 | 未通过 |
| A | SunnyCode Base | 3 | 0.8306 | 272,997 | 通过 |
| A | SunnyCode CodeMode | 3 | 0.5021 | 72,994 | 通过 |
| A | Codex | 3 | 1.8760 | 1,079,699 | 通过 |
| B | SunnyCode Base | 1 | 1.0518 | 419,721 | 通过 |
| B | SunnyCode CodeMode | 1 | 0.8774 | 194,948 | 通过 |
| B | Codex | 1 | 1.6853 | 1,003,710 | 通过 |
| B | SunnyCode Base | 2 | 0.7902 | 239,038 | 通过 |
| B | SunnyCode CodeMode | 2 | 0.5975 | 145,752 | 通过 |
| B | Codex | 2 | 1.7201 | 915,126 | 通过 |
| B | SunnyCode Base | 3 | 0.6769 | 243,929 | 通过 |
| B | SunnyCode CodeMode | 3 | 0.5574 | 143,897 | 通过 |
| B | Codex | 3 | 1.5795 | 753,290 | 通过 |
| C | SunnyCode Base | 1 | 2.1219 | 1,085,571 | 通过 |
| C | SunnyCode CodeMode | 1 | 1.3020 | 297,815 | 通过 |
| C | Codex | 1 | 2.6595 | 1,296,542 | 未通过 |
| C | SunnyCode Base | 2 | 1.6082 | 581,955 | 通过 |
| C | SunnyCode CodeMode | 2 | 1.3187 | 402,219 | 通过 |
| C | Codex | 2 | 2.7419 | 1,411,174 | 通过 |
| C | SunnyCode Base | 3 | 1.9456 | 730,566 | 通过 |
| C | SunnyCode CodeMode | 3 | 1.1199 | 359,949 | 通过 |
| C | Codex | 3 | 2.9840 | 1,650,733 | 通过 |
| D | SunnyCode Base | 1 | 0.3964 | 59,718 | 未通过 |
| D | SunnyCode CodeMode | 1 | 0.8586 | 262,300 | 通过 |
| D | Codex | 1 | 1.9833 | 951,994 | 通过 |
| D | SunnyCode Base | 2 | 1.1001 | 379,470 | 通过 |
| D | SunnyCode CodeMode | 2 | 0.8817 | 221,190 | 通过 |
| D | Codex | 2 | 1.9592 | 979,874 | 通过 |
| D | SunnyCode Base | 3 | 0.9450 | 385,236 | 通过 |
| D | SunnyCode CodeMode | 3 | 0.8979 | 200,180 | 通过 |
| D | Codex | 3 | 1.7191 | 984,987 | 通过 |
| E | SunnyCode Base | 1 | 0.3308 | 83,423 | 通过 |
| E | SunnyCode CodeMode | 1 | 0.2682 | 58,949 | 通过 |
| E | Codex | 1 | 0.5933 | 308,106 | 通过 |
| E | SunnyCode Base | 2 | 0.2770 | 93,615 | 通过 |
| E | SunnyCode CodeMode | 2 | 0.2517 | 60,291 | 通过 |
| E | Codex | 2 | 0.7865 | 301,274 | 通过 |
| E | SunnyCode Base | 3 | 0.2186 | 75,385 | 通过 |
| E | SunnyCode CodeMode | 3 | 0.3160 | 47,991 | 通过 |
| E | Codex | 3 | 0.5671 | 266,115 | 通过 |
| F | SunnyCode Base | 1 | 0.4657 | 145,082 | 通过 |
| F | SunnyCode CodeMode | 1 | 0.4876 | 102,247 | 通过 |
| F | Codex | 1 | 0.9280 | 330,546 | 通过 |
| F | SunnyCode Base | 2 | 0.4528 | 152,009 | 通过 |
| F | SunnyCode CodeMode | 2 | 0.4518 | 69,422 | 通过 |
| F | Codex | 2 | 0.9449 | 357,906 | 通过 |
| F | SunnyCode Base | 3 | 0.5927 | 154,713 | 通过 |
| F | SunnyCode CodeMode | 3 | 0.5732 | 120,528 | 通过 |
| F | Codex | 3 | 0.8337 | 402,871 | 通过 |
| G | SunnyCode Base | 1 | 0.5377 | 147,887 | 通过 |
| G | SunnyCode CodeMode | 1 | 0.4625 | 103,883 | 通过 |
| G | Codex | 1 | 0.9944 | 406,652 | 通过 |
| G | SunnyCode Base | 2 | 0.5251 | 186,508 | 通过 |
| G | SunnyCode CodeMode | 2 | 0.5367 | 109,540 | 通过 |
| G | Codex | 2 | 0.7919 | 413,342 | 通过 |
| G | SunnyCode Base | 3 | 0.3804 | 118,326 | 通过 |
| G | SunnyCode CodeMode | 3 | 0.3992 | 85,068 | 通过 |
| G | Codex | 3 | 1.0203 | 447,635 | 通过 |
| H | SunnyCode Base | 1 | 0.6913 | 278,151 | 通过 |
| H | SunnyCode CodeMode | 1 | 0.7128 | 193,728 | 通过 |
| H | Codex | 1 | 1.0902 | 426,294 | 通过 |
| H | SunnyCode Base | 2 | 0.7703 | 244,969 | 通过 |
| H | SunnyCode CodeMode | 2 | 0.8946 | 271,301 | 通过 |
| H | Codex | 2 | 0.9651 | 480,409 | 通过 |
| H | SunnyCode Base | 3 | 0.6261 | 185,223 | 通过 |
| H | SunnyCode CodeMode | 3 | 0.8956 | 243,840 | 通过 |
| H | Codex | 3 | 0.8604 | 410,728 | 通过 |