第 6 期:令牌(Tokens)详解

⏱ 预计阅读 6 分钟 更新于 2026/5/7
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)

本期核心:Token 是 Claude Code 的货币单位。理解三类 Token 的差别,是省钱的第一步。


6.1 什么是 Token

Token 是 Claude 处理文本的基本单位:

语言 1 Token ≈ 示例
英文 4 个字符 / 0.75 个单词 "hello" ≈ 1 token
中文 1-2 个汉字 "你好" ≈ 2 tokens
代码 不规则 const x = 1; ≈ 5-7 tokens

Claude Code 每次对话涉及三类 Token:

Token 类型 方向 Opus 单价 Sonnet 单价
输入 Token 发给 Claude $3/MTok $0.80/MTok
输出 Token Claude 回复 $15/MTok $4/MTok
缓存 Token 缓存命中部分 $0.30/MTok $0.08/MTok

输出 Token 比输入 Token 贵 5 倍。省输出 Token 比省输入更重要。


6.2 输入 Token 是"累积"的

每次你发一条消息,前面所有轮次的内容都要带上。第 5 轮时,前 4 轮的所有内容(对话 + 工具结果)全部在输入里:

组成部分 每轮大小 累积效果
System prompt ~3K 固定不变
CLAUDE.md ~2K-8K 固定不变
历史对话 逐轮累积 第 1 轮 500t,第 5 轮可能 30Kt
工具结果 逐次累积 Read 一个 300 行文件 ≈ +5Kt

6.3 tool_result 才是上下文暴涨的元凶

assistant 文字回复:     "让我读取这些文件..."          ~50 tokens
assistant 工具调用:     Read("package.json")           ~30 tokens
tool_result (小文件):   package.json (38行)            ~500 tokens
tool_result (大文件):   src/index.ts (329行)           ~4,000 tokens
tool_result (bash):     npm test (200行输出)           ~3,000 tokens

结论:AI 文字回复和工具调用指令很小。tool_result(工具执行结果)才是上下文暴涨的元凶。


6.4 实战:"读取项目"的 Token 变化

═══ 第 1 轮:用户发送 "读取项目" ═══
  总输入:  8,530t   (固定部分 + "读取项目")
  缓存命中:    0t   (首轮无缓存)
  总输出:    650t   (6 个 Read 指令)

═══ 第 2 轮:工具结果返回 + Claude 总结 ═══
  总输入: 49,180t   (+40K 文件内容)
  缓存命中: 9,180t  (固定部分被缓存,省 ~90%)
  总输出:    200t   ("项目已读取完毕...")

HUD 显示:
Context ██████░░░░ 60% (120K/200K)
  Input: 49K │ Output: 1K │ Cache: 9K hit

6.5 排错循环的 Token 雪球

Round 1: Input: 12K  → Context: 20%
Round 2: Input: 25K  → Context: 35%
Round 3: Input: 50K  → Context: 55%   ← npm install 错误输出很长
Round 4: Input: 80K  → Context: 72%
Round 5: Input: 120K → Context: 90%   ← 上下文条变红色!
Round 6: 自动压缩触发 → 缓存命中率骤降

6.6 省 Token 的实用技巧

省输入 Token:

技巧 效果
Grep 替代 Read 全文件 省 80-95%
Read 指定行号范围 省 50-90%
精简 CLAUDE.md 每轮省 1K-5K
定期 /clear 防止历史累积

省输出 Token:

技巧 效果
用 caveman 模式 省 40-60% 输出
"只改代码,不解释" 直接省掉解释部分
明确指令:"修复第 42 行的 bug" 比模糊提问少 5-10 倍输出

6.7 HUD 中查看 Token

Expanded 布局(默认):

上下文 ███░░░░░░░ 33% (67k/200k) (输入: 318, 缓存: 66k)
tokens 1.3M (in: 218k, out: 5k, cache: 1.0M)
HUD 显示 含义
输入: 318 本次 API 调用的 input tokens(非累计)
缓存: 66k 缓存命中的 tokens
Session tokens 行 会话累计所有轮次的 input/output/cache

注意:identity 行的输入/缓存是单次请求的值,不是整个会话累计。


下期预告:第 7 期讲解用量限制——Pro/Max/Team 的 5 小时和 7 天窗口在 HUD 中怎么看。