Skip to content

token 是什么

token 是模型读文字的最小单位:分词器(tokenizer)按固定词汇表把文字切成的子词片段,缓存与上下文都按 token 计量。

理解 token(地基)

token 是模型读文字的最小单位、也是缓存和上下文的计量单位。完整的可交互演示(真实 token 切分色块、空格归属、中文更费、改一字断前缀)就在本站的 缓存交互图解 第 02 节。

去真实体验

想验证什么这样做
看你当前上下文被各类内容吃了多少 token在 Claude Code 里输入 /context
看某段文字精确 token 数官方接口 POST /v1/messages/count_tokens
看本会话累计 token / 花费/cost

对你的实际意义

  • 你 CLAUDE.md/AGENTS.md 越长越占启动 token;官方建议单个 CLAUDE.md < 200 行。
  • Opus 4.7/4.8 换了新分词器,同样中文可能多花最多 35% token(但单价从 $15 降到 $5,整体更便宜)。
  • 缓存逐 token 比前缀:改 Tenant-Id: 000000 里一个数字,对应 token 变了 → 前缀从那断、之后全重算。

官方文档要点

以下为按官方文档整理的系统性参考。

是什么

模型不是一个字符一个字符地读文字,而是先用 tokenizer(分词器)按一套固定词汇表把文字切成一块块的 token,再把每个 token 换成数字编号——模型眼里是一串数字,不是字符串。token 不是字符、也不完全是单词,而是介于两者之间的子词片段。理解 token 是理解前缀缓存与上下文占用的地基:缓存逐个 token 比对前缀,上下文窗口按 token 计量。

怎么工作

  • 常见词通常是 1 个 token,生僻词/长词会被拆成多块(如 unbelievable → un|bel|iev|able)。
  • 空格通常并进它后面的 token(如 ' love' 带前导空格),所以多删一个空格都可能换一个 token。
  • 中文一个汉字通常要 1 个甚至更多 token,整体比英文更费 token。
  • 同样的字在不同位置、不同上下文里可能切法不同(BPE 会把常见组合合并成一个 token)。
  • 改 1 个字符会让对应的 token 变成另一个不同的 token——这正是前缀缓存『遇到第一个不一样的 token 就从那断』的字面含义。

怎么配置 / 用法

估算经验值(官方):

  • 英文 ≈ 4 个字符 = 1 token(≈ 0.75 个单词)
  • 中文一个汉字常 ≈ 1 个甚至更多 token
  • Opus 4.7 / 4.8 换了新分词器,同样文字可能多花最多 35% token

看精确 token 数:

  • 官方计数接口 POST /v1/messages/count_tokens
  • Claude Code 内 /context 看上下文实时占用;每次模型返回的 usage 字段(input_tokens / cache_read_input_tokens / cache_creation_input_tokens)就是服务端按真实分词算好的 token 数。

什么时候用

  • 理解前缀缓存为什么『改一个字符就从那断』时——落到 token 级才说得清。
  • 估算上下文占用 / 成本时,用经验值粗算,用 /context 或 usage 字段看精确值。

限制 / 坑

  • 精确切分依赖 Anthropic 不公开的分词器(尤其 Opus 4.7+ 的新版),本地无法 100% 复现边界,只能用经验值估算。
  • 经验值(4 字符/token 等)只是估算,真实值随语言和内容类型变化。

硬事实速查(5 条)

  • 英文 ≈ 4 字符 / 1 token ≈ 0.75 词;中文每字 ≥ 1 token。
  • Opus 4.7 / 4.8 新分词器:同样文字可能多花最多 35% token。
  • 精确计数:POST /v1/messages/count_tokens
  • Claude Code 内查占用:/context;查单轮 token:响应的 usage 字段。
  • 缓存按 token 序列逐个比对前缀;上下文窗口按 token 计量。

官方出处:https://platform.claude.com/docs/en/docs/about-claude/pricing