2026年2月5日

如何压缩模型调用的成本?

优化 Agent 工作流以降低成本(Token 消耗),本质上是在进行 “Token 经济学” 的治理。核心原则只有一条:“好钢用在刀刃上”——只在必须使用推理能力的地方调用昂贵模型。

我们可以从架构设计、模型分层、上下文管理、提示工程四个维度进行深度压缩:

一、 架构设计:能不用 LLM 就别用 (Bypass & Offload)

最省钱的调用是“不调用”。很多时候我们滥用了 LLM 去做传统代码就能做的事。

  1. 纯代码/正则过滤器 (Heuristic/Regex First)
    • 场景: 检查用户输入是否包含邮箱、是否为空、格式是否正确。
    • 优化: 在进入 LLM 之前,先跑一层 Python 校验函数。
    • 效果: 拦截掉 30% 无效或格式错误的请求,成本为 0。
  2. 语义缓存 (Semantic Caching)
    • 原理: 用户的提问往往是重复的(例如“怎么请假?”)。传统的 Key-Value 缓存要求完全一致,而语义缓存利用向量相似度。
    • 做法:
      1. 计算用户 Query 的向量。
      2. 在向量库(Redis/Pinecone)查找是否有相似度 > 0.95 的历史问答。
      3. 如果有,直接返回缓存的答案。
    • 工具推荐: GPTCache
    • 收益: 在高频重复场景下,可减少 40%-60% 的 API 调用。
  3. 确定性路由 (Deterministic Routing)
    • 原理: 对于意图非常明确的指令(如“搜索客户张三”),直接映射到 SQL 查询工具,跳过 LLM 的规划层。
    • 实现: 建立关键词映射表或分类树。

二、 模型分层:模型级联 (Model Cascading/Waterfall)

不要让 GPT-4o 做所有事。建立一个由小模型到大模型的升级机制。

  1. Router/Classifier 使用小模型
    • 策略: 使用 Llama-3-8B (本地) 或 GPT-4o-mini (廉价 API) 专门负责意图分类、工具选择。只有当任务被判定为“复杂推理”时,才交给大模型。
    • 成本对比: GPT-4o-mini 的价格通常是 GPT-4o 的 1/30。
  2. 分级重试机制 (Fallback Pattern)
    • 流程:
      1. 优先调用廉价模型尝试解决。
      2. 编写一个快速的校验函数(Checker)检查结果(如是否符合 JSON 格式)。
      3. 只有当廉价模型失败或校验不通过时,才降级(Upgrade)调用昂贵模型进行“救火”。

三、 上下文管理:只传该传的 (Context Pruning)

Prompt 中的 Context(历史记录、参考文档)通常是 Token 消耗的大头。

  1. 上下文压缩 (Summarization over Memory)
    • 策略: 不要把过去 10 轮对话原封不动地发给 LLM。
    • 优化: 使用 LangChain 的 SummaryMemory,每隔 3 轮对话,让一个小模型把之前的对话总结成一段 100 字的摘要,替换掉原始记录。
  2. RAG 检索优化 (Reranking)
    • 场景: 知识库检索出了 20 个文档片段,如果全部塞入 Prompt,Token 爆炸且干扰推理。
    • 优化: 引入 Rerank 模型 (如 BGE-Reranker,非生成式,极快)。先检索 50 个,用 Rerank 精选出相关性最高的 Top-3 喂给 LLM。

四、 提示工程:批处理与结构化 (Prompt Engineering)

  1. 批处理 (Batching)
    • 场景: 需要对列表中的 5 条数据做同样的分析。
    • Bad: 写一个 for 循环,调用 5 次 LLM。
    • Good: 将 5 条数据合并到一个 Prompt 中:“请依次分析以下 5 条数据,并以 JSON 列表格式返回结果。” -> 1 次调用
  2. 强制简短输出 (Output Constraints)
    • LLM 的计费通常 Input 便宜,Output 贵。
    • 技巧:
      • System Prompt 加入:“Do not imply. Do not explain. Output JSON only.”(不要废话,不要解释,只给 JSON)。
      • 使用 OpenAI 的 json_object 模式,避免模型生成各种“好的,这是您的结果…”之类的客套话(这些都是钱)。

成本压缩对照表

优化手段实施难度预期降本幅度适用场景
Prompt 精简 & JSON模式10% – 20%所有场景
小模型路由 (GPT-4o-mini)40% – 60%意图识别、简单抽取
语义缓存 (GPTCache)30% – 80%客服、FAQ、知识问答
批处理 (Batching)50% (减少请求次数)数据清洗、报表生成
微调小模型 (Fine-tuning)极高90%极其垂直、高频的固定任务

总结建议

如果你现在就要动手优化,建议按以下顺序操作:

  1. 第一步(立竿见影): 全面审查 Prompt,去掉冗余的 Context,强制要求简洁的 JSON 输出。
  2. 第二步(架构调整): 将所有非推理任务(如格式化、关键词提取)换成 GPT-4o-miniDeepSeek-V3 等高性价比模型。
  3. 第三步(高级): 引入语义缓存,拦截重复请求。