很多开发者刚开始用 Claude Code 时感觉费用居高不下。实际上,通过系统性的优化,把月费从 $500 降到 $80-100 并不罕见——而且不需要牺牲功能。
这篇文章从实际账单分析入手,覆盖所有有效的 Token 节省策略。
先搞清楚钱花哪里了:用 /cost 分析
# 查看当前 Session 费用
/cost
# 查看详细 Token 使用
/usage典型输出:
当前会话费用分析
──────────────────────────
输入 Token: 78,430 ($0.31)
输出 Token: 15,240 ($0.76)
缓存读取: 234,120 ($0.02)
──────────────────────────
本次会话合计: $1.09
最贵的 3 次交互:
1. "分析整个 src/ 目录结构" → $0.38
2. "重构 auth 模块" → $0.24
3. "生成 API 文档" → $0.18
关键发现:输出 Token 通常比输入贵 3-5 倍。但输入 Token 可以通过缓存大幅降低(缓存读取只有普通输入的约 10% 成本)。
优化策略 1:合理利用缓存(最高 ROI)
Claude 会自动缓存 CLAUDE.md、规则文件等在 Session 内重复使用的内容。缓存读取成本约为普通输入的 1/10。
最大化缓存效益:
# CLAUDE.md 里把最稳定的内容放最前面
## 技术栈(很少变)
## 项目结构(偶尔变)
## 代码规范(偶尔变)
## 当前工作(每次更新) ← 放最后缓存是基于 Prompt 前缀的,稳定的内容放前面,变化的内容放后面,缓存命中率最高。
实际效果:一个每天用 2 小时 Claude Code 的开发者,正确设置后缓存可以节省 30-40% 的输入 Token 成本。
优化策略 2:按任务切换模型
不同任务用不同模型,性价比差异巨大:
| 任务类型 | 推荐模型 | 价格对比 |
|---|---|---|
| 探索/浏览代码 | Haiku 4.5 | Sonnet 的约 1/5 价格 |
| 日常开发 | Sonnet 4.5(默认) | 基准 |
| 复杂重构/架构 | Opus 4.7 | Sonnet 的约 5× |
| 代码格式化/注释 | Haiku 4.5 | 极低成本 |
| 安全审查 | Opus 4.7 | 高成本但值得 |
# 开始浏览代码时切换到 Haiku
/model claude-haiku-4-5
# 实现核心功能时切回 Sonnet
/model claude-sonnet-4-5
# 需要最强能力时
/model claude-opus-4-7省钱示例:一个 3 小时的 Session,如果探索阶段(约 1 小时)用 Haiku,实现阶段(约 2 小时)用 Sonnet,可以节省约 25-30% 成本。
优化策略 3:.claudeignore 是最有效的一次性投资
在 Claude Code 读文件之前就排除不需要的文件,根本上减少 Token 消耗。
没有 .claudeignore:Claude Code 在探索代码库时可能尝试读取 50,000+ 个文件的元数据,光这一步就消耗大量 Token。
有了 .claudeignore:只暴露几百个真正相关的文件。
# 必须排除(每个项目)
node_modules/ # 通常是最大的目录
dist/ build/ out/
.next/ .nuxt/
coverage/
*.map *.min.js
package-lock.json yarn.lock pnpm-lock.yaml
*.log *.tmp
投资回报:配置时间 5 分钟,每次 Session 节省 20-40% 的 Token(因为 Claude Code 不再浏览无关文件)。
优化策略 4:精炼 CLAUDE.md(每 Token 的价值最大化)
CLAUDE.md 在每个 Session 开始时加载,它的 Token 数直接影响每次 Session 的基础成本。
高密度 vs 低密度写法:
# 低密度写法(浪费 Token)
为了维护代码的整洁性,我们遵循关注点分离的设计原则,
因此所有数据库相关的查询逻辑应该统一放置在专门的
src/lib/db/ 目录下,而不是直接内联在各个 API 路由文件中,
这样做的好处是提高代码的可测试性和可维护性。
# 高密度写法(相同信息,少 3× Token)
DB 查询放 src/lib/db/,不要内联在 API 路由里如何精炼:
- 每条规则问自己:不写这条 Claude Code 会犯这个错吗?
- 是 → 保留
- 否 → 删除
- 通用最佳实践(Claude 已经知道的)→ 全部删除
目标:CLAUDE.md 控制在 500-800 Token 以内(约 2-3 屏文字)。
优化策略 5:Subagent 隔离上下文密集型任务
大量读文件的探索任务放在 Subagent 里,不污染主 Session:
主 Session(干净的 1,000 Token 上下文)
↓ 派发
Subagent(读了 20 个文件,消耗 50,000 Token)
↓ 返回摘要(约 500 Token)
主 Session(+ 500 Token 摘要,而不是 + 50,000 Token 文件内容)
效果:探索大代码库的任务,用 Subagent 可以减少主 Session 的 Token 消耗 80-90%。
优化策略 6:主动 /compact,不等到崩溃
上下文窗口越满,每次请求的输入 Token 越多(因为整个历史都在里面)。
在 70% 时主动压缩:
# 定向压缩,明确保留什么
/compact 保留:auth 模块实现状态和当前 TODO,删除探索过程数量级差异:
- 未压缩(90% 上下文):下一次请求约 80,000 输入 Token
- 压缩后(30% 上下文):下一次请求约 27,000 输入 Token
- 节省约 66%
优化策略 7:一次 Session 专注一个任务
同时处理多个任务的 Session 不只是上下文增大,还有更多中间输出(Claude 在任务间做总结和对比),导致 Token 消耗非线性增长。
好的习惯:
# 任务 1 完成
/clear
# 任务 2(干净的上下文)综合优化的实际效果
一个典型的"优化前 vs 优化后"对比:
| 优化前 | 优化后 | |
|---|---|---|
| CLAUDE.md 大小 | 4,200 Token | 650 Token |
| .claudeignore | 无 | 配置好(排除 90% 文件) |
| 平均 Session 长度 | 100,000 Token | 35,000 Token |
| 探索任务 | 主 Session | Subagent |
| 模型选择 | 始终 Sonnet | 按任务切换 |
| 月均成本 | $480 | $90 |
Claude Max 订阅:什么时候值得
Claude Max($100/月或 $200/月):无限制使用 Claude Code
按量计费合适的场景:
- 每月 Claude Code 用量 < $100
- 用量波动大(有些月少,有些月多)
Claude Max 合适的场景:
- 每月按量费用 > $100
- 是重度用户,需要频繁做大范围任务
- 不想担心成本导致的使用限制
按以上优化策略,大多数个人开发者能把月费控制在 $80-100 的按量计费,或者直接用 Max 获得无限制体验。
来源:Anthropic 官方文档 - 定价 | morphllm.com Claude Code 最佳实践 | code.claude.com 官方文档 | 整理:ClaudeEagle