11. 性能与成本优化

成本结构

Claude Code 的成本主要来自三处:

  1. 输入 token(你发的内容、CLAUDE.md、Skill 注入、上下文)
  2. 输出 token(AI 回复、代码、文档)
  3. 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 消耗
  • 异常高的调用次数要告警

给教师的成本意识建议

  1. 教学场景优先用 Sonnet——性价比最好
  2. 批量任务用 Haiku——出题、初评、扫描
  3. 关键决策再用 Opus——架构选型、论文润色
  4. 设置月度预算上限——避免学生滥用
  5. 养成 /clear 习惯——保持上下文干净

下一步