跳到主要内容

成本控制

核对日期:2026-05-09。模型价格、批处理折扣、缓存计费和速率限制变化较快,实际数值必须以上游官方价格页和控制台为准。

1. 定义与边界

成本控制是对 Agent 运行中产生的模型 token、工具调用、检索、队列、存储、观测和人工审批成本进行预算、测量、优化和限制。它不是简单选择最便宜模型;错误模型路由可能降低任务成功率,反而增加重试和人工处理成本。

2. 为什么重要

Agent 的成本具有放大效应:多轮推理、工具失败重试、长上下文、RAG 返回过多文档、评测批处理和 trace 存储都会叠加。生产系统需要在质量、延迟和成本之间建立可解释策略。

3. 核心机制

每次 run 记录成本账本:

{
"run_id": "run_01",
"tenant_id": "tenant_a",
"model_calls": [
{"model": "gpt-x", "input_tokens": 8000, "output_tokens": 500, "cached_tokens": 3000}
],
"tool_calls": [{"name": "search", "count": 2, "estimated_cost_usd": 0.01}],
"queue_seconds": 5,
"trace_bytes": 42000,
"budget_policy": "support_standard",
"estimated_total_usd": 0.08
}

预算控制链路:

4. 架构模式

模式适用场景风险
固定模型场景单一、质量优先成本无法随任务难度变化。
模型路由任务难度差异大路由器错误会影响质量。
上下文预算长会话、RAG裁剪错误会丢关键事实。
批处理离线评测、非实时任务延迟增加,不适合交互链路。
成本配额多租户或内部平台配额策略要避免误伤关键业务。

5. 工程实现

成本预算器:

def enforce_budget(ctx, planned_calls):
estimate = cost_estimator.estimate(planned_calls, ctx.model_policy)
remaining = budget_store.remaining(ctx.tenant_id, ctx.period)
if estimate > remaining.hard_limit:
raise BudgetExceeded()
if estimate > remaining.soft_limit:
return downgrade_plan(planned_calls)
return planned_calls

可控杠杆:

  • 限制最大轮数、最大工具调用次数、最大上下文 token。
  • 对低风险分类、摘要、抽取使用小模型或批处理。
  • 使用 prompt caching、检索缓存、工具结果缓存。
  • 对失败重试设置预算上限。
  • 对 trace 原文设置采样和保留策略。

6. 生产实践

  • 成本按 tenant_idagent_idfeaturemodelrun_id 聚合。
  • 每个 Agent 定义单次 run 的软/硬预算。
  • 高成本操作在用户或业务系统确认后执行。
  • 评测环境与生产环境分账,避免离线评测挤占线上预算。
  • 成本优化必须同时看任务成功率,不能只降 token。

7. 常见反模式

  • 无限制把完整历史、完整文档和完整工具结果塞给模型。
  • 对所有任务使用最强模型。
  • 工具失败后无限重试模型推理。
  • 只按总账单分析,不知道哪个 Agent 或 Prompt 版本放大成本。
  • 关闭 trace 省成本,导致故障不可诊断。

8. 评测方法

  • 单任务成本:按成功任务计算平均成本,而不是按请求。
  • 成本质量曲线:比较不同模型、上下文预算、缓存策略的成功率与成本。
  • 预算压力测试:模拟租户达到配额后的降级路径。
  • 异常检测:模型调用量、token、重试次数突然上升时告警。

9. 安全与治理

  • 防止攻击者通过超长输入、循环任务或工具诱导放大成本。
  • 对匿名或低信任用户设置更严格预算。
  • 成本日志不应暴露完整 Prompt 和敏感数据。
  • 预算绕过需要审批和审计。

10. 权威资料

11. 二次精修:Agent 成本模型

Agent 成本要按一次任务而不是一次模型调用核算。建议在 trace 中记录每个 run 的成本分解。

unit_success_cost =
(model_input_cost
+ model_output_cost
+ tool_api_cost
+ vector_db_cost
+ queue_worker_cost
+ human_review_cost
+ replay_eval_cost)
/ successful_tasks
成本项来源控制手段
输入 tokenprompt、历史上下文、RAG 文档上下文裁剪、摘要、缓存
输出 token推理过程和最终答案max output、结构化输出
工具调用搜索、浏览器、数据库、第三方 APItool budget、结果缓存
重试成本模型重试、工具重试、整单重跑错误分类、幂等、checkpoint
人工审核高危操作审批、质检风险分层、抽样策略
评测成本CI、回放、judge 模型分层 eval、样本抽样

12. 成本预算流程

{
"budget_event": {
"run_id": "run_123",
"model": "gpt-5",
"input_tokens": 4200,
"output_tokens": 900,
"tool_calls": 3,
"estimated_cost_usd": 0.18,
"budget_remaining_usd": 0.32,
"cost_center": "support_agent"
}
}

13. 成本治理与告警

  • 按租户、用户、Agent、工具、模型、版本六个维度聚合成本。
  • 对单 run 设置硬上限,对日预算设置软告警和熔断。
  • 成本优化必须同时看成功率,不能只把模型换小导致返工率上升。
  • 异常成本要能回溯到 trace:是哪一步、哪个工具、哪个 prompt 版本导致。
  • 安全上要防 prompt injection 诱导 Agent 无限调用工具、读取超大文档或生成超长输出。

14. 补充权威资料