更新于

AI 编程代理成本控制实战(Cursor/Claude Code/Cline/Aider)


AI 编程代理一不留神账单就能从几十美金变成几百。问题不在工具贵,而在没人在用之前算清楚 token 消耗。本文给一份可执行的成本控制方法论。

一、先理解钱花在哪

跑一次 Cursor / Claude Code 任务,token 大体分四块:

部分占比优化空间
system prompt + 工具 schema5–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_modulesdistbuild*.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.51.5M$5–10
一个 Background Agent 长任务Opus 4.7800k$15–40
团队 5 人 Cursor混合8M$40–80
Aider Architect + EditorOpus + Sonnet2.5M$8–18

数字会随定价调整。重要的是养成任务开始前估算、任务结束后复盘的习惯。

八、不要陷入”无意义的省”

提醒一句:每月能省 $30 但花你 1 小时维护的优化不值得做。值得做的优化:

  • ✓ 一次性配置(ignore 文件、模型分级)
  • ✓ 高频 hit 的优化(caching)
  • ✓ 防爆账单(预算上限)
  • ✗ 反复手工裁剪上下文
  • ✗ 为省 10% 切换到差很多的模型

九、月度复盘清单

每个月初花 30 分钟回顾:

  • 总消耗 vs 上月
  • 哪个工具贡献最多
  • 哪些任务”投入产出比低”
  • 缓存命中率
  • 限频触发次数
  • 是否需要调整模型分级

十、相关阅读

需要带预算上限、用量看板、告警通知的中转?YoTradeApi 后台直接配置,每天看一眼就够。