一个具备 Shopify 规模的商家助手,每天需处理 1000 万次对话。若不进行优化,月度账单将高达 210 万美元;而经过优化,这一数字可降至 45 万美元。这 78% 的差价并非源于算法层面的突破,而是归功于缓存、路由策略以及一些工程规范——遗憾的是,许多团队往往直到收到账单时才意识到这一点。
AI Agent 绝非仅仅是多了几个步骤的聊天机器人。单一的用户请求会触发规划、工具筛选、执行、验证,甚至重试循环——这导致其消耗的 Token 大约是直接对话交互的 5 倍。若 ReAct 循环运行 10 个周期,其 Token 消耗量将是单次通过的 50 倍。在顶尖模型的定价体系下,这种指数级增长会迅速转化为巨大的成本负担。
本文将深入剖析 Agent 成本的来源,并介绍那些经过实战验证、能切实“扼住成本咽喉”的具体技术手段。
为何 Agent 成本有别于普通聊天机器人
首先必须理解“输出 Token 溢价”。在主流供应商中,输出 Token 的定价通常是输入的 3-8 倍,因为生成过程是串行的,而输入处理可并行化。对于侧重推理的模型,这一比例甚至高达 8:1。当你的 Agent 生成冗长的工具调用响应、详细的推理轨迹或长篇摘要时,你都在为这些昂贵的输出 Token 买单。
上下文长度则进一步加剧了问题。受限于注意力计算的二次方复杂度,处理 128K Token 上下文的成本大约是 8K 上下文的 64 倍。Agentic 系统会自然累积上下文:系统提示词、工具定义、对话历史、检索片段、工具响应等。每一轮对话都在增加上下文。许多团队在预发布环境(staging)中会猛然惊觉这一点:原本在简短测试中单次任务成本仅 $0.05 的 Agent,在面对真实文档库时飙升至 $1.50。
目前,最便宜与最昂贵模型选项之间的价差约为 60 倍。例如,Gemini Flash-Lite 约为每百万输入/输出 Token $0.075/$0.30,而顶尖推理模型则高达 $15/$60。这种价差是机遇——前提是你有意识地进行路由调度。
Prompt 缓存:最容易到手的红利
Prompt 缓存的工作原理是复用先前请求中计算出的键值注意力张量,前提是新请求与旧请求具有相同的前缀。Anthropic 为缓存的输入 Token 提供 90% 的折扣($0.30/M vs $3.00/M),Google 提供折扣 75%,而 OpenAI 则对符合条件的请求自动给予 50% 的优惠。
对于 Agentic 系统,这意味着显著的优化空间:精心编排你的 Prompt,确保静态内容置于首部。系统提示、工具定义、少样本示例、策略文档——这些都应构成稳定的前缀。动态内容(即实际的用户消息、当前轮次检索到的上下文)则置于尾部。这并非美观问题,而是直接决定了缓存能否命中。
Claude Code 在实践中实现了 92% 的缓存命中率,从而将处理成本压低了 81%。固定 10,000 Token 的系统提示在首次请求后几乎不再产生费用。某客户支持应用将其产品目录从动态插入转为缓存前缀,在未改变输出质量的情况下,每月削减了 $12,000 的 API 账单。
除了降低成本,缓存还能削减延迟。在长前缀启用缓存时,平均响应延迟从 800ms 降至 350ms,因为模型跳过了对稳定部分的注意力矩阵重计算。
工程层面的开销微乎其微:缓存窗口的 TTL 范围从 5 分钟(Anthropic)到约 1 小时不等。对于服务重复用户会话的 Agent,热缓存几乎总是可用。对于批处理管道,应构建任务结构,使批次内的请求共享前缀。
模型路由与级联:将成本与复杂度匹配
并非所有查询都需要顶尖模型。关键在于如何鉴别——答案取决于三个维度:推理复杂度、质量敏感度以及上下文长度。
在典型的生产级 Agentic 工作负载中,分布大致如下:
- 60% 的任务属于直截了当型:提取、分类、格式化、模板化响应。这些在低于 $1/M 的模型上即可流畅运行。
- 25% 需要中等程度的推理:多跳问答、代码生成、结构化分析。中端模型($0.80-$4/M)能很好地应对。
- 12% 涉及真正的复杂性:指令模棱两可、长线规划、跨异构源的综合。高端模型在此物有所值。
- 3% 需要前沿推理能力:新颖问题、高风险决策、涌现行为。
实施良好的路由系统通常能在典型的 Agent 部署中降低 30-60% 的成本,顶尖实现甚至可达 87%。
针对 Agent 系统的实用模式是“编排与执行分离”。在规划层使用昂贵模型——它读取的通常较短的任务描述并做出路由决策,因此 Token 消耗受控。在执行步骤中使用廉价模型:摘要、提取、格式转换、检索排序。Claude Haiku 负责执行工具调用,而 Sonnet 或 Opus 负责规划整体策略,这是一种常见且高效的分工。
模型级联则更进一步:每个请求均从最便宜的层级发起,根据标准(置信度、格式有效性、若拥有检索源则看事实依据)对响应打分,若低于阈值则升级。级联带来的额外延迟通常是值得的——大多数请求在第一层级即完成,升级仅针对少数疑难杂症。
基于置信度的路由需要校准。若自行构建,对于开源模型,logprob 熵(对数概率熵)是一个可用信号。对于专有 API,你需要一个代理评估器(通常是一个较小、快速的模型,用于检查初次响应是否达标)。代理的额外成本通常仅占路由节省费用的不到 5%。
上下文压缩:精简输入内容
上下文中的每个 Token 都对应着直接成本。上下文压缩的核心在于剔除冗余,仅保留任务所需的最小集合。
滚动摘要是基础技术。与其传递完整的对话历史,不如每 N 轮(通常 5-10 轮)进行一次摘要。摘要继续传递,完整记录则归档。这使得上下文增长随摘要频率呈线性关系,而非随轮次线性增长。其代价是失去了早期轮次的细粒度细节——这对大多数用例可以接受,但对于需要记住每个决策的代码审查 Agent 则不可行。
工具输出掩码常被忽视。当 Agent 调用网页抓取器、API 或数据库查询时,原始响应往往包含头部、元数据以及与当前任务无关的字段。在插入上下文前剥离这些信息,可减少 60-80% 的工具输出 Token。为每种工具类型编写后处理器,仅提取模型真正需要的字段。
习得式压缩工具(如 LLMLingua)利用较小的模型来识别并移除低信息 Token。有报告显示,客服提示词从 800 Token 减少至 40 Token(缩减 95%),且保持了可接受的准确性。陷阱在于:压缩本身需要 LLM 调用,增加了延迟和 Token 成本。只有当压缩后的提示词在大量请求中复用,或压缩器的成本远低于主模型时,这笔账才算得过来。
检索时的相关性过滤直截了当:不要传递所有检索到的块,仅保留那些高于余弦相似度阈值的。将此阈值从 0.7 提高到 0.8,通常能减少 40-60% 的检索 Token,同时降低了本会稀释模型注意力的噪声。
语义缓存:彻底消除调用
语义缓存通过输入的 Embedding 来索引并存储 LLM 响应。当新查询到达时,系统会将其 Embedding 与缓存的查询进行比较——若相似度超过阈值,则直接返回缓存响应,无需发起 API 调用。
在典型的生产工作负载中,约有 31% 的 LLM 查询具有足够高的语义相似度,可从此技术中获益。缓存命中仅需毫秒级响应(对比秒级),且 API 费用为零。对于支持聊天机器人、FAQ 系统以及查询分布呈聚类状态的应用,语义缓存能直接消灭 20-40% 的 API 调用。
权衡在于对新鲜度的敏感性。对于答案频繁变更的应用,陈旧数据是一种风险。应根据你内容领域的更迭速度来配置 TTL。对于静态知识库,激进的 TTL 是合适的;对于实时数据查询,则应针对该类查询完全禁用语义缓存。
硬性限制是必选项,而非可选项
最廉价的优化手段是防止“失控循环”。一起 documented 的生产事故:某个 Agent 在周末针对损坏的数据源发起 847,000 次 API 调用,在被暂停前累计产生了 $3,847 的费用。另一起案例:Agent 在五分钟内调用了抓取工具 400 次,因为工具返回了“可能还有更多结果”——而 Agent 将其解读为继续抓取的邀请。
每个 Agent 在部署前都必须设定三大硬性限制:
- 单任务最大迭代次数。设定为预期平均值的 2-3 倍。大多数 Agent 框架(LangGraph, AutoGen, CrewAI)都将此作为一级配置暴露出来。
- 单任务最大 Token 支出。设定为预发布环境观测到的 P95 支出的 3 倍。将其实现为中间件,在每次模型调用前检查累积成本。
- 最大运行时长。用于捕捉那些通过反复进行快速、廉价调用来规避 Token 预算的无限循环。
模棱两可的工具反馈是失控循环最常见的诱因。如果工具能返回一个可能被解读为“继续”的信号,Agent 就会一直运行下去。在工具输出模式中应保持明确:包含一个 is_complete 布尔值或 next_action_required 字段,而不是依赖模型去推断终止条件。
FinOps:上线前必须具备的监控手段
成本的可视化是闭环的关键。没有它,优化只是盲猜,异常则是惊吓。
最小可行监控层应追踪:
- 单次 Trace 成本。每次 Agent 运行都应向可观测性系统输出其总成本(输入 Token × 价格 + 输出 Token × 价格,按模型层级细分)。
- 缓存命中率。若此指标低于基线,说明你的 Prompt 结构或请求模式发生了变化。
- 输出 Token 占比。输出 Token / (输入 + 输出) Token。该比例上升通常意味着 Agent 变得过于啰嗦——通常可通过在系统提示词中添加“简洁回答”来修复(这通常能减少 15-25% 的输出 Token)。
- 单次完成步数。步数增加表明任务变难或 Agent 陷入困境。无论哪种情况,都值得调查。
Langfuse、Helicone 和 Portkey 等工具可在 API 网关层面提供单请求成本追踪和预算控制。对于异常检测,建议设定相对于滚动基线 2σ 偏差的支出警报——如果你关注此信号,大多数成本事故在数分钟内即可被察觉。
同一个 Agent 在未优化与优化良好的部署之间,成本差异可能高达 30-200 倍。这是目前大多数 AI 团队能获得的最高 ROI 的工程工作。
实操优先级排序
如果你从零开始,请按以下顺序应用这些技术,一旦达到成本目标即可停止:
- Prompt 缓存。若框架支持,无需代码变更。将静态内容移至前缀。立竿见影。
- 硬性限制。防止导致其他努力付诸东流的尾部风险(即失控事故)。
- 输出 Token 控制。在系统提示词中加入“简洁回答”。监控输出 Token 占比并观察其下降。
- 工具输出掩码。为高频使用的工具编写后处理器。
- 模型路由。按复杂度分类任务并路由至对应层级。先从简单的基于规则的分类器开始;若流量证明合算,再升级为习得式路由器。
- 上下文压缩。为长会话实施滚动摘要。
- 语义缓存。若查询分布具有足够的聚类特性,则添加此项。
Agentic 系统的默认成本与良好工程优化后的成本之间,差距并非微不足道。这关乎一个项目是能成功上线,还是在预算审查时被砍掉。
来源:查看原文