PART 01
13.1 故事:从$200到$2000,我的AI账单去哪了?
小明和阿强是好朋友,都是程序员。
小明的情况:
每月AI账单:$215
使用体验:非常好,流畅、快速、答案准确
任务类型:日常编程、代码审查、文档撰写
阿强的情况:
每月AI账单:$2,180
使用体验:卡、慢、经常超出上下文
任务类型:和 小明一样
什么导致了10倍的成本差距?
不是他们用的AI服务不同,不是他们的项目复杂度不同,而是——小明懂Token经济学,阿强不懂。
///
PART 02
13.2 什么是Token?
13.2.1 Token的直观理解
Token是AI处理文本的基本单位。可以把Token理解为AI的「一口饭」。
| 你吃一口饭 | AI处理一个Token |
|---|---|
| 每顿饭要吃很多口 | 每个词要拆成多个Token |
| 吃得多 = 花钱多 | Token多 = 成本高 |
| 可以控制吃几口 | 可以控制Token数量 |
Token的换算规则:
英文Token估算:
- 1个单词 ≈ 1.3 Tokens
- "hello world" = 2 Tokens
- 一页纸 ≈ 500-800 Tokens
中文Token估算:
- 1个汉字 ≈ 1-2 Tokens
- "你好世界" ≈ 4 Tokens
- 一篇1000字的文章 ≈ 1500-2000 Tokens
13.2.2 上下文窗口的消耗来源
你每次和AI对话,消耗的Token来自五个地方:
总Token消耗 = 输入Token(你的问题)
+ 输出Token(AI的回答)
+ 推理Token(AI的思考过程)
+ 缓存读Token(从上下文读取)
+ 缓存写Token(写入上下文)
最容易忽略的消耗:工具调用输出
一次 Playwright 页面快照 = 56 KB ≈ 42,000 Tokens
一次 GitHub Issues 查询(20条)= 59 KB ≈ 44,000 Tokens
一次访问日志读取 = 45 KB ≈ 34,000 Tokens
如果每次对话有3-5次工具调用,
上下文窗口可能在一小时内就被填满!
///
PART 03
13.3 模型选择矩阵:让对的人干对的事
13.3.1 三大模型定位
Anthropic的三驾马车(Haiku、Sonnet、Opus)各有分工:
| 模型 | 价格 | 速度 | 能力 | 最佳用途 |
|---|---|---|---|---|
| Haiku | $0.25/1M Tokens | ⚡ 闪电快 | 基础任务 | 探索、搜索、简单编辑 |
| Sonnet | $3/1M Tokens | ⚡ 快 | 均衡高手 | 日常编码、多文件实现 |
| Opus | $15/1M Tokens | 🐢 慢 | 最强推理 | 复杂架构、安全分析 |
价格差异:
Haiku vs Opus:
- 速度:Haiku 比 Opus 快 10倍
- 价格:Haiku 比 Opus 便宜 60倍
- 能力差距:简单任务几乎无差距
结论:
能用Haiku的地方用Haiku,能省60倍钱!
13.3.2 任务类型 → 推荐模型
┌─────────────────────────────────────────────────────────────┐
│ │
│ 任务类型判断 │
│ │
│ 是简单任务吗?(搜索、找文件、改一行代码) │
│ ↓ 是 │
│ → 使用 Haiku(最便宜,80%的情况够用) │
│ │
│ 是日常编码吗?(多文件实现、代码审查) │
│ ↓ 是 │
│ → 使用 Sonnet(性价比最佳) │
│ │
│ 是复杂任务吗?(架构设计、安全漏洞分析、深度推理) │
│ ↓ 是 │
│ → 使用 Opus(最强推理能力) │
│ │
└─────────────────────────────────────────────────────────────┘
13.3.3 详细任务映射表
| 任务类型 | 推荐模型 | 原因 |
|---|---|---|
| 搜索文件 | Haiku | 快速、够用 |
| 阅读代码理解逻辑 | Sonnet | 需要一定推理 |
| 简单编辑(一行代码) | Haiku | 指令清晰 |
| 多文件重构 | Sonnet | 需要理解上下文 |
| 架构设计 | Opus | 复杂推理 |
| 安全漏洞分析 | Opus | 不能遗漏 |
| 写测试用例 | Haiku/Sonnet | 取决于复杂度 |
| Bug调试(简单) | Haiku | 定位明确 |
| Bug调试(复杂) | Opus | 需要深度分析 |
| 代码审查 | Sonnet | 性价比最佳 |
| 代码审查(安全相关) | Opus | 安全无小事 |
| 写文档 | Haiku | 结构简单 |
| 技术方案设计 | Sonnet/Opus | 取决于复杂度 |
| API设计 | Sonnet | 需要上下文 |
| 数据库设计 | Opus | 复杂关联 |
13.3.4 成本对比实例
场景:审查50个代码文件
用 Opus 审查 50 个文件:
- 输入:50个文件 × 平均 5KB = 250KB ≈ 187,500 Tokens
- 每千Token成本:$15 / 1M = $0.015
- 单次成本:$15 × 0.1875 = $2.81
- 如果每天审查5次 = $14/天 × 30天 = $420/月
用 Haiku 审查 50 个文件(并行,4个Agent):
- 每个Agent处理12-13个文件
- 输入:每个Agent约 50KB ≈ 37,500 Tokens
- 单次成本:$0.25 / 1M × 0.0375 = $0.009/Agent
- 4个Agent并行 × $0.009 = $0.036/次
- 如果每天审查5次 = $0.18/天 × 30天 = $5.4/月
对比:$420/月 vs $5.4/月 = 78倍差距
///
PART 04
13.4 OpenCode推荐配置
13.4.1 settings.json最佳配置
{
"model": "sonnet",
"env": {
"MAX_THINKING_TOKENS": "10000",
"CLAUDE_CODE_SUBAGENT_MODEL": "haiku"
}
}
13.4.2 配置解析
| 设置项 | 默认值 | 推荐值 | 效果 |
|---|---|---|---|
model | opus | sonnet | 成本降低 60% |
MAX_THINKING_TOKENS | 31,999 | 10,000 | 隐藏成本降低 70% |
CLAUDE_CODE_SUBAGENT_MODEL | 继承主模型 | haiku | 子任务便宜 80% |
为什么这三个设置最重要?
1. model: sonnet
- 日常任务用 Sonnet 就够了
- Opus 的能力在80%的情况下用不上
- 60%成本直接省下来
2. MAX_THINKING_TOKENS: 10000
- AI的「思考过程」也消耗Token
- 默认值31,999太高了
- 限制到10,000,70%思考成本省下来
3. CLAUDE_CODE_SUBAGENT_MODEL: haiku
- 子Agent不需要用主模型的配置
- 子任务通常是简单任务
- 用Haiku,80%子任务成本省下来
13.4.3 进阶配置
{
"model": "sonnet",
"env": {
"MAX_THINKING_TOKENS": "10000",
"CLAUDE_CODE_SUBAGENT_MODEL": "haiku",
"ECC_SUBAGENT_MODEL_OVERRIDE": "haiku"
},
"compaction": {
"auto_trigger_threshold": 0.75,
"summarize_model": "haiku"
}
}
压缩配置说明:
"compaction": {
"auto_trigger_threshold": 0.75, // 75%时自动压缩
"summarize_model": "haiku" // 压缩用Haiku生成摘要(便宜)
}
///
PART 05
13.5 Token计算小工具
13.5.1 估算公式
输入Token ≈ 字符数 / 4(中文)或 字符数 / 4(英文)
输出Token ≈ 字数 / 2(中文)或 单词数 / 0.75(英文)
工具输出Token ≈ 文件大小KB × 750
13.5.2 在线计算器
Anthropic官方Token计算器:
https://anthropic.com/context-window-calculator
13.5.3 实际计算示例
场景:和AI讨论一个代码库
对话内容:
- 你的问题:200字中文 ≈ 400 Tokens
- AI回答:500字中文 ≈ 1000 Tokens
- 读取10个代码文件:10 × 10KB × 750 = 75,000 Tokens
- 工具输出(bash命令):5KB × 750 = 3,750 Tokens
单次对话总Token:
400 + 1000 + 75000 + 3750 = 82,150 Tokens
按Sonnet价格:$3/1M Tokens
单次成本:$3 × 0.082 = $0.246
如果每天50次对话:
$0.246 × 50 = $12.3/天 × 30天 = $369/月
13.5.4 压缩后的成本对比
未优化的情况:
- 每天50次对话
- 每次读取10个文件
- 上下文窗口经常满
- 月账单:$1,200
优化后的情况:
- 每天50次对话
- 每次读取用Think in Code代替
- 上下文窗口控制在75%以下
- 月账单:$280
节省:77%
///
PART 06
13.6 成本监控命令
13.6.1 /cost命令
在OpenCode中,使用/cost命令查看当前会话开销:
/cost
预期输出:
┌─────────────────────────────────────────────────────────────┐
│ 当前会话成本统计 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 模型:Sonnet (claude-sonnet-4-20250514) │
│ │
│ 输入Tokens:125,432 │
│ 输出Tokens:45,891 │
│ 推理Tokens:23,456 │
│ 总Tokens:194,779 │
│ │
│ 当前成本:$0.58 │
│ 预计本月成本:$348(基于当前使用模式) │
│ │
│ 与上月相比:-12%(优化生效中) │
│ │
└─────────────────────────────────────────────────────────────┘
13.6.2 成本趋势分析
/cost --trend
预期输出:
┌─────────────────────────────────────────────────────────────┐
│ 成本趋势(近30天) │
├─────────────────────────────────────────────────────────────┤
│ │
│ 日均成本:$11.6 │
│ 最高单日:$28.3(周三 - 大量代码审查) │
│ 最低单日:$3.2(周末 - 轻度使用) │
│ │
│ 优化建议: │
│ 1. 周三使用的子Agent可以切换到Haiku,预计节省$8/周 │
│ 2. 上下文压缩阈值可以降到70%,减少压缩频率 │
│ │
└─────────────────────────────────────────────────────────────┘
13.6.3 成本异常检测
/cost --alert --threshold 20
当单日成本超过$20时,自动发送提醒。
///
PART 07
13.7 战略性压缩时机
13.7.1 什么时候压缩?
✅ 应该压缩的时机:
1. 探索完成后
- 用Explore Agent分析完代码库
- 已经获得关键信息
- 接下来要开始实现
→ 压缩,保留分析结论
2. 完成里程碑后
- 功能开发完成
- 测试全部通过
- 准备提交代码
→ 压缩,保留完成状态
3. 调试完成后
- Bug已定位并修复
- 测试验证通过
- 继续新工作前
→ 压缩,保留修复方案
4. 重大上下文切换前
- 从分析切换到实现
- 从一个模块切换到另一个
- 从调试切换到文档
→ 压缩,保留关键上下文
❌ 不应该压缩的时机:
1. 调试进行中
- 正在定位Bug
- 上下文包含关键调试信息
- 压缩可能丢失线索
2. 实现进行到一半
- 正在写一个复杂函数
- AI需要记住之前的实现细节
- 压缩可能导致逻辑断层
3. 多步骤推理中途
- AI正在执行复杂推理
- 已经进行了10步中的第7步
- 压缩会打断推理链条
13.7.2 压缩时机图解
时间线
─────────────────────────────────────────────────────────────→
探索阶段 ──→ 实现阶段 ──→ 测试阶段 ──→ 提交阶段
↓ ↓ ↓ ↓
压缩 ✓ 不压缩 ✗ 压缩 ✓ 不压缩 ✗
↓ ↓ ↓ ↓
保留分析 调试中 保留 准备提交
结论 测试结果
///
PART 08
13.8 MCP管理的成本考量
13.8.1 MCP的Token开销
每个MCP连接都有额外的Token开销:
| 开销类型 | 估算值 |
|---|---|
| 每个MCP的Schema描述 | ~500 Tokens |
| MCP工具列表 | ~300 Tokens |
| MCP响应头 | ~200 Tokens |
| 单次MCP调用总开销 | ~1,000 Tokens |
13.8.2 MCP开销累积
10个MCP连接 × 500 Tokens(Schema)= 5,000 Tokens/次
如果每天100次对话 = 500,000 Tokens/天
按Sonnet价格 = $3/1M = $1.5/天 × 30 = $45/月
13.8.3 MCP管理建议
原则:配置20-30个MCP,实际启用 < 10个
策略:
1. 按需启用
/mcp enable github # 只需要GitHub时启用
/mcp disable github # 用完后禁用
2. 用CLI替代MCP
gh CLI → GitHub MCP($45/月)→ 直接用CLI($0)
3. 合并MCP
多个小MCP → 合并成一个,减少Schema开销
4. 活跃工具控制
/mcp # 查看活跃服务器和上下文代价
活跃工具 < 80 个
13.8.4 MCP vs CLI对比
| 操作 | MCP | CLI | 结论 |
|---|---|---|---|
| GitHub PR审查 | MCP | gh pr review | CLI更好 |
| 文件搜索 | MCP | rg | CLI更好 |
| 数据库查询 | MCP | psql | CLI更好 |
| Notion读写 | MCP | API | MCP更方便 |
| Slack消息 | MCP | Webhook | MCP更方便 |
原则:对于高频操作,优先用CLI省成本;对于低频但复杂的操作,用MCP提效率。
///
PART 09
13.9 子Agent保护上下文
13.9.1 子Agent的上下文隔离
子Agent(Task Tool)有一个重要特性:每次调用都是独立的Session,不继承主Session的历史。
主Session:
- 上下文窗口:200,000 Tokens
- 当前消耗:150,000 Tokens(75%)
子Agent调用:
- 新Session创建
- 从干净状态开始
- 上下文窗口:200,000 Tokens
- 当前消耗:0 Tokens
13.9.2 利用子Agent节省上下文
错误做法:在主Session中读取大量文件
主Session:
Read file1 → 10KB
Read file2 → 10KB
Read file3 → 10KB
...
Read file50 → 10KB
主Session上下文:500KB被塞满
正确做法:用子Agent读取,主Session只接收摘要
主Session:
/subagent "explore-agent" "分析src/auth目录"
子Agent(独立Session):
Read file1 → 10KB
Read file2 → 10KB
...
Read file20 → 10KB
分析完成 → 返回摘要
主Session接收:
"用户认证模块分析结论:共20个文件,核心逻辑在login.ts..."
主Session上下文:只增加5KB
对比:
| 方式 | 主Session消耗 | 子Session消耗 |
|---|---|---|
| 主Session读取 | 500KB | 0 |
| 子Agent读取 | 5KB(摘要) | 500KB |
///
PART 10
13.10 成本优化实战案例
13.10.1 案例1:日常代码审查
原始做法:
你:用Opus审查这个50文件的代码库
AI:开始审查...
结果:
- 耗时:30分钟
- 成本:$8.50
- 上下文:满了
优化做法:
你:用Sonnet + 子Agent并行审查
AI:
Agent 1: 审查文件1-10(Haiku)
Agent 2: 审查文件11-20(Haiku)
Agent 3: 审查文件21-30(Haiku)
Agent 4: 审查文件31-40(Haiku)
Agent 5: 审查文件41-50(Haiku)
汇总审查结果
结果:
- 耗时:8分钟(并行)
- 成本:$0.35
- 上下文:清爽
节省:95%成本,75%时间
13.10.2 案例2:Bug调试
原始做法:
你:用Opus帮我调试这个Bug
AI:看了代码,找不到问题
你:用Haiku再看看
AI:看了,还是找不到
你:还是用Opus吧
AI:找到了...
结果:
- 3次模型切换
- 成本:$12.50
- 上下文:混乱
优化做法:
你:用Haiku定位问题,如果需要深度分析再告诉我
阶段1(Haiku):
- 快速扫描代码
- 定位到3个可疑点
- 回报:"需要Opus深度分析login.ts:45"
阶段2(Opus):
- 深度分析login.ts:45
- 找到根因
- 提供修复方案
阶段3(Haiku):
- 实施修复
- 验证修复
结果:
- 模型切换:2次(按需)
- 成本:$2.80
- 上下文:清晰
节省:78%成本
13.10.3 案例3:技术文档撰写
原始做法:
你:用Opus帮我写API文档
AI:好的,开始写...
写了100页文档
结果:
- 成本:$15.00
- 质量:一般(Opus太聪明,容易过度设计)
优化做法:
你:用Haiku帮我写API文档
AI(Haiku):
- 结构清晰
- 重点突出
- 符合团队风格
结果:
- 成本:$0.25
- 质量:足够好
节省:98%成本
///
PART 11
13.11 月度成本规划
13.11.1 成本预算表
基于使用模式的月度成本估算
| 任务类型 | 占比 | 模型 | 月Token | 月成本 |
|--------------|------|--------|---------|---------|
| 探索/搜索 | 30% | Haiku | 10M | $2.50 |
| 日常编码 | 40% | Sonnet | 20M | $60.00 |
| 复杂分析 | 20% | Sonnet | 10M | $30.00 |
| 深度推理 | 10% | Opus | 5M | $75.00 |
|--------------|------|--------|---------|---------|
| **总计** | 100%| - | 45M | **$167.50** |
13.11.2 成本优化检查清单
□ 模型选择正确(简单任务用Haiku)
□ MAX_THINKING_TOKENS设置在10000以下
□ 子Agent使用Haiku
□ 按需启用/禁用MCP
□ 使用Think in Code代替大量读取
□ 在正确时机压缩(75%阈值)
□ 使用/cost监控成本趋势
□ 避免在调试中途压缩
□ 子Agent读取文件,主Session只接收摘要
□ 高频操作用CLI代替MCP
///
PART 12
13.12 本章小结
核心要点
- Token是AI的「一口饭」:吃得越多,花钱越多
- 三大模型分工:
- Haiku:探索、搜索、简单任务(最便宜)
- Sonnet:日常编码、多文件实现(性价比最佳)
- Opus:复杂架构、安全分析(最贵但最强)
- 三个关键配置:
model: sonnet→ 60%成本降低MAX_THINKING_TOKENS: 10000→ 70%隐藏成本降低CLAUDE_CODE_SUBAGENT_MODEL: haiku→ 80%子任务成本降低
- 压缩时机:
- ✅ 探索后、实现后、里程碑后
- ❌ 调试中、实现中、推理中途
- MCP成本:每个MCP增加约500 Tokens/schema开销
- 子Agent隔离:用子Agent读取大量文件,主Session只接收摘要
- CLI替代MCP:高频操作用CLI省成本
实践建议
✅ 养成习惯:用Haiku处理简单任务,省60倍钱
✅ 配置好三个关键参数,每月自动省60-80%成本
✅ 用/cost监控成本趋势
✅ 按需启用MCP,不要全开
✅ 用子Agent做探索,主Session保持清爽
❌ 不要用Opus处理简单任务(浪费)
❌ 不要在调试中途压缩(丢失上下文)
❌ 不要让所有MCP一直开着(浪费Token)
❌ 不要在主Session读取大量文件(塞满上下文)
下一步
学会了如何省钱,下一步是让AI连接更多工具——
下一章:MCP扩展——用插件让AI连通一切,让AI能够读写Notion、管理Linear任务、帮你发Slack消息。
THANKS FOR READING
🦐 龙虾 · OpenClaw 技术分享
夜雨聆风