AI 编程代理成本控制实战(Cursor/Claude Code/Cline/Aider)
AI 编程代理一不留神账单就能从几十美金变成几百。问题不在工具贵,而在没人在用之前算清楚 token 消耗。本文给一份可执行的成本控制方法论。
一、先理解钱花在哪
跑一次 Cursor / Claude Code 任务,token 大体分四块:
| 部分 | 占比 | 优化空间 |
|---|---|---|
| system prompt + 工具 schema | 5–15% | 中(缓存可省) |
| 项目上下文(文件) | 30–60% | 高(裁剪) |
| 对话历史 | 15–40% | 高(压缩 / 重置) |
| 本次输入 + 输出 | 5–20% | 小 |
优化顺序:先裁上下文,再用缓存,最后切模型。顺序错了事倍功半。
二、模型分级策略
按任务难度匹配模型。一个推荐分级:
| 级别 | 模型 | 用途 |
|---|---|---|
| L1(极快) | Haiku 4.5 / GPT-5-mini / Gemini Flash-Lite | 路由、分类、摘要、初稿 |
| L2(日常) | Sonnet 4.6 / GPT-5 / Gemini Flash | 写函数、改 bug、改文档 |
| L3(重任务) | Opus 4.7 | 跨文件重构、架构决策、调试难 bug |
按经验,L1 处理 50–70%、L2 处理 25–40%、L3 处理 < 10% 的任务,总成本能压到纯 L3 的 1/5。
在 Aider 里实现
aider --architect \
--model openai/claude-opus-4-7 \
--editor-model openai/claude-sonnet-4-6 \
--weak-model openai/claude-haiku-4-5
在 Cline 里实现
Plan Mode Model: Haiku 4.5
Act Mode Model: Sonnet 4.6
切到 Opus 只通过 /model 临时切换。
在 Claude Code 里实现
# 多 profile 配置
export CLAUDE_PROFILE=daily # → Sonnet
export CLAUDE_PROFILE=heavy # → Opus
或者直接 /model claude-opus-4-7 临时切。
三、上下文裁剪
最容易省的钱在这里。
1. 不要让 AI 自由探索整个仓库
Cursor 的 @/folder、Cline 的 @mentions、Aider 的 /add:手动指定上下文范围。不要依赖 AI 自动决定。
2. 用 .cursorignore / .aiderignore
排除 node_modules、dist、build、*.lock、自动生成代码、大文件资源。
样板:
node_modules/
dist/
build/
.next/
.nuxt/
*.lock
*.log
*.min.js
*.snap
*.svg
*.png
*.jpg
*.pdf
.git/
coverage/
3. 长会话定期 /clear 或 compact
Claude Code 自动 compact;Cursor 可以新开 Chat;Cline 用 Auto Compact at 80%。
4. 把项目长 system prompt 放进 .claude/CLAUDE.md 或 .cursorrules
集中维护,避免每次粘贴。这部分内容会被缓存命中。
四、Prompt Caching 应用
详细见 prompt caching 省成本指南。要点:
- 确认中转支持缓存透传(看 response 里
cache_read_input_tokens) - 长 system prompt 放前面、变化内容放后面
- 90% 命中率下,长任务成本能降 70%+
五、并发与重试控制
限制 Subagent 并发
Claude Code 默认可以并发跑多个 Subagent。每个 Subagent 都消耗独立上下文。如果你不需要并发优势,限制到 1–2 个:
// .claude/settings.json
{
"maxConcurrentSubagents": 2
}
控制自动重试
Cursor、Cline 失败时默认重试 3 次。如果你的中转 429 频繁,每次重试都消耗费用。建议手动重试:错误时停下来看一眼,决定要不要重试。
六、预算上限与告警
中转后台层
YoTradeApi 这类网关一般支持:
- 单 key 日预算上限
- 单 key 月预算上限
- 触发告警邮件 / webhook
最佳实践:每个工具用独立 key,设独立预算。一旦某天某个工具异常烧钱(比如 Background Agent 跑飞),不会影响其它工作。
客户端层
写一个小脚本每小时拉中转账单数据,超过阈值钉钉/邮件提醒。Python 例子:
import os, requests, time
def check_budget():
r = requests.get(
"https://yotradeapi.com/v1/usage", # 假设接口
headers={"Authorization": f"Bearer {os.environ['YOTRADE_KEY']}"},
)
today = r.json().get("today_usd", 0)
if today > 5:
# 钉钉机器人或邮件
print(f"WARN: today spend ${today}")
while True:
check_budget()
time.sleep(3600)
七、典型场景成本估算
下面是几个工作流的真实参考:
| 工作流 | 模型 | 日 token | 估算日成本 |
|---|---|---|---|
| 个人写代码 8 小时 | Sonnet 4.6 + Haiku 4.5 | 1.5M | $5–10 |
| 一个 Background Agent 长任务 | Opus 4.7 | 800k | $15–40 |
| 团队 5 人 Cursor | 混合 | 8M | $40–80 |
| Aider Architect + Editor | Opus + Sonnet | 2.5M | $8–18 |
数字会随定价调整。重要的是养成任务开始前估算、任务结束后复盘的习惯。
八、不要陷入”无意义的省”
提醒一句:每月能省 $30 但花你 1 小时维护的优化不值得做。值得做的优化:
- ✓ 一次性配置(ignore 文件、模型分级)
- ✓ 高频 hit 的优化(caching)
- ✓ 防爆账单(预算上限)
- ✗ 反复手工裁剪上下文
- ✗ 为省 10% 切换到差很多的模型
九、月度复盘清单
每个月初花 30 分钟回顾:
- 总消耗 vs 上月
- 哪个工具贡献最多
- 哪些任务”投入产出比低”
- 缓存命中率
- 限频触发次数
- 是否需要调整模型分级
十、相关阅读
- Cursor API 中转怎么选
- Claude Sonnet 4.6 与 Opus 4.7 怎么选
- prompt caching 在国内中转下省成本指南
- Cursor Background Agent 国内配置与使用
需要带预算上限、用量看板、告警通知的中转?YoTradeApi 后台直接配置,每天看一眼就够。