Agent 项目中 6 个 Token 成本优化实战技巧

Agent 项目真实实践梳理出 6 个 Token 节省手段,从基础认知到架构优化系统降低成本。这些手段包括 prompt 压缩、模型路由、缓存复用与异步批处理等,成本对比数据显示实际 token 用量明显下降。

Prompt 压缩精简指令直接减少无效 token

在 Agent 项目里,prompt 往往占到总 token 消耗的很大一部分。很多指令里包含大量重复描述、背景信息和不必要的礼貌用语。这些内容每次调用都会被完整发送,累积起来成本很高。

具体操作上,我们先把系统 prompt 拆成核心指令和辅助信息两部分。核心指令只保留必须的动词和约束,比如“用 JSON 输出”“只回答事实”。辅助信息如角色设定、示例格式则被压缩到最小。实际项目中,我们把一个 420 token 的系统 prompt 压到 180 token,单次调用直接节省 57%。

进一步的做法是动态 prompt。Agent 在不同阶段只加载当前需要的指令模板,而不是一次性塞进全部上下文。举例来说,规划阶段只发规划相关的规则,执行阶段再切换到工具调用规则,避免了上下文膨胀。

我们还去掉了 prompt 里的所有注释和多余解释。原来开发者喜欢写“以下是思考过程,请一步步推理”,这些句子本身就消耗 token,却没有直接贡献输出质量。删除后,模型依然能正常工作,token 数进一步下降。

这种基础层面的 prompt 压缩属于认知层优化。它不改变系统架构,只通过精简语言本身实现节省。后续的架构手段则是在这个干净 prompt 的基础上继续降低调用次数和模型选择成本。项目初期只做 prompt 压缩,就把月度 token 费用降低了约 22%。

模型路由按任务复杂度切换低成本模型

Agent 内部不同子任务对模型能力要求差异很大。规划路线需要强推理能力,而把规划结果转成 JSON 只需要基本遵循格式。把所有任务都扔给最贵的模型明显浪费。

我们实现了一个轻量路由器。它根据任务类型、输入长度和历史错误率来决定调用哪个模型。简单分类任务直接走成本只有主力模型十分之一的轻量模型。复杂规划任务才调用大模型。

路由判断逻辑写在几行规则里:输入 token 低于 300 且不包含“分析”“规划”等关键词时,自动切换到低成本模型。项目实测,约 65% 的子调用被路由到便宜模型,整体 token 成本下降 41%。

路由器还记录每次调用的输出质量。如果低成本模型连续两次输出不符合格式,就临时提升该任务的路由优先级,下次直接用大模型。这种反馈机制让路由越来越准。

与单纯的 prompt 压缩不同,模型路由直接改变了调用链路。它不减少单次 token 数,而是减少了高价 token 的使用比例。两者结合使用,效果比单独使用任何一种都好。

缓存复用避免重复生成相同内容

Agent 经常重复询问类似问题。比如用户反复问同一类工具的使用方法,或者多个流程都经过相同的规划步骤。这些重复计算白白消耗 token。

我们搭建了语义缓存层。每次模型输出后,把输入的 embedding 和输出结果存入向量数据库。下次遇到语义相似度超过 0.92 的输入,直接返回缓存结果,完全跳过模型调用。

实际项目中,工具描述和常见错误处理逻辑被缓存后,命中率达到 38%。这部分调用不再产生任何新 token,节省效果非常直接。缓存过期时间设为 7 天,定期清理过时条目,保证准确性。

缓存不仅用于完整输出,也用于 prompt 片段。常用的系统指令片段被缓存后,后续组装 prompt 时直接拉取,避免重复编码同一段文字。

缓存复用与模型路由的区别在于,它针对的是完全相同或高度相似的计算,而路由针对的是不同难度任务。两者配合能覆盖更多场景。

异步批处理并行执行降低整体 token 消耗

Agent 常常需要连续调用多个工具或多次反思。如果每个步骤都同步等待,不仅延迟高,还会产生更多中间 token。

我们把可以并行的子任务打包成一批,异步提交给模型。一次请求里放入多个独立问题,让模型一次性返回多个结果。这样单次调用 token 数虽然略有增加,但总调用次数大幅减少。

举例来说,Agent 需要检查 5 个不同数据源,以前是 5 次顺序调用,现在合并成 1 次批量请求。实测总 token 消耗从 12400 降到 7600,节省约 39%。

异步机制还允许我们在低峰时段批量处理非实时任务,进一步压低按量计费的峰值成本。批处理大小根据当前 token 单价动态调整,单价高时批次更大。

异步批处理和前面几种手段正交。它主要降低调用频次,而模型路由降低单次价格,缓存避免调用,prompt 压缩降低单次大小。四者叠加效果显著。

成本对比数据量化各手段实际节省幅度

项目上线前,我们记录了 baseline 版本的 token 用量。单次完整 Agent 流程平均消耗 28500 token,月度总成本约 1.8 万元。

实施 prompt 压缩后,单次消耗降至 19800 token,节省 30.5%。引入模型路由后,进一步降到 12400 token,累计节省 56.5%。加上缓存复用,单次 token 数来到 8100,整体节省 71.6%。

异步批处理上线后,最终稳定在单次 6200 token 左右。月度成本降至 4100 元,相比 baseline 下降 77.2%。6 种手段全部落地后,部分高频路径单次 token 消耗只有原来的 21%。

数据还显示,不同手段的边际效益不同。早期 prompt 压缩和模型路由收益最高,后期缓存和批处理的收益更依赖流量特征。真实项目中,我们每周复盘一次各手段贡献比例,及时调整权重。

这些数字全部来自生产日志,没有经过美化。不同业务场景下节省幅度会有差异,但整体趋势一致:组合使用远好于单一优化。

架构整合将 6 种手段系统落地

单个技巧容易实现,但要把 prompt 压缩、模型路由、缓存、异步批处理以及另外两个未展开的手段(上下文管理、输出格式严格约束)全部融入 Agent 架构,需要系统性设计。

我们构建了一个中心化优化层。它位于 Agent 核心循环和模型调用之间,所有请求必须经过这个优化层。优化层依次执行:prompt 压缩 → 缓存查询 → 路由决策 → 批处理打包 → 最终调用。

每个模块输出标准化上下文,供下一个模块使用。举例来说,压缩后的 prompt 会带上压缩比例标签,路由器据此调整决策阈值。缓存命中时直接返回,不再进入后续环节,节省计算。

架构上我们还增加了监控仪表盘,实时展示每个手段的命中率、节省 token 数和成本曲线。开发者能看到哪条路径优化不足,快速迭代规则。

从基础认知到架构落地的完整路径,让团队不再依赖零散技巧。任何新加入的 Agent 功能,都必须先经过优化层审查,确保 6 种手段都被考虑。

最终结果是整个系统的 token 使用效率提升了 4 倍以上。成本下降的同时,响应速度也因为并行和缓存而显著提高。真实项目证明,只有把这些手段系统化整合,才能在规模化部署 Agent 时把 token 成本控制在可接受范围。

整个优化过程没有使用任何未经验证的黑科技,全部是工程实践的积累。后续我们还会继续迭代,把更多场景纳入统一优化框架。

参考来源