跳到主要内容

Token与成本监控

1. 定义与边界

Token 与成本监控跟踪 Agent 在模型调用、上下文构造、检索、工具调用、重试和人工接管中的资源消耗。它关注单位任务成本和异常增长,而不是只看总账单。

2. 为什么重要

Agent 的成本可能被长上下文、重复检索、循环调用、失败重试、工具超时和注入攻击放大。没有成本监控,团队往往到月底账单或用户投诉时才发现问题。

3. 核心机制

成本需要按 trace 聚合:

4. 工程实现

成本字段:

{
"trace_id": "tr_001",
"task_type": "support_refund",
"model": "example-model",
"input_tokens": 6400,
"output_tokens": 820,
"cached_tokens": 1200,
"model_cost_usd": 0.031,
"tool_cost_usd": 0.004,
"retry_count": 2,
"unit_success_cost_usd": 0.035
}

预算策略:

budgets:
support_refund:
max_trace_cost_usd: 0.08
max_model_calls: 8
max_tool_calls: 12
max_context_tokens: 32000
on_exceed: "handoff_or_summarize"

5. 生产实践

  • 按任务类型、租户、渠道、Agent 版本和模型版本切分成本。
  • 对成本突增设置告警,尤其关注重试和长上下文。
  • 对高频任务优化 prompt、上下文裁剪、缓存和工具批处理。
  • 把成本和成功率一起看,避免“省钱但成功率崩掉”。

6. 常见反模式

  • 只在账单系统看总费用。
  • 不记录失败任务成本,低估问题严重性。
  • 没有 per-trace 预算,单个异常任务无限消耗。
  • 上下文拼接没有裁剪策略。

7. 评测方法

指标用途
Cost per Task单任务平均成本
Cost per Successful Task单成功任务成本
Token per Task上下文和输出规模
Retry Cost Ratio重试成本占比
Cost Outlier Rate超预算任务比例
Cache Hit Savings缓存节省估算

8. 安全与治理

异常成本可能是滥用、注入或死循环信号。预算超限时应优先停止危险动作,给用户透明说明并转人工或降级。

9. 权威资料

15. 主控验收清单

  • 是否能计算单次 run、单任务成功、单租户、单版本成本。
  • 是否区分 input、output、cached input token。
  • 是否把工具、向量库、队列 worker 和人工审核纳入成本。
  • 是否有单 run 硬预算和日预算软告警。
  • 是否能定位成本突增对应的 prompt_version。
  • 是否能识别重试和循环造成的成本放大。
  • 是否将 cost per success 作为主指标。
  • 是否对失败任务单独报告浪费成本。
  • 是否在降级后继续监控成功率。
  • 是否定期校准价格表和供应商账单。
  • 是否限制成本明细中的敏感字段。
  • 是否把超预算样本加入回归评测。

10. 二次精修:成本指标模型

Token 与成本监控必须从“模型调用”提升到“成功任务”层面,否则看不出重试、工具、人工审核带来的真实成本。

{
"event_name": "agent.cost_recorded",
"run_id": "run_123",
"agent_id": "refund_agent",
"model": "gpt-5",
"prompt_version": "refund.system@2026-05-09.3",
"input_tokens": 5200,
"output_tokens": 850,
"cached_input_tokens": 3000,
"tool_cost_usd": 0.04,
"model_cost_usd": 0.12,
"total_cost_usd": 0.16,
"task_success": true
}
维度必看原因
Agent/version发现某版本成本异常
Tenant/user tier控制租户预算
Model比较模型路由效果
Prompt version发现 prompt 膨胀
Tool combo识别高成本工具路径
Success/failure计算有效成本

11. 成本仪表盘

面板指标
总览今日成本、预算使用率、cost per success
模型input/output/cached tokens、模型成本
工具工具调用成本、失败重试成本
版本prompt/model/tool version 成本差异
异常单 run 超预算、租户突增、循环调用

12. 告警规则示例

alerts:
- name: "AgentDailyBudgetBurn"
expr: "daily_cost_usd / daily_budget_usd > 0.8"
severity: "warning"
- name: "CostPerSuccessSpike"
expr: "cost_per_success_usd > baseline * 1.5"
severity: "page"
- name: "RunCostHardLimit"
expr: "run_cost_usd > run_budget_usd"
severity: "critical"

13. 安全联动与治理

  • prompt injection 导致长输出、循环工具、批量检索时,成本告警要联动安全事件。
  • 预算熔断要保留用户可解释结果,不应静默失败。
  • 成本明细不能包含完整 prompt 或隐私输入。
  • 模型价格和缓存规则会变化,成本计算器要版本化并定期校准。
  • 指标:Cost Per Success、Retry Cost Ratio、Budget Breach Count、Token Waste Rate、Cost Attribution Coverage。

14. 补充权威资料