Sunny Code

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 实际账单;统计包含未通过验收的运行。

每次运行的平均估算成本USD
Codex$1.440
SunnyCode Base$0.785
SunnyCode CodeMode$0.669
$0$0.8$1.6
同一冻结费率,包含全部计分运行。CodeMode 比 Codex 低 53.5%,Base 低 45.5%。

实验数据采集于 2026 年 10 月 14 日。题目来自 p-queue、Click 和 markdown-it,覆盖异步队列、命令行界面与 Markdown 解析,包括五道自编功能任务、一道自编缺陷任务和两道上游缺陷任务。

实验是怎么做的

每次使用 GPT-6 Astra、中等推理强度、关闭 Fast,从新会话和准备好的仓库副本开始。每道题每种模式运行三次。任务结束后独立执行冻结的行为验收与仓库测试,这部分耗时不计入完成时间。比较的是完整配置,系统提示并不相同。

模式估算成本(美元)平均 token通过 / 总数平均耗时(秒)
Codex$1.440725,18521/24222.6
SunnyCode Base$0.785281,08023/24297.1
SunnyCode CodeMode$0.669165,56623/24232.2

Token 差异来自哪里

记录中的主要差异来自输入上下文。Codex 相比 CodeMode 多出的 token 中,96.5% 是缓存输入。按冻结费率拆分,估算成本差额的 70.0% 来自缓存输入,24.6% 来自非缓存输入,5.4% 来自输出。这个分解说明成本如何累计,并不单独证明某个产品设计造成了差异。

这解释了为什么 token 的降幅和成本降幅不同。CodeMode 平均少用 77.2% 的 token,估算成本低 53.5%。缓存输入有折扣,但重复累计之后仍然影响成本。

平均 token 的组成每种模式 24 次
缓存输入非缓存输入输出
Codex725.2k
SunnyCode Base281.1k
SunnyCode CodeMode165.6k
0400k800k
缓存输入是重复送入模型、但被报告为缓存命中的 token。它仍计入总量;这里不是新增代码量或输出长度。
查看各分项精确数值
模式缓存输入非缓存输入输出
Codex670,93948,5745,672
SunnyCode Base246,94429,2214,915
SunnyCode CodeMode131,09929,6354,833

按任务类型比较

功能任务中,SunnyCode 的两种模式均通过 14/15 次主验收,Codex 为 12/15。两类缺陷任务中,三种模式均全部通过。这里展示每次运行的平均 token;保留了失败运行。

模式平均 token验收通过

功能开发 · 5 道题

Codex
839.3k
12/1580%
SunnyCode Base
342.5k
14/1593.3%
SunnyCode CodeMode
201.6k
14/1593.3%

自编缺陷 · 1 道题

Codex
890.7k
3/3100%
SunnyCode Base
300.9k
3/3100%
SunnyCode CodeMode
161.5k
3/3100%

上游缺陷 · 2 道题

Codex
357.2k
6/6100%
SunnyCode Base
117.5k
6/6100%
SunnyCode CodeMode
77.6k
6/6100%
0500k1M
三类任务共用 0–100 万 token 刻度。每个值为该类全部运行的均值,包含失败运行;验收显示通过次数 / 运行次数及通过率。
查看各任务类型的精确数值
模式平均 token通过 / 总数
功能开发 · 5 道题
Codex839,27912/15
SunnyCode Base342,53914/15
SunnyCode CodeMode201,55214/15
自编缺陷 · 1 道题
Codex890,7093/3
SunnyCode Base300,8963/3
SunnyCode CodeMode161,5323/3
上游缺陷 · 2 道题
Codex357,1876/6
SunnyCode Base117,5246/6
SunnyCode CodeMode77,6206/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 美元的冻结费率计算。这是实验的历史估算口径,不是当前价格声明。耗时从提交/派发前开始,到最终助手回复保存为止;独立验收耗时不计入。

任务与仓库对照
任务仓库内容
Ap-queue批量任务结果汇总
Bp-queue队列通知时序
Cp-queue有界流式映射器
Dp-queue优雅关闭队列
EClick环境变量提示
FClick规范选项别名
Gmarkdown-it引用定义边界
Hmarkdown-it稳定的标题 ID
查看每道题的原始运行
任务模式重复USDTokens通过 / 总数
ASunnyCode Base10.7422241,335通过
ASunnyCode CodeMode10.445592,950通过
ACodex12.02361,183,932未通过
ASunnyCode Base20.7598241,086通过
ASunnyCode CodeMode20.4498112,613未通过
ACodex21.2592641,490未通过
ASunnyCode Base30.8306272,997通过
ASunnyCode CodeMode30.502172,994通过
ACodex31.87601,079,699通过
BSunnyCode Base11.0518419,721通过
BSunnyCode CodeMode10.8774194,948通过
BCodex11.68531,003,710通过
BSunnyCode Base20.7902239,038通过
BSunnyCode CodeMode20.5975145,752通过
BCodex21.7201915,126通过
BSunnyCode Base30.6769243,929通过
BSunnyCode CodeMode30.5574143,897通过
BCodex31.5795753,290通过
CSunnyCode Base12.12191,085,571通过
CSunnyCode CodeMode11.3020297,815通过
CCodex12.65951,296,542未通过
CSunnyCode Base21.6082581,955通过
CSunnyCode CodeMode21.3187402,219通过
CCodex22.74191,411,174通过
CSunnyCode Base31.9456730,566通过
CSunnyCode CodeMode31.1199359,949通过
CCodex32.98401,650,733通过
DSunnyCode Base10.396459,718未通过
DSunnyCode CodeMode10.8586262,300通过
DCodex11.9833951,994通过
DSunnyCode Base21.1001379,470通过
DSunnyCode CodeMode20.8817221,190通过
DCodex21.9592979,874通过
DSunnyCode Base30.9450385,236通过
DSunnyCode CodeMode30.8979200,180通过
DCodex31.7191984,987通过
ESunnyCode Base10.330883,423通过
ESunnyCode CodeMode10.268258,949通过
ECodex10.5933308,106通过
ESunnyCode Base20.277093,615通过
ESunnyCode CodeMode20.251760,291通过
ECodex20.7865301,274通过
ESunnyCode Base30.218675,385通过
ESunnyCode CodeMode30.316047,991通过
ECodex30.5671266,115通过
FSunnyCode Base10.4657145,082通过
FSunnyCode CodeMode10.4876102,247通过
FCodex10.9280330,546通过
FSunnyCode Base20.4528152,009通过
FSunnyCode CodeMode20.451869,422通过
FCodex20.9449357,906通过
FSunnyCode Base30.5927154,713通过
FSunnyCode CodeMode30.5732120,528通过
FCodex30.8337402,871通过
GSunnyCode Base10.5377147,887通过
GSunnyCode CodeMode10.4625103,883通过
GCodex10.9944406,652通过
GSunnyCode Base20.5251186,508通过
GSunnyCode CodeMode20.5367109,540通过
GCodex20.7919413,342通过
GSunnyCode Base30.3804118,326通过
GSunnyCode CodeMode30.399285,068通过
GCodex31.0203447,635通过
HSunnyCode Base10.6913278,151通过
HSunnyCode CodeMode10.7128193,728通过
HCodex11.0902426,294通过
HSunnyCode Base20.7703244,969通过
HSunnyCode CodeMode20.8946271,301通过
HCodex20.9651480,409通过
HSunnyCode Base30.6261185,223通过
HSunnyCode CodeMode30.8956243,840通过
HCodex30.8604410,728通过