大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
模型与定价
这一课你将能做到
- 说出 Opus、Sonnet、Haiku 三档模型的定位差异,并按任务难度用 /model 或 --model 正确选型
- 区分订阅(Pro/Max)与 API 计费两种模式,知道各自的用量逻辑与查看方式
- 用模型分档、/clear、/compact、prompt caching、extended thinking 五个手段把成本控制在合理区间
为什么要学
用 Claude Code 不控制模型与上下文,就像打车不看计价器:订阅用户会莫名撞上用量上限,API 用户会收到超出预期的账单。反过来,会选型的人用一半的钱干一样的活:简单查询丢给最便宜最快的模型,硬骨头才请出最强模型。这也是面试高频题——「你们如何控制 AI 辅助开发的成本」。
人话:Opus 是专家会诊,Sonnet 是全科医生(默认主力),Haiku 是分诊台护士(快、便宜)。小病别挂专家号。
先建立图像
任务难度 ↑
│ 架构设计/疑难 bug/大型重构 → Opus 深度推理,最贵最慢
│ 日常功能/修 bug/写测试/review → Sonnet 均衡,默认选择
│ 改文案/简单查询/批量小任务 → Haiku 最快最便宜
└──────────────────────────────
成本与速度 → Haiku < Sonnet < Opus
费用结构(API 用户视角):
一次请求花费 = 输入 token 费 + 输出 token 费
↑ 上下文越长越贵 ↑ 让它写得越多越贵
└ 命中 prompt cache 的输入按大幅折扣计价
跟着做
步骤 1:查看与切换模型
# 会话内
/model # 弹出模型选择界面,查看当前可用模型列表
# 启动时指定(支持别名)
claude --model opus
claude --model sonnet
claude --model haiku
以 /model 界面列出的版本为准,别名会指向当前推荐的版本。
步骤 2:看懂自己的账
/cost # 当前会话 token 用量与花费
/status # 当前账号、模型、版本等状态总览
- 订阅用户:关注的是用量限额(有小时级/周级窗口,达到后限速),
/cost对订阅用户显示的是参考信息而非扣费。 - API 用户:去 Anthropic Console 看实时账单与用量明细;
/cost显示本次会话累计。
步骤 3:主动触发深度思考
Claude 在复杂问题上可以进入 extended thinking(扩展思考)模式,先用思考 token 拆解问题再作答。口头触发,强度递增:
think # 轻度思考
think hard # 中度
think harder # 高强度
ultrathink # 最高强度,适合架构级难题
例:「ultrathink:这个分布式锁的超时方案在高并发下会不会死锁?」思考 token 也会计费,简单任务别开。
步骤 4:三档模型的日常搭配
# 日常开发:默认即可,无需指定
claude
# 批量处理 50 个文件的注释规范化:用 Haiku 控制成本
claude -p "为 $file 的公共方法补充 Javadoc" --model haiku
# 疑难杂症:临时换 Opus
claude --model opus
也可以在会话中途用 /model 随时切换,比如调研用 Sonnet、确认方案后用 Opus 实施。
步骤 5:把上下文成本压下来
/clear # 换话题即清空,输入 token 归零重来
/compact # 长任务中途压缩历史,只保留结论
配合习惯:让它读具体文件(@ 引用)而不是整个目录;长会话每 1-2 小时主动 compact 一次。
讲清楚要点
- 默认是 Sonnet 档:绝大多数任务它已足够,无脑全程 Opus 是最常见的浪费。
- 订阅与 API 是两套账:订阅按月封顶、有用量窗口,重交互日常使用;API 按 token 精确计费、可设额度,重自动化与集成。很多团队两者混合:人用订阅、CI 用 API。
- 上下文长度是成本的放大器:同样一个问题,在 10k token 上下文里问比在 2k 里问贵好几倍。控制上下文 = 控制成本 = 提升质量,三件事是一件事。
- prompt caching 自动生效:稳定的前缀(系统提示、CLAUDE.md、已读文件)命中缓存后按折扣计价,所以保持会话连贯反而比反复 /clear 更划算——「换话题才清、长会话压缩」是准绳。
- 输出侧省钱靠「要什么写什么」:明确「只要结论、不要解释」「输出 JSON 不要 markdown」,输出 token 直接下降。
你可能会懵的地方
-
模型名后面那串数字(如 4.5 / 4.1)是什么? 版本号。同一档(Opus/Sonnet/Haiku)会持续出新版。别背具体版本号,用
/model查看当前可选列表,别名会自动指向最新推荐版。 -
订阅限额用完了怎么办? 等待用量窗口重置,或切换到 API Key 按量付费继续用。两者可在
/login中切换。 -
ultrathink 和多问几遍有什么区别? extended thinking 是模型内部先做长链推理再输出,问题拆解在「脑子里」完成,质量高于让它把推理过程当答案打出来;且思考内容按思考 token 计费。
-
为什么同样的问题今天和昨天花的钱不一样? 上下文不同。会话里累积的文件内容、历史对话都是每次请求的输入。用
/cost对比,通常差异都来自上下文长度。 -
怎么向团队汇报 AI 成本? API 侧看 Console 账单按项目拆分;订阅侧按席位摊销。建议同时汇报「替代工时」口径(如每周节省的调试/写测试时间),成本才有对照意义。
错法对照
| 错法 | 问题 | 正解 |
|---|---|---|
| 所有任务都用最强模型 | 成本翻数倍,速度更慢 | 默认 Sonnet,难题才升 Opus |
| 长会话从不清理 | 输入 token 滚雪球 | 定期 /compact,换话题 /clear |
| 复杂架构问题吝啬思考预算 | 返工成本远超思考成本 | 用 ultrathink 一次想透 |
| 让它输出大段客套解释 | 输出 token 白烧 | 明确输出格式与长度 |
| API Key 提交进 git | 泄露被盗刷 | 用环境变量,密钥文件进 .gitignore |
| 模型选型全凭个人手感 | 团队成本与质量不可预期 | 把分档原则写成约定并定期用 /cost 复盘 |
卡点急救
- 频繁撞限流(429/用量上限):降低模型档位、减少并发、错峰使用;订阅用户检查是否到了窗口上限。
- 响应中途被截断:多为单次输出过长,要求「分步输出」「先给大纲确认再展开」。
- /cost 显示与账单不符:/cost 统计当前会话,Console 账单含所有会话与缓存费用,且有结算延迟;以 Console 为准。
面试常问
-
如何为不同任务选择模型档位? 按任务复杂度与容错成本分档:探索、总结、批量机械操作用低档;常规开发用中档;架构决策、疑难 bug、高风险重构用高档。再叠加 headless 中对子任务单独指定模型,实现整体最优性价比。
-
token 成本优化的系统方法? 四层:模型层(分档使用)、上下文层(/clear、/compact、@精确引用)、缓存层(利用 prompt caching,保持前缀稳定)、输出层(限定格式与篇幅)。监控用 /cost 与 Console 账单闭环。
-
prompt caching 为什么能省钱? 相同前缀(系统提示、项目记忆、公共文件)的 KV 计算结果被缓存复用,后续请求命中部分按大幅折扣计价。因此 CLAUDE.md 这类稳定内容放前面,频繁变化的内容放后面。
自测三问
- 三档模型分别适合什么任务?默认是哪一档?
- 订阅用户和 API 用户分别用什么方式监控用量?
- 为什么「换话题才 /clear、长会话用 /compact」而不是一律 /clear?
小结一句话
成本控制的本质是「上下文管理」:模型分档、会话勤理、缓存友好、输出克制,四招让同样的预算多干一倍的活。
延伸
- 成本管理官方文档
- 下一课:上下文与 CLAUDE.md——用项目记忆文件让 Claude 永久记住你的团队规范,这是效果提升最大的一课。