每个模型的定价页面都只显示一个数字:每百万 token 的价格。但这个数字在不同供应商之间无法直接比较,因为“token”并非固定长度的文本。每个模型的 tokenizer 会将同一份文件切分成不同数量的片段,而你按片段付费。我们统计了所有前沿 tokenizer 下相同字节数的内容。同一份 TypeScript 文件,在 GPT-5.x 上是 681 个 token,而在 Claude 最新的 tokenizer 下则是 1,178 个 token——在考虑任何价格差异之前,就已经相差 1.73 倍。而且,Claude 的新 tokenizer 在相同标价下,比它自己上一代 tokenizer 多产生约 31% 的 token。如果你使用 AI 编程智能体进行开发,你的工作负载主要是代码——而这恰恰是差距最大的领域。
定价页面隐藏的数字
一个模型的账单由两个数字相乘得出:
成本 =(你的内容转化成的 token 数量)×(每个 token 的价格)
定价页面只显示第二个数字,并将第一个数字视为常量。但它并非常量。它是模型 tokenizer 的一个属性——tokenizer 是将你的文本切分成计费单位的组件。两个模型可以标出同样的“5.00 美元 / 1M 输入 token”,但针对同一段文字,给你的账单却不同,因为其中一个模型将这段文字转化成的 token 数量比另一个更多。
没有人公布“每单位内容的 token 数量”这个数字,所以也没有人比较它。于是我们测量了它。两个发现:
- 同一供应商:Anthropic 的新 tokenizer 在相同标价下,对同一段代码产生的 token 数量比其上一代多约 30%。这是一次无声的涨价。
- 跨供应商:在代码方面,Claude 的新 tokenizer 产生的 token 数量是 GPT 的 1.50 到 1.73 倍——而 TypeScript,即编程智能体编写最多的语言,情况最为严重。
我们的测量方法
我们选取了 16 个真实样本:英文散文、一个 HTML 页面、JavaScript、Python、TypeScript 和 Rust 文件、JSON 工具 schema 和工具结果、中文聊天和散文、符号密集的文本,以及我们自己的实时智能体系统提示词。我们对每个样本,在每个模型的真实 tokenizer 下,逐字节进行了统计。没有生成,没有估算——只有 token 计数:
- Anthropic(Claude)——使用 Anthropic 官方的 count_tokens 端点。具有权威性:这与 Anthropic 用于计费的计数完全相同。
- OpenAI(GPT)——通过 tiktoken 记录在案的 o200k_base tokenizer。对于最新模型,我们并未盲目信任:我们实际调用了 GPT-5.1、GPT-5.5 和 GPT-5.6 Sol 的 API,读取了实时用量计数,并使用长减短差值法消除了请求框架的影响。三者均与 o200k_base 完全一致(比值为 1.0000)。
- Google(Gemini)和 xAI(Grok)——各自使用自家的 token 计数端点。
在本文中,GPT 的 o200k 作为 1.00 倍的参考标尺。它之所以是合适的标尺,是因为它不会变动:o200k 早已被冻结并公开记录。Claude 的 tokenizer 才是不断变化的部分。有两个模型被刻意排除在外:DeepSeek 和 GLM。对于它们,我们只有粗略的字符数除以四的估算,而非真正的 tokenizer,而编造出来的数字正是本文要揭露的问题。
发现一:标价相同,token 多出约 30%
这是数据集中最清晰的情况,因为费率表上的任何内容都没有变动。Claude Opus 4.6 和 Opus 4.8 的定价完全相同,均为 5.00 美元 / 25.00 美元。唯一的变化是 tokenizer:旧版 tokenizer 搭载于 Sonnet 4.6 和 Opus 4.6,新版 tokenizer 搭载于 Sonnet 5、Opus 4.8 和 Fable 5。每一行的字节数相同,供应商相同,且均在 Anthropic 自家的端点上计数:
| 内容 | 旧 tokenizer | 新 tokenizer | 变化 |
|---|---|---|---|
| 英文散文(2,115 字符) | 476 | 636 | +34% |
| HTML 页面(3,195 字符) | 1,131 | 1,302 | +15% |
| JavaScript(1,933 字符) | 659 | 794 | +20% |
| Python(2,251 字符) | 831 | 1,022 | +23% |
| TypeScript(2,888 字符) | 898 | 1,178 | +31% |
| Rust(2,924 字符) | 1,019 | 1,312 | +29% |
| JSON 工具 schema(9,948 字符) | 2,631 | 3,306 | +26% |
| 我们的智能体系统提示词(42,661 字符) | 10,761 | 14,953 | +39% |
| 中文散文(379 字符) | 435 | 433 | ~0% |
按照真实智能体请求的构成方式混合这些内容——主要是英文系统提示词、工具 schema、代码和 JSON——新 tokenizer 每次请求大约多出 +32%。请注意最后一行:中文几乎没有任何变化。这种膨胀是英文和代码带来的效果。
所谓的"降价"并非如此
这重新诠释了一条看似是好消息的新闻标题。Claude Sonnet 5 的定价为 $2.00 / $10.00,低于 Sonnet 4.6 的 $3.00 / $15.00。但这只是首发优惠价,该价格将于 2026 年 8 月 31 日结束。在优惠期内,费用大致相抵:Sonnet 5 生成的 token 数量多出约 32%,但每个 token 的收费却低了三分之一,因此总体成本略低。到了 9 月 1 日,价格将回调至 $3.00 / $15.00——而 +32% 的 token 膨胀则保持不变。从那天起,在相同的标价下,同样的代码在 Sonnet 5 上的成本比在 Sonnet 4.6 上高出约 32%。这个折扣只是一个过渡缓冲,而非降价。
我们已通过实际账单进行了验证
token 计数器在你收到账单之前都只是一个承诺,因此我们还实际发送了付费请求(max_tokens: 1),并读取了每个提供商实际收取的 usage.input_tokens。对于相同的内容:Opus 4.6 计费 2,541 个输入 token,Opus 4.8 计费 3,191 个——两者都与各自的 count_tokens 预测精确匹配。这种膨胀体现在发票上,而不仅仅是估算器中。
我们特意在最昂贵的模型上多花了这笔调用费,因为“相同的 tokenizer,没什么特别的”正是本文所质疑的那种说法。对于相同的内容,Fable 5 计费了 3,191 个输入 token——与 Opus 4.8 完全一致——因此 Fable 运行的是相同的新 tokenizer,并按实际计数收费。没有隐藏的每 token 附加费:Fable 的昂贵体现在其标价($10 / $50)上,而非秘密的 token 税。这次验证的总成本约为 0.08 美元。
发现 2:代码上的差距最大
现在来看跨厂商的对比。下面的每个数字都是相对于 GPT 对同一文件 token 计数的倍数——GPT 的 o200k 是 1.00x 的标尺,因此 1.20x 意味着“比 GPT 多出 20% 的 token”。Claude 的新旧 tokenizer 并列展示,这样你就能同时看到新 tokenizer 增加了多少,以及 Claude 原本就比 GPT 高出多少:
| 内容 | Claude(新版) | Claude(旧版) | Gemini 3 Flash | Grok 4.5 |
|---|---|---|---|---|
| TypeScript | 1.73x | 1.32x | 1.16x | 1.05x |
| Rust | 1.58x | 1.22x | 1.19x | 1.05x |
| JavaScript | 1.52x | 1.26x | 1.23x | 1.11x |
| Python | 1.50x | 1.22x | 1.20x | 1.09x |
| HTML 页面 | 1.36x | 1.18x | 1.08x | 1.04x |
| 英文散文 | 1.40x | 1.05x | 1.01x | 1.00x |
| 中文散文 | 1.44x | 1.45x | 0.85x | 0.86x |
| 中文聊天 | 1.53x | 1.55x | 0.91x | 0.92x |
代码行的压缩效率明显高于其他内容。TypeScript 的差距最大,达到 1.73 倍,但并非孤例:Rust 为 1.58 倍,JavaScript 为 1.52 倍,Python 为 1.50 倍——均远高于英文散文的 1.40 倍。这并非 TypeScript 的偶然现象,而是整个代码类别的普遍规律,只是 TypeScript 位居榜首。而代码正是 AI 编程智能体全天候生成的内容,因此 1.50-1.73 倍这个区间直接对应你的账单——而非英文段落那更温和的 1.40 倍。
为什么偏偏是 TypeScript
因为 GPT 的 o200k 分词器在处理 TypeScript 时异常高效:大约每 token 对应 4.24 个字符,这正是一个大量基于网络 JavaScript 和 TypeScript 训练的分词器的特征——其中驼峰式标识符和 JSX 模式会被压缩成单个 token。这种效率在 Rust 上有所下降(约 3.51 字符/token),而 Claude 的分词器在两种语言上密度则较为接近。TypeScript 之所以成为异常值,是因为一家供应商针对你实际编写的语言优化了其分词器,而另一家没有。差距最大的地方,恰恰是 GPT 最强的领域。
中文内容则呈现出另一番景象
在中文处理上,Claude 的 token 消耗量大约是 GPT 的 1.45 到 1.55 倍——但这是针对两种分词器而言。旧版:435 个 token 对比 GPT 的 300 个。新版:433 个。这种额外开销并非新版本带来的,而是 Claude 系列在 CJK(中日韩)字符上长期存在的劣势,新版分词器并未触及这一问题。(实际上,Gemini 在中文上击败了 GPT:256 个 token 对比 GPT 的 300 个。)这里的启示并非“某个模型总是最便宜”,而是:哪个分词器会向你收取额外费用,以及收取多少,完全取决于你写的是什么内容。
这对价格意味着什么
将公开标价乘以实测的差异倍数,就得到了有效价格——即你为处理相同工作量实际支付的费用。这里的差异倍数是一个针对真实英文编码请求的混合乘数,以 GPT 的 o200k 分词器为基准归一化。GPT 系列按标价计费;其他所有模型则根据它们对相同内容生成的 token 数量(更多或更少)进行缩放调整:
| 模型 | 标价(输入/输出,单位:$/M token) | 差异倍数 | 有效价格(输入/输出,单位:$/M token) |
|---|---|---|---|
| GPT-5.1 | $1.25 / $10.00 | 1.00x(基准) | $1.25 / $10.00 |
| GPT-5.5 | $5.00 / $30.00 | 1.00x | $5.00 / $30.00 |
| GPT-5.6 Sol | $5.00 / $30.00 | 1.00x(已验证) | $5.00 / $30.00 |
| Grok 4.5 | $2.00 / $6.00 | 1.03x | $2.06 / $6.18 |
| Gemini 3 Flash | $0.50 / $3.00 | 1.09x | $0.55 / $3.27 |
| Claude Sonnet 4.6 | $3.00 / $15.00 | 1.14x(旧分词器) | $3.42 / $17.10 |
| Claude Sonnet 5(介绍) | $2.00 / $10.00 | 1.50x(新分词器) | $3.00 / $15.00 |
| Claude Sonnet 5(自 9 月 1 日起) | $3.00 / $15.00 | 1.50x | $4.50 / $22.50 |
| Claude Opus 4.6 | $5.00 / $25.00 | 1.14x(旧分词器) | $5.70 / $28.50 |
| Claude Opus 4.8 | $5.00 / $25.00 | 1.50x(新分词器) | $7.50 / $37.50 |
| Claude Fable 5 | $10.00 / $50.00 | 1.50x(新分词器) | $15.00 / $75.00 |
读了几行数据。Opus 4.6 和 4.8 的标价都是 $5.00 / $25.00,但实际有效价格相差约 32%——这是发现一,现在用美元表示。GPT-5.5 和 GPT-5.6 Sol 的标价和有效价格都相同,因为它们使用相同的已验证分词器:这两个 GPT 层级之间的区别在于能力,而非隐藏的 token 税。Gemini 3 Flash 的实际价格仍然最便宜——它的分词器运行起来比 GPT 的略重,但它的标价足够低,因此影响不大。
一个来自独立数据点的佐证:Ploy 本周发布了一篇关于生产环境迁移到 GPT-5.6 Sol 的文章,报告称对于相同的构建任务,输入 token 量为 170 万,而 Claude Opus 4.8 则需要 260 万——大约少了 35%。这是真实的账单,而非合成探针,它综合了更精简的分词器和模型自身的冗长程度。测量方法不同,但方向一致。
诚实的范围:1.4 倍到 1.73 倍,而非“2 到 4 倍”
你会看到有人声称 Claude 使用的 token 量是 GPT 的 2 到 4 倍。我们的测量结果不支持这一说法,夸大其词反而会削弱真正的问题所在。按内容类型,Claude 的新分词器与 GPT 的 o200k 分词器对比:
- 英文散文、HTML、JSON:大约 1.36 倍到 1.42 倍。
- 代码(Python、JavaScript、Rust、TypeScript):大约 1.50 倍到 1.73 倍,其中 TypeScript 的差距最大。
- 中文及符号密集的文本:大约 1.44 倍到 1.53 倍。
这是真实存在的、影响显著的、值得在定价时考虑的因素——但范围是有限的。我们在标题中放入 TypeScript 的数据,原因只有一个且很诚实:这是该范围的最高值,也是 AI 编程智能体整天处理的内容,因此这个数字对应的是真实的账单。展示你实际的工作负载并非选择性摘取——但如果说“Claude 在所有场景下都是 1.73 倍”则是错误的,我们也没有这样声称。精确才是关键:如果散文的诚实数字是 1.4 倍,却称之为 3 倍,那整个论点就很容易被驳倒。
如果你构建一个智能体,英文决定了你的 token 税。
一个内容为中文的聊天机器人最应关注上面那些中日韩(CJK)字符行。但在编程智能体中,几乎每个请求都以英文脚手架为主导:系统提示词、工具架构、代码、JSON。在我们的混合测试中,无论用户聊天消息是英文还是中文,Claude 的新分词器始终比 GPT 多约 1.5 倍的 token——在数万个脚手架 token 面前,单行聊天消息的差异几乎可以忽略不计。对于智能体而言,分词器在英文和代码上的表现才是关键数字,无论使用者是谁。
如何真正比较模型价格
- 基于你的实际内容进行比较,而不是看标价。你的语言和文件类型决定了倍数。在相信价目表之前,先用每个分词器运行一个有代表性的样本。
- 把分词器变更视为价格变动。当供应商以“相同价格”推出新模型时,检查分词器是否发生了变化。从 Opus 4.6 到 4.8,虽然没有单独列项,但实际成本增加了约 32%。
- 以每任务美元数来衡量,而不是每 token 美元数。“这个构建实际花费了多少”将分词器和模型的冗长程度结合在一起。供应商自己的使用量字段才是真实依据。
- 把 $/Mtok 当作起点,而不是答案。它必要且有用——但在不同分词器之间无法直接比较。
这些都不意味着某个模型是普遍正确的选择。GPT-5.x 在英文和代码上是 token 最节省的选择;Gemini 3 Flash 的实际效果出奇地便宜;Claude 的模型即使运行成本更高,也凭借质量赢得了自己的地位。诚实的解读很简单:你比较的价格应该是你实际支付的价格——在分词器之后,而不是之前。
数据来源(请自行核实标价):Anthropic 定价(anthropic.com/pricing)、OpenAI 定价(platform.openai.com/docs/pricing)、Google Gemini API 定价(ai.google.dev)、xAI 定价(docs.x.ai)。token 计数来自 Anthropic 的 count_tokens 端点、OpenAI 的 o200k_base(已与实际 API 使用量核对),以及 Google 和 xAI 的计数端点。生成这些计数时未使用任何文本。
Playcode 让所有这些模型都只需一键切换,因此你可以在两个模型上运行相同的提示词,并比较真正重要的结果——它构建的应用——而不是争论标价。在 playcode.io 上试试吧。