💰 成本控制与优化

🎯 Agent 成本的核心挑战

Agent 的成本模型与传统 API 服务有本质区别:每次用户请求可能触发多次 LLM 调用,每次调用消耗的 Token 数量取决于上下文长度和推理步骤数。如果不加控制,一个看似简单的用户问题可能消耗数十万 Token,单次请求成本高达数美元。

📊 Token 成本分析

理解 Token 消耗的构成是成本优化的第一步。Agent 的 Token 消耗通常分为以下几个部分:

Token 来源说明典型占比优化空间
System Prompt Agent 的系统指令和角色定义 5%~15% · 精简指令
对话历史 多轮对话的累积上下文 20%~60% · 上下文剪枝/摘要
工具定义 function calling 的工具 Schema 5%~10% · 按需加载工具
检索结果 RAG 检索到的知识片段 10%~30% · 优化检索精度
推理步骤输出 LLM 的思维链和工具调用决策 15%~35% · 限制思考步骤

主要模型 Token 价格参考 (2025年)

模型输入价格 ($/M tokens)输出价格 ($/M tokens)性价比评级
GPT-4o$2.50$10.00⭐⭐⭐
GPT-4o-mini$0.15$0.60⭐⭐⭐⭐⭐
Claude 3.5 Sonnet$3.00$15.00⭐⭐⭐
Claude 3 Haiku$0.25$1.25⭐⭐⭐⭐
DeepSeek-V3$0.27$1.10⭐⭐⭐⭐⭐
Gemini 2.0 Flash$0.10$0.40⭐⭐⭐⭐⭐

🔀 模型路由策略

不是所有任务都需要最强的模型。智能路由根据任务复杂度动态选择模型,在保证质量的前提下大幅降低成本。

📥 用户请求
🧠 复杂度评估器
简单任务
问候/FAQ/简单查询
→ GPT-4o-mini / Haiku
中等任务
信息整合/摘要/翻译
→ DeepSeek-V3 / Gemini
复杂任务
多步推理/代码生成/规划
→ GPT-4o / Claude Sonnet

路由策略实现方式

  • 规则路由:基于关键词、用户角色、时间段等静态规则分配模型,实现简单但灵活性差
  • 分类器路由:训练或使用 LLM 作为分类器,判断任务难度后路由,准确度高但有额外开销
  • 级联路由:先用便宜模型尝试,结果不满足质量阈值时自动升级到更强模型
  • 自适应路由:根据历史成功率、当前负载、成本预算动态调整路由策略

🗂️ 缓存策略

缓存是降低 LLM 调用成本最直接有效的手段。Agent 的缓存可以分为三个层次:

1. Prompt 缓存

对于重复使用的 System Prompt 和工具定义,利用 LLM 服务商的 Prompt Caching 机制,避免每次请求都全额计费。

  • Anthropic Prompt Caching:缓存重复前缀,写入一次后可多次命中,命中部分按 10% 计费
  • OpenAI Prompt Caching:自动缓存最近的 prompt 前缀,命中部分按 50% 计费
  • 应用层缓存:在服务端缓存常用的 prompt 模板,减少序列化开销

2. 结果缓存

对于确定性准确定性的请求(相同输入大概率返回相同结果),通过语义缓存或精确匹配缓存直接返回结果,完全跳过 LLM 调用。

  • 精确匹配缓存:完全相同输入 → 直接返回缓存结果,命中率低但零成本
  • 语义缓存:语义相似输入 → 复用缓存结果(需向量相似度阈值判断)
  • 分层缓存:先精确匹配 → 再语义匹配 → 最后 LLM 调用

3. 工具结果缓存

工具调用(如搜索、数据库查询)的结果可以在一定时间内缓存,避免重复调用。特别是对于查询类工具,合理设置 TTL 可以大幅减少外部 API 调用次数。

  • 为每个工具调用定义缓存策略(缓存键、TTL、失效条件)
  • 搜索查询结果缓存 5~30 分钟;数据库查询缓存 1~5 分钟
  • 修改类操作(写、删)不缓存,并主动失效相关读缓存

📦 批处理优化

对于非实时场景(如批量评估、离线分析、数据预处理),使用批处理 API 可以显著降低成本:

批处理方式成本节省延迟适用场景
OpenAI Batch API 50% 最长 24 小时 离线评估、数据集处理
Anthropic Message Batches 50% 最长 24 小时 批量分析、内容审核
请求合并 10%~30% 实时(秒级) 多用户并发场景
并行工具调用 时间节约 减少等待 多工具并发执行

📊 成本优化方案对比

优化策略成本节省实现复杂度质量影响适用阶段优先级
Prompt 缓存 20%~40% 无影响 立即可用 🔥 最高
结果缓存 30%~70% 轻微(需调优) 高频场景 🔥 高
模型路由 30%~60% 可能有(简单任务) 流量增长后 🔥 高
上下文剪枝 15%~40% 轻微 长对话场景 🔥 高
工具缓存 10%~30% 时效性损失 查询类工具
批处理 50% 无影响(离线) 离线场景
限制步骤数 20%~50% 可能截断任务 所有场景
💡 优化路线图
  • Week 1:接入可观测性(Token 用量仪表板)、启用 Prompt Caching
  • Week 2-3:实现结果缓存(精确匹配 + 语义缓存)、定义模型路由规则
  • Month 2:上线工具结果缓存、上下文窗口优化(剪枝 + 摘要)
  • 持续优化:基于数据迭代路由策略、探索更便宜的模型替代方案