我如何在不降低生产力的情况下将 Claude 代码费用削减 60%
Source: Dev.to
我在 Kotlin 多平台项目中首次完整使用 Claude Code 的一个月花费了 $340。第二个月呢?$127。同样的项目、相同的开发速度、相同的输出质量。差别在于我了解了 token 实际流向——并在源头止住了“血流”。
这并不是要少用 Claude Code,而是要更聪明地使用它。下面列出的策略正是带来改变的关键,并附有我工作流中的真实数据。
隐藏成本:上下文窗口膨胀
成本的最大驱动因素并不是你发送了多少提示,而是 每次提示中携带了多少上下文。Claude Code 会话中的每条消息都包含完整的对话历史。到会话的第 30 条消息时,你实际上在发送 30 条之前的交流加上新的提示——并为每个 token 付费。
我跟踪了一周的会话,模式非常明显:
| 会话长度 | 每条提示平均成本 | 会话总成本 |
|---|---|---|
| 1‑10 条消息 | $0.08 | $0.50 |
| 11‑25 条消息 | $0.35 | $6.50 |
| 26‑50 条消息 | $0.90 | $28.00 |
| 50 条以上消息 | $1.80 | $72.00+ |
每条提示的成本呈指数增长,因为上下文会不断累积。一次 50 条消息的会话并不是 10 条消息会话的 5 倍——它的成本是 50 倍甚至更多。
策略 1:15 条消息规则
每 15 条消息 开启一个新会话——绝不例外。在重置之前,写一个简短的总结,说明你已经完成了什么以及接下来要做什么,然后用一个聚焦的提示重新开始。
Before: One marathon session (47 messages) → $34
After: Three focused sessions (15+15+12) → $9
/compact 命令也很有帮助——当上下文变长时它会压缩上下文。但重新开始更好,因为你可以只使用相关的上下文重新构建问题。
工作流程
- 工作约 15 条消息。
- 运行
/cost检查花费。 - 如果上下文变得沉重,记录你的进展。
- 用只包含必要信息的聚焦提示开启新会话。
Strategy 2: 停止一次性粘贴整个文件
我最糟糕的习惯是一次性粘贴整个文件。“看看这个文件” → 500 行 → Claude 会读取所有内容,消耗大量 token 在导入、模板代码以及无关代码上。
Before
Read src/shared/data/repository/UserRepository.kt and fix the caching bug
Result: 整个 400 行的文件都会进入上下文,其中约 350 行是无关的。
After
In src/shared/data/repository/UserRepository.kt, the getCachedUser()
function (around line 45‑60) returns stale data when the cache TTL expires.
The issue is in the timestamp comparison. Fix the cache invalidation logic.
Result: Claude 知道确切的查找位置,只读取相关部分,提供更快、更省钱、更准确的响应。
Savings: 每个文件编辑任务的输入 token 大约减少 40%。
策略 3:对简单任务使用一次性模式
交互模式非常适合探索和多步骤工作,但对于简单、定义明确的任务,一次性模式(claude -p)的成本要低得多。
交互模式(简单任务)
claude
> "Add a debug log in processPayment() before the API call"
# Minimum cost: ~$0.15 even for a one‑liner
一次性模式
claude -p "Add console.log('Processing payment:', amount) before
the fetch call in src/api/payments.ts:42"
# Cost: ~$0.03
我现在使用一次性模式来:
- 添加日志语句
- 简单的查找替换操作
- 生成样板代码(接口、数据类)
- 快速解释(“这个正则表达式做什么?”)
经验法则:如果你能用一句话描述任务且不需要来回交流,请使用 -p。
策略 4:将 CLAUDE.md 作为成本武器
一份写得好的 CLAUDE.md 文件能够以大多数人未曾意识到的方式降低成本。当 Claude Code 事先了解你的项目结构、约定和模式时,它会提出更少的澄清问题,并且错误猜测也会更少。
没有 CLAUDE.md 时
Prompt: "Add a new API endpoint for user preferences"
Claude: *reads 12 files to understand your project structure*
Claude: *asks 3 follow‑up questions about your patterns*
Claude: *generates code using wrong conventions*
You: "No, we use repository pattern, not direct DB calls"
Claude: *regenerates everything*
Total: 8 messages, $4.20
有 CLAUDE.md 时
Prompt: "Add a new API endpoint for user preferences"
Claude: *reads CLAUDE.md, knows your patterns*
Claude: *generates correct code on first try*
Total: 2 messages, $0.45
CLAUDE.md 中应包含的关键内容
- 项目结构和架构模式
- 命名约定
- 文件组织规则
- 常用模式(错误处理、日志记录、测试)
- 依赖及其使用模式
花费的 30 分钟编写 CLAUDE.md 能在第一周内收回成本。
策略 5:批量相关更改
与其每次提示只做一次修改,不如将相关的修改批量处理。每次提示都有一个基础费用(上下文窗口),因此提示次数越少,总费用越低。
昂贵的做法(5 条独立提示)
1. "Add email field to User model"
2. "Update UserRepository to handle email"
3. "Add validation for email in the UI"
4. "Write unit tests for email handling"
5. "Update API docs for the new field"
费用:5 × 基础费用 + 上下文 ≈ $2.50
批量做法(单条提示)
"Add an email field to the User model, update UserRepository,
add UI validation, write unit tests, and update API docs."
费用:1 × 基础费用 + 稍大一点的上下文 ≈ $0.80
批量处理可以减少上下文重新加载的次数,从而显著降低整体支出。
要点
- 精简上下文:每约 15 条消息重置一次,使用
/compact,避免完整文件转储。 - 选择合适的模式:简单任务使用一次性提示,复杂的多步骤工作使用交互式提示。
- 投入项目元数据:简洁的
CLAUDE.md能快速收回成本。 - 批量相关编辑:提示越少,基础费用越低。
养成这些习惯,你会发现 Claude Code 的账单从几百美元降到几分之一——而且速度和质量都不受影响。祝编码愉快!
添加电子邮件字段到用户系统
下面是向用户系统添加电子邮件字段的简要计划,随后是两种提示方法的成本节约比较。
提示大纲(5 步计划)
- 将电子邮件添加到数据模型 –
email: String在User数据类中。 - 持久化电子邮件 – 更新
UserRepository.createUser()以存储新字段。 - 验证电子邮件 – 在
CreateUserUseCase中添加电子邮件验证(标准正则表达式)。 - 更新 API – 修改
POST /users端点以接受并返回电子邮件。 - 公开电子邮件 – 在
UserResponseDTO 中包含email。
注意: 请遵循
CLAUDE.md中描述的现有模式。
成本比较
| 方法 | 提示 | 约成本 |
|---|---|---|
| Multi‑prompt | 5 个独立提示(每步一个) | ~$3.50 |
| One‑shot | 1 个综合提示(所有步骤) | ~$0.90 |
节省: 约 75 % 的成本降低,完成相同工作。
持续成本管理策略
策略 6 – 成本仪表盘习惯
- 每 5 条消息 运行一次
/cost。 - 在简易电子表格中跟踪每日支出。
- 使用数据发现高成本习惯(例如,长会话、不必要的文件读取)。
每月成本细分(前后对比)
| 类别 | 之前 | 之后 | 节省 |
|---|---|---|---|
| 长会话(50+ 条消息) | $180 | $0 | 100 % |
| 中等会话(15‑30 条消息) | $95 | $52 | 45 % |
| 简单任务(交互模式) | $45 | $12 | 73 % |
| 探索 / 阅读代码 | $20 | $18 | 10 % |
| 总计 | $340 | $127 | 63 % |
最大收获是彻底消除马拉松式会话;第二大收获是对简单任务使用一次性模式。
什么 不 要优化
- 不要回避 Claude Code 当它能为你节省数小时。一个 $2 提示可以防止 30 分钟的调试,算是划算的交易。
- 不要写模糊的提示 来节省 token;它们往往需要多次跟进,增加总体成本。
- 不要跳过读取文件 当需要上下文时。读取文件的 token 成本相对于生成错误代码来说微不足道。
目标是消除浪费,而不是消除使用。
关键要点
- 每约 15 条消息启动新会话 – 上下文累积是首要成本驱动因素。
- 指向具体行,而非整个文件 – 可将输入 token 减少约 40 %。
- 对简单任务使用
claude -p– 比交互模式便宜最多 5 倍。 - 投入
CLAUDE.md– 一周内即可收回成本。 - 批量处理相关更改 – 一个完整的提示胜过多个小提示。
- 每 5 条消息检查一次
/cost– 认识到成本会改变行为。
这些数据来源于个人在 Kotlin 多平台项目中的使用情况。您的成本会因套餐、项目规模和使用模式而异,但这些比例和策略具有普遍适用性。
