第1篇:token是什么?为什么中文比英文贵 50% ?

7 阅读2分钟

本系列基于 Claude Code 2.1.x、模型 claude-sonnet-4-6 写成,具体单价和参数以 Anthropic 官网为准。省钱的原理和策略不受模型版本影响。

要搞清楚钱花在哪,先搞清楚 token 是什么。

Token 是什么

Token 是 AI 模型处理文本的最小单位。

你发的每个字、每行代码,进入模型前都会被切成 token;模型输出也是一个个 token 生成的。计费按 token 数算。

切割工具叫 Tokenizer,按「子词」切分,不是按字符,也不是按单词。

为什么按子词?

三种方案的问题:

  • 按字符切(a / b / c):序列太长,单字母没语义,模型处理步骤暴增
  • 按单词切(hello / world):词表爆炸,变形词、专有名词、代码标识符根本列不完
  • 按子词切(un / believ / able):词表可控(约 5 万条),常见词完整,罕见词拆成有意义片段

核心逻辑:高频完整保留,低频拆成片段

英文:1 token ≈ 4 个字符
"hello"         → 1 token
"unbelievable"  → 3 tokens(un / believ / able)

中文:1 个汉字 ≈ 1.5~2 个 token
"你好世界"       → 4~6 tokens

中文为什么比英文贵

每个汉字在 Unicode 里占 3 个字节(UTF-8)。Tokenizer 训练时中文语料比英文少,大多数汉字没被合并成独立 token,只能以 UTF-8 字节序列存在词表里,一个汉字就可能被拆成 2~3 个 token。

情况token 数举例
高频汉字1的、是、你、好、我
普通汉字2~3绝大多数汉字
高频汉字(直接进词表):
"的" → 1 token    "你" → 1 token

普通汉字(按字节拆):
"码" → 2 tokens   "馥" → 3 tokens(生僻字)

平均下来,一个汉字 ≈ 1.52 个 token。**中文需要的 token 数是英文的 1.31.5 倍**。这就是为什么写 Skill、CLAUDE.md 推荐用英文。

怎么计费

类型说明相对价格
输入 token你发的消息 + 文件 + 历史对话1倍
输出 tokenClaude 的回复5倍
缓存写入首次写入缓存的内容1.25倍
缓存命中后续命中缓存的内容0.1倍

输出是输入的 5 倍贵——让 Claude 直接改代码、少废话,既省时间也省钱。

缓存命中只收 1/10——system prompt、历史对话反复命中缓存,实际费用远低于标价。

claude-sonnet-4-6:输入 百万,输出15 / 百万,缓存写入 百万,缓存命中0.30 / 百万。以 Anthropic 官网当前定价为准。

实际场景估算

一条指令:"修改 processOrder,增加参数校验"  → 约 25~30 tokens
一个 200 行 Java 文件                       → 约 1500~2500 tokens
10 轮对话 + 读了 3 个文件                   → 累计 50K~100K tokens

空行和注释也消耗 token。

常用Token 计算工具

工具说明
lunary.ai/anthropic-t…专为 Claude 设计,粘贴即可
tiktokenizer.vercel.app/多模型支持,可视化切分边界

Claude 使用自研 tokenizer,精确计数用 Anthropic 官方工具。


本人公众号「向好慢慢行」,欢迎大家关注。