Agent 跑太贵?先算清你的 token 花在哪了
成本优化的第一步不是换便宜模型,而是搞清楚钱花在哪个环节。本文给出三类成本结构、四种压缩手段,以及最容易踩的省钱陷阱。
Agent 账单从每月几百涨到几千,通常不是因为用户变多,而是因为每一轮对话携带的上下文在悄悄变长。
见过太多团队的第一个动作是“换个便宜模型”。这通常是错的:换模型是最后一步,不是第一步。先把成本结构看清楚,往往能省下更多,而且不牺牲质量。
先做一件事:按环节拆账
给每次调用打上三个标签,统计一个月:
- 系统提示与工具定义(固定成本)
- 历史上下文(累积成本)
- 本轮实际新增内容(真实成本)
大多数 Agent 的成本分布会让人意外:第三项通常只占 20%–40%,剩下的大头是“每轮都在重复发送的固定内容”。
一旦看到这个比例,优化方向就清楚了:问题不在模型多贵,在于你在重复付费传输同样的文字。
四种压缩手段,按性价比排序
一、工具定义瘦身。 一个 Agent 挂 30 个工具,工具 schema 本身就可能吃掉几千 token。做法是分域加载:按当前任务动态挂载 5–7 个工具。这一步经常能砍掉固定成本的 30%–50%,且通常能提升准确率——工具少,选错的概率就低。
二、提示词缓存。 固定的系统提示和长文档放在前缀,利用缓存定价。注意两点:前缀必须完全一致(一个空格不同就失效),且缓存有有效期。把变动内容全部放到末尾,是基本纪律。
三、历史压缩而非全量携带。 不要把整段对话往后推。做法是“摘要 + 最近 N 轮原文”:早期轮次压成结构化摘要(用户目标、已达成的共识、未完成事项),最近几轮保留原文。压缩会丢细节,所以摘要里必须保留所有 ID、金额、日期——这些是丢失后无法恢复的。
四、让模型少说。 输出 token 通常比输入贵 3–4 倍。Agent 的内部推理环节如果是给自己看的,要求它输出极简格式(一行一个结论)而非段落文章,能省下一大块。
最危险的四个省钱陷阱
陷阱一:为了省钱降低推理深度。 让模型“简短回答”,可能省掉的是它本该做的检查。省钱应该省在传输上,不该省在思考上。
陷阱二:上下文压得太狠。 压掉关键约束后,Agent 会给出流畅但错误的答案,你还得花钱收拾。原则是:压缩历史可以,压缩约束不行。
陷阱三:缓存当免费。 缓存命中率低的时候,缓存写入本身可能是额外成本。上线前先测真实命中率,不要假设。
陷阱四:只算 API 账单,不算人工成本。 为了省 20% 成本,让工程师花两周重构,通常不划算。算总账,不要算单笔。
三个应该盯的指标
每任务成本(不是每 token 成本)、平均上下文长度趋势、成本异常会话占比(单会话成本超过均值 5 倍的)。
第三个指标最实用。成本失控几乎总是集中在少数会话上——用户和你聊了两百轮、或者 Agent 陷入了循环。给单会话设一个硬上限,超限就转人工或让它总结退出,比任何模型替换都有效。
一句总结
成本优化不是“找便宜的”,而是找到重复付费的部分并去掉。先拆账,再动手,最后才考虑换模型——顺序反了,通常既没省钱也降了质量。