11. 性能与成本优化
成本结构
Claude Code 的成本主要来自三处:
- 输入 token(你发的内容、CLAUDE.md、Skill 注入、上下文)
- 输出 token(AI 回复、代码、文档)
- Agent 调用次数(每个 Agent 调用都是一次完整请求)
优化策略 1:上下文管理
用 CLAUDE.md 持久化不变信息
每次对话都重复说"我的项目是 Python 3.10,所有函数要有 type hints"很贵。写成项目级 CLAUDE.md,每个对话自动加载一次,只花一次钱。
用 /compact 压缩长对话
> /compact
把当前对话历史压缩成摘要。适合长任务中后期。
用 /clear 开启新话题
每个独立任务(改 bug / 写新功能 / 调研)用 /clear 隔开,别让无关历史污染上下文。
优化策略 2:模型选择
Claude Code 默认用 Sonnet。但不是所有任务都需要这么强的模型:
| 任务类型 | 推荐模型 | 理由 |
|---|---|---|
| 简单改写、格式化 | Haiku | 便宜 10 倍 |
| 调研、扫描 | Haiku / Sonnet | 看复杂度 |
| 代码生成 | Sonnet | 主力模型 |
| 关键决策、复杂推理 | Opus | 最贵但最准 |
在 Workflow 中显式指定:
agent("简单统计文件数量", {model: 'haiku'})
agent("设计分布式架构", {model: 'opus'})
优化策略 3:批量合并
❌ 不好:
for (const file of files) {
await agent(`分析这个文件:${file}`)
}
✅ 好:
// 一次给 10 个文件
await agent(`分析这 10 个文件: ${files.join(', ')}
输出合并后的报告`)
优化策略 4:减少不必要的输出
要求短输出
请用不超过 100 字回答。
要求结构化输出
输出 JSON,字段不超过 5 个。
不要输出过程
直接给最终结果,不需要解释你的思考过程。
优化策略 5:Workflow 级预算控制
while (budget.remaining() > 50_000) {
// 跑任务
}
不要让 Workflow 失控。
优化策略 6:缓存常用结果
如果某个调研结果会反复用到:
// 第一次跑
const data = await agent("...")
fs.writeFileSync('cache/research.json', JSON.stringify(data))
// 后续读缓存
const cached = JSON.parse(fs.readFileSync('cache/research.json'))
优化策略 7:Skill 的 description 精炼
过长的 description 会在每个对话中消耗 token 评估是否触发。保持简洁。
性能(速度)优化
1. 并行独立任务
// 慢:串行
await agent("调研 A")
await agent("调研 B")
await agent("调研 C") // 总耗时 = 3 倍
// 快:并行
await parallel([
() => agent("调研 A"),
() => agent("调研 B"),
() => agent("调研 C")
]) // 总耗时 ≈ 1 倍
2. 用更快的模型
Haiku 比 Sonnet 快 3-5 倍,适合实时交互场景。
3. 减少工具调用
Claude Code 每次工具调用(读文件、跑命令)都要时间。让 Agent 一次读多文件而不是循环读单文件。
实际案例:课程作业批改 Workflow 的优化
优化前:
- 每个学生作业用 Sonnet 单 Agent 跑
- 50 个学生 = 50 次 Sonnet 调用
- 成本高、速度慢
优化后:
// 阶段 1:便宜模型批量初筛
const initial = await pipeline(
assignments,
a => agent(`初评:${a}`, {model: 'haiku'}) // 每个几美分
)
// 阶段 2:只对可疑的用 Sonnet 细评
const flagged = initial.filter(r => r.hasIssues)
const detailed = await parallel(
flagged.map(r => () =>
agent(`细评:${r}`, {model: 'sonnet'})
)
)
return { initial, detailed }
成本可能降到原来的 1/5,速度提到 3 倍。
监控和告警
- 在 CI 中设成本上限
- 记录每次 Workflow 的 token 消耗
- 异常高的调用次数要告警
给教师的成本意识建议
- 教学场景优先用 Sonnet——性价比最好
- 批量任务用 Haiku——出题、初评、扫描
- 关键决策再用 Opus——架构选型、论文润色
- 设置月度预算上限——避免学生滥用
- 养成 /clear 习惯——保持上下文干净
下一步
- 出了问题 → 12. 调试与排错
- 想看具体教学应用 → 04. 教学场景实战