目标:把 README 里的概念变成你手指的记忆。全部实验无需 API key(Lab 5 可选接 key 做精确验证)。 预计时长:60–90 分钟。
🎯 学习重点:会写并解释“输入各项 + 输出预留 ≤ 窗口”,同时证明换大窗口不能消除 context rot 与累计重发成本。
任务:运行并改造 examples/token_estimation.py。
python3 examples/token_estimation.py,确认输出正常。plan_context_budget() 中的 history_msgs 扩到能模拟 300 轮对话(约 600 条消息),观察剩余预算何时跌破 10% 阈值。model="claude-haiku-4-5"(200K 窗口),观察同样的历史何时超限——记录这个临界点。验收:能说出你的模拟对话在 Haiku 4.5 上大约多少轮超限,以及三种应对策略各自的代价。
架构师加码:
system、历史、工具定义、图片和输出预留的占比;不要只报总数。🎯 学习重点:必会 28×28 patch 的双向上取整,并识别“先按原图算”在自动缩放边界外会高估。
任务:用 ⌈宽/28⌉ × ⌈高/28⌉ 手算三张图,再用脚本验证:
| 图片 | 你的估算 | 脚本结果 |
|---|---|---|
| 800×600 截图 | ? | ? |
| 1920×1080 全高清 | ? | ? |
| 3840×2160 4K | ? | ? |
注意:手算结果要对照官方 vision 文档的两档分辨率(Claude 4.7+ 高分辨率档:长边上限 2576px、最多 4784 视觉 token;标准档:长边 1568px、最多 1568 token)——超过档位上限的图会被自动缩放,token 不会线性增长。来源: https://platform.claude.com/docs/en/build-with-claude/vision(访问于 2026-08-30)
验收:解释"为什么发 4K 图不一定花 4 倍 token",以及哪些模型吃高分辨率档。
自检边界:800×600 的原始 patch 计算为 ⌈800/28⌉×⌈600/28⌉=29×22=638;1000×1000 为 36×36=1,296。若你对 4K 直接得到远高于档位上限的数字,下一步不是把该数字用于报价,而是先按官方缩放规则求有效尺寸。
🎯 学习重点:易错题是 cache read——仍占 Context Window,但多数模型不占 ITPM;“缓存”不等于“免费”或“扩窗”。
任务:找一个你真实项目(或想象中的客服助手)的请求,列出下面每一项的 token 占用估算与来源:
| 组成 | 是否计入上下文窗口 | 计入 ITPM 速率限制? |
|---|---|---|
| system prompt | ||
| 对话历史(含 tool_result) | ||
| 工具定义 tools 数组 | ||
| 图片(28×28 patch) | ||
| 本轮输出(含 thinking) | ||
| 命中 prompt cache 的前缀(多数模型) | 计入 | 不计入(见模块 3 rate limits) |
依据:来源: https://platform.claude.com/docs/en/build-with-claude/context-windows 与 https://platform.claude.com/docs/en/api/rate-limits(访问于 2026-08-30)
验收:表格填对,特别是不掉进"缓存命中 token 也占 ITPM"的坑(多数模型不占;Haiku 3.5 例外,但它已 retired)。
审计追问:若请求已经使用 180K 输入、模型窗口 200K,而 max_tokens=64K,预算是否成立?答案是不成立:最大输出受窗口剩余量与模型自身输出上限的共同约束,不能把 200K 与 64K 相加。
🎯 学习重点:把“采样概念”与“具体模型 API 支持”分开答;4.7+ 新模型省略参数,格式保证交给 schema。
任务:截至 2026-08-30 的关键事实:temperature/top_p/top_k 仍被 Messages API 文档记录,但在 Claude Opus 4.7 及之后的模型上已弃用——非默认值直接返回 400(来源: https://platform.claude.com/docs/en/about-claude/model-deprecations(访问于 2026-08-30))。
验收:能准确说出"哪些模型还能用 temperature、哪些不能",以及确定性输出靠什么保证。
反模式检查:如果答案写“Opus 5 用 temperature: 0 保证 JSON”,同时犯了两错:请求会因非默认值返回 400;即使在仍支持该参数的模型上,低温也不能提供 schema 保证。正确链路是省略弃用参数 → Structured Output/strict tool use → 业务字段校验 → 必要时人工兜底。
🎯 学习重点:架构估算必须量化误差分布;平均误差不能替代最大误差或高分位余量。
任务:若你有 API key,写 10 段中英混合文本(含代码片段、表格),分别用 POST /v1/messages/count_tokens(Token Counting API,来源: https://platform.claude.com/docs/en/api/overview(访问于 2026-08-30))和 Lab 1.1 的启发式估算,记录误差百分比。无 key 则跳过,记住结论:报价前必须用 count_tokens,不能用字符数估。
验收:给出你测得的启发式最大误差,并说明它对成本估算的影响量级。
建议记录 文本类型 / 字符数 / 启发式 token / API token / 绝对误差 / 误差率。至少把中文、英文、代码、JSON、Markdown 表格分组;若样本仅 10 条,不要把结果外推成通用 tokenizer 比例。
🎯 学习重点:完成不等于跑过脚本;必须能用 stop_reason、usage 和预算不等式解释应用层动作。
questions/ 两份自测正确率 ≥ 80% 后进入模块 02end_turn、max_tokens 与 model_context_window_exceeded,并为每种状态给出不同处理