第 16 期:Q&A — Session、上下文、Token 基础
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)
(申请发送: agentupdate)
本期场景:汇集开发者在初次使用 Claude HUD 后最常问的 7 个基础问题。
Q1:Session 和对话有什么区别?
没有区别。一个 Session = 一次 Claude Code 会话 = 从启动到退出(或 /clear)。Session ID 就是 .jsonl 文件名里的 UUID。
/clear 会重置 Session(清空对话历史,开始新对话),但 Transcript 文件不变。退出 Claude Code 再启动才是真正的新 Session。
Q2:上下文窗口 200K 是什么意思?
200K = 200,000 tokens。Token 和字不是 1:1 对应:
| 语言 | 1 Token ≈ |
|---|---|
| 英文 | 0.75 个单词 |
| 中文 | 1-2 个汉字 |
| 代码 | 不规则,const x = 1; ≈ 5-7 tokens |
200K tokens ≈ 15 万个英文单词,或 30-40 万个中文字符。一本《三体》大约 88 万字,200K tokens 大概能装半本。
Q3:为什么第一次读文件上下文就跳了 40%?
Read 工具把文件全部内容作为 tool_result 塞进上下文。6 个文件(每个 200-400 行)≈ 40K-60K tokens,直接吃掉 200K 窗口的 20-30%。
避免方法:用 Grep 只搜相关行,或 Read file.ts:100:50 只读 50 行。
Q4:Input tokens 和 Output tokens 哪个贵?
Output 贵 5 倍(Opus 模型):
| Token 类型 | Opus 单价 | Sonnet 单价 |
|---|---|---|
| Input | $3/MTok | $0.80/MTok |
| Output | $15/MTok | $4/MTok |
| Cache read | $0.30/MTok | $0.08/MTok |
省 output 比省 input 更重要。caveman 模式、明确指令、"只改代码不解释" 都是在省 output。
Q5:HUD 上显示的 输入: 318 是整个会话累计的吗?
不是。Identity 行的 (输入: 318, 缓存: 66k) 是当前单次 API 请求的值。
Session Tokens 独立行(tokens 1.3M)才是会话累计。两者互补。
Q6:Session Tokens 行和 Identity 行有什么区别?
| Identity 行 | Session Tokens 行 | |
|---|---|---|
| 范围 | 单次 API 请求 | 整个会话累计 |
| 数据来源 | stdin current_usage |
transcript sessionTokens |
| 用途 | 看这一轮花了多少 | 看一共花了多少 |
Q7:上下文 95% 自动压缩会丢什么?
早期对话的细节全部丢失,只保留摘要:
- 丢失:文件内容、工具返回结果、具体代码片段、精确的错误信息
- 保留:对话的语义摘要
压缩不可逆。建议在 85% 时主动处理,而不是等到 95%。
下期预告:第 17 期继续 Q&A——Cache 机制与 Token 优化的进阶问题。