AI AgentTechnical Deep Dive

Agent 成本控制:预算不是事后统计,而是架构约束

发布时间2026/02/13
分类AI Agent
预计阅读10 分钟
作者吴长龙
*

Agent 的成本不只是模型单价问题,更是上下文长度、循环步数、工具调用和任务路由共同作用的结果。

01.Agent 成本问题,通常不是“模型太贵”这么简单

一提到 Agent 成本,很多人第一反应是比较模型单价。但在真实系统里,成本往往由几件事一起决定:

  • 模型输入输出 token
  • 循环步数
  • 工具调用次数
  • 上下文长度
  • 重试和 fallback 次数

所以成本控制的核心,不是事后看账单,而是提前设计系统边界。

换句话说,预算应该像延迟和可靠性一样,被当成架构约束,而不是财务统计。

02.先看清最主要的成本来源

对多数 Agent 系统来说,成本通常来自三层:

1. 模型推理成本

这是最直观的一层,也是大家最容易先想到的部分。

2. 决策链路成本

即使单次模型调用不贵,如果一个请求跑了很多轮:

  • 规划
  • 调工具
  • 看结果
  • 再规划

总成本一样会迅速上升。

3. 上下文重复成本

很多 Agent 会在每次调用里反复带上:

  • 相同系统提示
  • 相同工具定义
  • 相同历史上下文

如果不做缓存和裁剪,这部分会非常浪费。

03.模型价格当然重要,但别只盯价格表

根据 OpenAI 2026 年 4 月 10 日公开定价页,GPT-5.4 系列标准处理价格大致为:

模型输入缓存输入输出
GPT-5.4$2.50 / 1M tokens$0.25 / 1M$15.00 / 1M
GPT-5.4 mini$0.75 / 1M$0.075 / 1M$4.50 / 1M
GPT-5.4 nano$0.20 / 1M$0.02 / 1M$1.25 / 1M

这张表当然值得看,但更重要的问题是:

  • 哪些步骤真的需要大模型
  • 哪些步骤其实只需 mini / nano
  • 哪些请求根本不该进 agent loop

如果这些问题没想清楚,只看单价不会真正解决成本问题。

04.第一层节流:先做模型分层

成本控制里最有效的动作之一,就是把不同任务送到不同成本层级的模型。

比较合理的默认分工通常是:

  • 分类、提取、路由:nano
  • 普通工具调用和草稿生成:mini
  • 高复杂推理和关键决策:旗舰模型

这类路由不需要过度复杂,关键是把阶段拆清楚。

python snippetpython
from langchain.chat_models import init_chat_model


cheap_model = init_chat_model("openai:gpt-5.4-nano")
fast_model = init_chat_model("openai:gpt-5.4-mini")
strong_model = init_chat_model("openai:gpt-5.4")


def select_model(stage: str):
    if stage in {"classify", "extract", "rank"}:
        return cheap_model
    if stage in {"tool_loop", "draft"}:
        return fast_model
    return strong_model

这个模式的重点不是“动态”,而是你能清楚解释为什么某一类步骤配某一档模型。

05.第二层节流:把可缓存前缀组织好

OpenAI 当前 prompt caching 文档对成本控制的意义非常大。它指出:

  • 缓存会自动生效
  • 对 1024 tokens 以上请求更有意义
  • 最佳情况下输入成本可降低 90%
  • exact prefix match 是关键

这意味着,如果你的 Agent 请求里大量重复这些内容:

  • 系统提示词
  • 工具定义
  • 固定 few-shot 示例
  • 长期稳定的工作流说明

那你就应该有意识地把它们放在 prompt 前部,让动态内容尽量后置。

这件事既影响延迟,也直接影响账单。

06.第三层节流:别让上下文无限增长

很多 Agent 成本问题并不是“模型选贵了”,而是“每轮都在带一大坨历史”。

LangChain 当前 middleware 文档里的 SummarizationMiddlewareContextEditingMiddleware,本质上都在解决这个问题:

  • 该保留什么
  • 该压缩什么
  • 该删除什么

如果你不做这一步,prompt caching 命中再好,也会被不断膨胀的新上下文稀释掉收益。

所以成本控制和上下文治理其实是同一件事的两个面。

07.第四层节流:限制模型和工具调用次数

成本暴涨最常见的触发器,不是一次超贵调用,而是失控循环。

LangChain 当前 prebuilt middleware 里已经给了很实用的控制点:

  • ModelCallLimit
  • ToolCallLimit

这类限制的价值不只是省钱,还能防止异常路径下的 runaway loops。

也就是说,调用上限既是成本控制,也是可靠性控制。

08.第五层节流:把不需要实时的任务挪出主链路

OpenAI 当前定价页还提到 Batch API 可以为异步批处理任务提供 50% 的输入和输出成本折扣。

这类能力特别适合:

  • 离线评估
  • 大规模摘要
  • embedding / 索引预处理
  • 批量内容清洗

不适合:

  • 用户正在等待结果的在线交互

这条原则非常简单,但很有效:

能离线做的事,就别放到高实时主链路里烧在线模型预算。

09.成本监控不能只看月度总账

如果只在月底看一次总花费,基本已经来不及优化了。更有用的监控方式,是把成本拆到:

  • 按 workflow
  • 按租户
  • 按任务类型
  • 按模型层级
  • 按单次 trace

LangChain 当前 models 文档也提到 usage metadata callback,可以用来聚合 token 使用情况。这让你至少能回答:

  • 哪条链路最费 token
  • 哪类请求最容易超预算
  • 哪个版本上线后成本突然升高

没有这些可观测性,成本控制通常只会停留在“感觉最近花得多”。

10.一套更实用的成本控制顺序

如果你现在要给 Agent 系统控成本,我建议先按这个顺序做:

  • 把任务按阶段拆开,建立模型分层
  • 把静态 prompt 前缀整理好,提升缓存命中
  • 对长会话做 summarization / context editing
  • 给模型和工具调用加上限
  • 把离线任务挪到 batch 或后台处理
  • 用 trace 和 usage metadata 持续追踪单位任务成本

这套顺序比“先把提示词砍短一点”更系统,也更容易在大流量下稳定生效。

11.总结

Agent 成本控制最重要的不是单次省多少 token,而是把预算纳入系统设计:

  • 用模型分层控制基础单价
  • 用 prompt caching 降低重复前缀成本
  • 用上下文治理防止成本随历史膨胀
  • 用调用上限阻止异常循环
  • 用 batch 和后台任务挪走非实时负载

只要把这些约束放进架构层,成本就不会只是一张账单,而会变成一个可管理、可优化的系统指标。

12.参考资料