← 返回导航站首页

AI Agent成本优化实战指南:把Token花在能验证的产出上

2026年做AI自动化的团队,最大的认知误区是把「省Token」理解成「少调用模型」。真实情况是:成本失控的地方从来不是单价,而是那些看起来成功、实际上什么都没产出的调用。

一个每天跑3个自动发文任务的Agent,如果每个任务平均花0.3元,一个月不到30元——这点钱根本不用优化。但如果这3个任务连续12天「执行成功」却零产出,你付的是保险费,买的是一个不存在的结果。这种浪费不会出现在账单报警里,只出现在业务数据里。

本文按「先算清结构、再砍浪费、最后上门控」的顺序讲清楚Agent成本工程,所有结论都来自生产环境实测。

一、先算清楚:一个Agent任务的成本结构

成本不是「输入价格×字数」这么简单。一次完整的Agent任务,账单由五块组成:

成本块 组成 常见的失控原因
常驻上下文 系统提示 + 记忆 + 技能文件 + 工具Schema 记忆无上限膨胀、技能全量挂载
任务输入 用户指令 + 检索到的资料 把整库资料塞进去而不是检索后取片段
输出 正文 + 工具调用参数 + 思维链 max_tokens设太大、模型过度思考
重试放大 失败请求的原成本 × 重试次数 同因失败反复重试,还有状态重复写入的副作用
隐性成本 评审、返工、人工兜底 产出不可用,人要重做一遍

关键结论一:常驻上下文是唯一「每轮都付」的成本。 输出和输入是单次的,而系统提示、记忆、技能文件是每次调用都要付费的固定开销。一个臃肿的常驻上下文(比如把174KB的写作技能全程挂着)会让每一次调用都变贵——哪怕它跟当前任务毫无关系。少调用模型不是降本,把常驻上下文瘦下来才是。

关键结论二:重试是成本里唯一指数级增长的部分。 单次调用贵不贵是线性的,重试是乘法的:重试次数×单次成本,再加上重复写入产生的副作用清理成本。

二、最贵的三类浪费(按浪费金额排序)

浪费1:静默成功(最贵,也最容易被忽略)

最危险的失败不是崩溃,而是「返回成功但什么都没做」。典型形态:

这类浪费的可怕之处在于监控完全不报警:所有指标都是绿的,钱一直在花。识别方法是给每个任务配一个「外部可证伪的产出指标」:不是「有没有报错」,而是「应该在几点出现的东西,出现了没有」。

浪费2:同因重试

「再试一次」是调试自己的固执,不是调试API。重试前先给错误分类:

错误类型 例子 处理
永久错误 400参数错、404模型不存在、401鉴权失败、校验失败 立刻停,改配置,不许重试
限流 429、明确的速率限制提示 退避重试(带间隔,指数退避),最多3次
服务端抖动 503、连接重置、偶发超时 重试,且必须先确认操作幂等
上下文错误 超出上下文长度、被截断 停下来压缩或裁剪,重试无用
未知 不可分类 同因失败两次就停,人工看一眼

实测过的反例:一个批量生成任务遇到限流后连续重试,5分钟能修好的事变成了40分钟,还因为重复提交产生了重复产物。规则:同一原因失败两次,停下来想,而不是停下来重试。

浪费3:常驻上下文里的死重量

常见死重量来源:

修法:正文只留行动准则,重资料移入references按需加载,过期记忆定期合并删除。

三、六个真正有效的降本手法

1. 模型分层路由(收益最大)

不要用一个模型干所有事。按任务难度分层:

任务类型 建议层级 理由
分类、抽取、打标、格式转换、去重判断 小模型/Flash级 任务边界清晰,答案可校验
常规内容生成、摘要、翻译 中档模型 性价比区间
复杂推理、长链规划、代码重构 旗舰模型 出错成本高于调用成本
高频、隐私敏感、格式固定的批处理 本地模型 边际成本≈0,数据不出本地

同厂新一代的Flash级模型,价格常常只有旗舰版的1/3左右,而在这类结构化任务上的差距远小于价格差距——先在小模型上跑通,再往上换,而不是反过来。

2. 提示词缓存:白送的折扣

主流厂商都对「重复前缀」提供缓存价,命中后输入成本能降一个数量级(官方文档给出的数字在90%量级)。要吃到这个折扣只有一条铁律:

稳定的内容放前面,变化的内容放后面。

[系统提示] → [长期记忆] → [技能/参考材料] → [本次任务指令] → [本次数据]
      ↑ 稳定前缀,会被缓存              ↑ 每次都变,不参与缓存

三个常见破坏缓存的行为:在系统提示里塞时间戳;频繁切换模型(缓存按模型维度隔离);把变化的用户输入拼到提示词开头。

3. 上下文压缩是「有损迁移」,压缩散文、不压缩权威

压缩上下文不是免费午餐:模型无法证明自己丢掉了什么,被压掉的约束会变成「伪造状态」——看起来还在,实际已经不生效了。正确做法:

4. 本地模型吃掉高频次任务

固定格式的批处理、OCR、分类、脱敏、初筛,放到本地跑,边际成本接近0,还没有速率限制。实测参考:20GB显存的消费级显卡,跑量化后的12B级模型(约13.5GB权重)可以稳定服务这类任务;上下文和并行度参数要显式设定(很多推理服务默认开多个并行槽会切碎上下文,导致长请求直接报「上下文超限」)。

注意一个坑:本地模型的推理实现千差万别,量化方式的差异会直接体现为「变笨」。同一个模型换量化版本效果变差时,先怀疑推理实现,别急着换模型。

5. max_tokens和超时:设置不当会直接烧钱

两个方向都会破财:

6. 结果缓存必须带状态指纹

缓存能省钱,但会制造更贵的错误:命中一个过期但看起来成功的结果。幂等键只解决「重复执行」,解决不了「状态已变」。稳妥做法是缓存键里带上状态指纹(输入数据指纹、依赖版本、关键参数哈希),并把「假命中率」和「命中率」分开计量——如果只盯命中率,你会得到一堆过期答案和一个漂亮的省钱报告。

四、花钱之前的四道闸

把下面这段当成流水线的前置门控,能砍掉绝大部分无效支出:

闸1 产出定义:这次运行要产出什么?在哪能看到?谁验证?
    └─ 答不出来 = 不许运行
闸2 前置检查:目标状态是否已满足?(已发布/已存在 = 直接跳过)
    └─ 幂等键 + 简单存在性查询,成本≈0
闸3 预算上限:设定单次最大尝试次数与最大花费;超限即失败退出并告警
闸4 事后对账:外部指标(发布记录/订单/文件时间戳)与自报状态比对
    └─ 不一致 = 记为假成功,触发修复而非重试

闸1是最省钱的闸。 说不清「产出在哪能看到」的任务,通常不是任务难,而是任务本身没想清楚,跑起来必然是「成功但没有结果」。

五、度量:用单位产出成本,不要用总花费

总花费是个没有意义的数字:花100元做出10篇能用的内容,比花10元产出0篇便宜得多。要盯的指标:

指标 定义 阈值建议
单位产出成本 总成本 ÷ 合格产出数 按业务定,趋势必须下降
假成功数 自报成功但外部指标未达标 目标为0,>0立即排查
无效调用占比 前置检查本可跳过的调用占比 <10%
重试成本占比 重试产生的成本 ÷ 总成本 <15%,超了先修错误分类
人工返工率 需要人重做的产出占比 降到可接受区间再谈自动化

单位产出成本的分母(合格产出)必须由外部定义。 用Agent自己判断的「完成数」做分母,等于自己给自己发合格证。

六、七天成本审计清单

按天执行,一周内能定位主要浪费:

  1. 第1天:导出上个月账单,按任务分类,算出每个任务的单位成本(能不能算出「每篇/每单成本」)。
  2. 第2天:拉出所有定时任务的执行记录,对比「执行成功」与「外部产出」,找出假成功。任何一个连续3天成功但零产出的任务,立刻停掉。
  3. 第3天:统计常驻上下文体积(系统提示+记忆+技能+工具Schema),找出从未被用到的部分并移出常驻。
  4. 第4天:把重试日志按错误类型分类,检查是否存在同因重试超3次的情况,补上错误分类表。
  5. 第5天:梳理模型路由,把分类/抽取/格式化类任务切到小模型,A/B对比质量差异。
  6. 第6天:检查提示词前缀稳定性,确认缓存能被命中(日志里看缓存命中计数字段)。
  7. 第7天:建立成本看板:单位产出成本、假成功数、重试成本占比,周更。

结语

Agent成本工程的核心不是「省钱」,是把付款和结果绑在一起。省下来的每一分钱,都比不上一次「成功但零产出」的浪费——后者不光是钱的问题,它会让所有人对自动化失去信任。

三句话记住:

  1. 常驻上下文瘦身 = 每次调用都打折。
  2. 同因失败两次就停,重试从来不是免费的。
  3. 没有外部可证伪指标的自动化,成本算不清,价值也说不清。

📌 相关阅读:AI Agent自动化可靠性实战指南:识别假成功,终结静默失败 · AI Agent定时任务实战指南 · 本地部署大语言模型完全指南


📚 更多创作资源: https://afdian.com/a/felix007