首页 / 文档 / 费用控制

费用控制

智能体工作负载中的 token 究竟用在了哪里,以及影响账单的四个关键因素。

如果你让编程智能体运行过一整个工作日,就一定见识过账单。智能体循环消耗 token 的程度远超普通聊天:每次读取的文件、每个工具结果和每份差异都会进入上下文,并在下一轮重新发送。

输出 token 才是昂贵的部分

对于所有前沿模型,输出成本都是输入的 4–5 倍。在最终回答中展开思考过程的模型,比回答简洁的模型更快消耗资金。有意识地限制 max_tokens ,并在日常工作中优先选择回答简洁的模型。

模型输入美元/百万 token输出美元/百万 token比率
claude-opus-4-8$3$155×
claude-sonnet-4-6$0.90$4.505×
claude-haiku-4-5$0.40$25×
gemini-3-flash$0.20$1.206×

四项调节手段

  1. 按任务路由。 分类、提取和路由不需要 Opus——Haiku 能以约七分之一的价格完成这些任务。将旗舰模型留给需要大量推理的工作。
  2. 提示词缓存。 稳定的系统提示词和工具定义可从缓存中重新读取,成本仅为输入价格的一小部分。对于智能体,这是影响最大的一项手段——参见 提示词缓存.
  3. 每轮精简上下文。 不要重新发送整段对话记录;保留最近几轮对话和持续更新的摘要即可。上下文无限增长,正是让一次 $2 的会话变成 $20 的原因。
  4. 限制循环。 为自主运行设置严格的步数上限,避免卡住的智能体无限循环。

运行前估算

IN_RATE  = {class="s">"claude-opus-4-8": 3.0,  class="s">"claude-sonnet-4-6": 0.9, class="s">"claude-haiku-4-5": 0.4}
OUT_RATE = {class="s">"claude-opus-4-8": 15.0, class="s">"claude-sonnet-4-6": 4.5, class="s">"claude-haiku-4-5": 2.0}

def cost(model, tok_in, tok_out):
    return tok_in / 1e6 * IN_RATE[model] + tok_out / 1e6 * OUT_RATE[model]

print(cost(class="s">"claude-opus-4-8",   20_000, 2_000))   class=class="s">"c"># 0.09
print(cost(class="s">"claude-sonnet-4-6", 20_000, 2_000))   class=class="s">"c"># 0.027
print(cost(class="s">"claude-haiku-4-5",  20_000, 2_000))   class=class="s">"c"># 0.012

同样一个输入 20K、输出 2K 的任务,使用 Opus 的成本是 Haiku 的 7.5 倍。如果任务是分类,这些额外支出不会带来任何收益。

运行后测量

每个响应都包含一个 usage 对象。将其与请求 ID 和任务类型一起记录——缺少这些信息,成本优化就只能靠猜测。网关仪表板会显示各模型的用量,但只有你自己的日志才知道发出请求的*原因*。

最常见的高成本错误并非模型选择,而是在漫长的智能体会话中,每一轮都重新发送不断增长的对话记录。先解决上下文增长问题,再调整模型。