大模型 Token 与成本优化工程指南

主题: Agents 框架

发布日期:

最后修改:

大模型 Token 与成本优化工程指南

面向应用研发、平台研发,以及使用 AI 编程工具的团队。

省 Token 的重点,不是把提示词删短,而是让模型少做无效工作。 重复读取、无关上下文、冗长输出和失败返工,都应进入优化范围。

优化目标是:在质量、安全和时延达标的前提下,降低每个验收通过任务的总成本。本文以按量计费的模型 API 为主,订阅产品和 IDE 套餐需单独确认额度规则。

如何使用这篇文章

这篇文章不是一份“模型参数说明书”,而是一套从实际 Agent、Skill、MCP、AI 编程与 API 工程中沉淀出来的成本优化经验。

最直接的用法,是把这篇文章连同你的工程信息一起交给 AI,让它按本文的原则检查并优化现有系统。

你不需要一次性改完所有东西。先让 AI 找出最明显的浪费:重复上下文、过大的工具返回、无效重试、模型使用过重、输出过长、缓存结构不合理,再按收益逐项改造。

阅读导航

你要解决的问题直接阅读
如何判断省钱效果、安排优化顺序成本核算 · 落地顺序
输入太长,历史记录越来越重上下文管理 · 缓存
Agent 工具多、调用多、容易空转工具与 Skill · 执行控制
模型太贵,回答和推理太长模型与输出 · 其他降本方式

1. 先算任务成本,别只看 Token 总数

关键 1|分清省 Token、省费用和省时间。 减少输入、输出和调用轮次,是省 Token;缓存折扣、模型选择和批处理,主要改变费用;流式输出与并发,主要改善等待体验。评估前先明确目标,不能把“更快”直接当成“更便宜”。

关键 2|把失败和重试算进去。 任务总费用应包括全部尝试、子 Agent、模型复核和工具执行,不只计算成功的那次调用。

注意|成本下降不能掩盖质量退化。 同时检查成功率、P95 时延和关键风险场景。通过数为零时,成本指标应标记为不可计算,而不是零。

2. 少给无关材料,不少给关键证据

关键 1|先处理数据,再交给模型。 网页提取正文,日志折叠重复内容,表格先筛选聚合,代码先搜索定位。文字型文档优先读文本,截图只保留相关区域;保留来源、数值和单位,不为省 Token 牺牲小字识别或坐标精度。

关键 2|RAG 按证据预算组装。 按“权限与版本过滤 → 检索 → 去重排序 → 按预算组装”处理,不固定塞满若干段。证据保留来源和位置;不足时扩大检索,而不是强行回答。

关键 3|长任务保存状态,不搬运整段聊天。 原始材料单独存储,工作上下文保留目标、约束、已确认事实、产物位置、未解决问题和下一步。在阶段完成或接近预算时评估摘要与 Compaction,不必每轮压缩。

关键 4|会话续接不等于历史免费。 previous_response_id 用于延续状态,历史输入仍计费;使用服务端续接时,不要再手工拼入同一份完整历史。

注意|摘要不能成为唯一的记忆。 关键权限、约束和原始证据应独立保存。业务摘要与 API 的 Compaction 不是同一机制;后者须按接口约定保留并续接返回项。

3. 缓存靠稳定复用,不靠凑命中率

关键 1|固定内容靠前,动态内容靠后。 稳定规则、工具说明和输出约定与本轮输入分区;时间戳、随机 ID 不插入稳定前缀。工具顺序和 schema 保持确定性,并检查中间件是否重复注入内容。

关键 2|把冷启动、写入和过期一起算。 Prompt Cache 复用前缀计算,不是复用答案,通常不减少统计中的输入 Token。评估要包含首次建立、后续读取和过期重建;缓存写入的费用,应按供应商确认好。

关键 3|工具结果缓存、答案缓存另行设计。 前者省重复查询,后者可能省掉整次模型调用。建议缓存键包含租户、权限、数据版本和查询条件,并明确失效规则;语义相似不等于可以跨用户复用。

注意|更短不一定更便宜。 将已命中的长前缀改成摘要,要同时计算摘要生成和后续缓存重建的成本。比较后续总费用,不只比较压缩前后的长度。

4. 工具既要少加载,也要少返回

关键 1|常用小工具集常驻,大目录按需加载。 低频工具通过 Tool Search 等机制发现;Skill 先提供名称和用途,选中后再读规则。延迟加载会增加发现步骤,defer_loading 也不是所有 MCP 客户端通用的开关。

关键 2|在工具端裁剪,不让模型事后忽略。 搜索返回片段,查询返回必要字段,测试返回状态与失败摘要,完整数据按需读取。数量和体积上限由程序执行,截断时返回标记或分页游标。

关键 3|中间数据留在程序里。 过滤、排序、求和、连接和格式转换交给代码;模型负责理解需求、处理例外和解释结果。程序化组合工具时,同时限制权限、执行时间和返回体积。

案例|统计订单总额(示意)

不推荐:十万行订单 → 模型逐项读取并计算 → 汇总
推荐:数据库筛选、聚合 → 返回总额与异常项 → 模型解释

5. 模型、推理和输出,分开优化

关键 1|按评测选模型,不默认最大。 分类、抽取、格式整理可评估低成本模型;复杂推理和高风险修改使用达到质量要求的模型。“小模型尝试 → 校验 → 必要时升级”必须比较完整链路成本,不能只看第一步单价。

关键 2|推理力度与回答长度分别控制。 简单任务可评估低推理,复杂阶段再升级;同时检查错误与返工。要求“只给结论”不等于关闭隐藏推理;硬输出上限过低,也可能耗尽推理预算后没有完整答案。

关键 3|规定交付物,比说“简洁一点”更明确。 写清需要结论还是分析、完整文件还是 diff、证据原文还是来源 ID。机器消费的结果可用结构化输出,但仍需校验业务含义,允许缺失值和不确定性。

案例|把“分析这个方案”改成明确的输出要求

只返回:结论、关键依据、待确认问题。
不复述需求,不重复总结;证据不足时明确标记,不猜测补全。

6. Agent 的停止条件要由程序执行

关键 1|设定四类停止条件。 验收通过就结束;达到费用、轮次或时间预算就保存状态;相同条件下重复失败且无新证据就中断;缺权限或需要高风险审批就交给人决策。不要只在 Prompt 里写“少花 Token”。

关键 2|重试分类,恢复优先。 网络故障有限退避,参数错误先修参数,权限错误停止重试。超时后先确认远端是否完成,写操作采用幂等或业务去重;保留检查点,从未完成处继续,不整段重跑。

关键 3|多 Agent 是能力选择,不是省钱开关。 只拆分可以独立完成、收益可验证的任务。子 Agent 只接收必要目标、证据和预算,返回结果与来源,不复制完整主会话;核算总费用要覆盖所有子任务。

注意|预算耗尽停止不等于任务完成。 交付已有结果、未完成项和阻塞原因,不把未执行的检查写成通过。

7. AI 编程少读无关代码,少做无关改动

关键 1|先定位,再读取,再提交局部补丁。 提供相关模块和验收标准,先搜索符号、调用点与测试。依赖目录、生成物不默认读取;不重印未修改文件。补丁无法应用时重新读相关区域,不反复猜测;稳定流程固化为脚本。

关键 2|停止重复验证,不取消必要测试。 文案修改与权限、交易、数据库迁移应采用不同测试范围,保留项目门禁。检查通过且无新修改、失败或疑点时停止;代码或环境变化后重跑相关测试,不属于无效重复。

8. 其他降本方式,按场景选择

关键 1|非实时任务,考虑 Batch 或低优先级服务。 离线分类、批量评测可评估 Batch;能接受更长等待和资源不可用时,再评估 Flex 等服务。只重跑失败项,并计算降级成本;这些方式主要改变单价与时延,不减少任务本身的 Token。

关键 2|高频稳定任务,考虑微调或蒸馏。 有明确验收和高质量样例后,再评估低成本模型替代方案,把训练、维护和持续评测算入总账。知识频繁变化时优先维护检索资料,并确认目标模型支持所需训练能力。

关键 3|不用可读性换未经验证的压缩率。 单字母字段、全文翻译、Base64,以及“JSON 一定更省”等做法,都要比较实际 Token、理解准确率和返工成本。省下的输入若被错误与重试抵消,就不算优化。

9. 推荐落地顺序

  1. 建立单任务成本与质量基线。
  2. 裁剪无关上下文和过大的工具返回。
  3. 消除重复调用、无效重试和整段重跑。
  4. 稳定 Prompt 前缀并验证缓存收益。
  5. 用评测选择模型、推理力度和输出格式。
  6. 最后再评估 Batch、Flex、微调或蒸馏。

每次只改一个主要变量,记录成功率、单个成功任务成本和 P95 时延。否则即使账单下降,也很难知道究竟是哪项优化有效。

参考资料