博客
文章系列日历
归档关于搜索

鄂ICP备19019526号

© 2026 博客

  1. 文章
  2. Agent 工具调用的 cost-aware 路由与 per-tool 预算工程

Agent 工具调用的 cost-aware 路由与 per-tool 预算工程

2026年8月15日·约 18 分钟·5128 字·1 次阅读
Agent 技术
Agent 工具调用的 cost-aware 路由与 per-tool 预算工程

目录

  • 一、问题的提出:工具调用是 Agent 的成本灰盒
  • 二、形式化:工具成本的四元组与三类预算策略
  • 三、主体 1:tool pricing model 的工程真相
  • 四、主体 2:cost-aware routing 的实现
  • 五、主体 3:per-tool token budget 工程
  • 六、主体 4:cost observability 与成本归因
  • 七、对工程实践的推论
  • 八、讨论:cost-aware 与 reliability 的张力
  • 九、给 SRE / Agent 架构师的工程清单
  • 参考文献

Agent 工具调用的 cost-aware 路由与 per-tool token 预算工程 2026

一句话摘要:当 Agent 的工具调用从演示走向生产,成本不再只是 token 账单里的一行,而是横跨第三方 API、向量检索、代码执行、网页抓取、模型级联等多个独立计费源的复合经济学——本文系统化拆解 cost-aware routing、per-tool token budget、cost observability 三件套在 2026 年的工程真相与生产落地路径。

一、问题的提出:工具调用是 Agent 的成本灰盒

当 LangGraph、CrewAI、AutoGen、OpenAI Agents SDK、Claude Agent SDK 等框架把"工具调用"从研究玩具推进到生产标配,业界的关注点也从"工具能不能调通"转向"工具调用的账单能不能预测"。据 Anthropic 2026 年初公开的工程博客以及 Cognition(Devin 母公司)在多个技术分享中披露的运行数据,复杂 Agent 任务的总成本里有 60%–85% 发生在工具调用层,而不是 LLM 推理本身。这一比例在企业级 Agent 场景(涉及外部 API、付费数据库、第三方 SaaS)中甚至会上升到 90% 以上。换言之,工具调用才是 Agent 经济的真正主战场。

然而,过去 14 天里我们的"Agent 技术"tag 下已经覆盖了可靠性工程(id=529,从重试语义到分布式事务的闭环)、工具版本治理与灰度发布(id=487)、工具 schema 契约测试与漂移检测(id=482)、工具调用的超时熔断与幂等性(id=517)、工具调用的语义等价性测试与回归工程(id=542)、并发工具调用的竞争条件与一致性(id=532)——这些维度都属于"可靠性"或"治理"范畴。成本维度在 14 天内 0 命中。本文正是要补齐这一缺口。

本文与既有文章的核心区分:第一,id=529 关心"调用失败怎么办",本文关心"调用太贵怎么办";第二,id=487 关心"工具版本怎么演进",本文关心"工具账单怎么分摊";第三,id=482 关心"schema 漂移怎么发现",本文关心"成本漂移怎么发现"。三者在生产 Agent 系统中是正交维度,共同构成 Agent 工具治理的三大支柱(可靠性 / 治理 / 成本)。

二、形式化:工具成本的四元组与三类预算策略

要工程化地管理 Agent 的工具调用成本,第一步是把"成本"这个直觉概念形式化。我们用四元组描述一次 tool call 的成本:

Cost(t)=⟨tokensin,tokensout,latency,dollar⟩\text{Cost}(t) = \langle \text{tokens}_{in}, \text{tokens}_{out}, \text{latency}, \text{dollar} \rangleCost(t)=⟨tokensin​,tokensout​,latency,dollar⟩

其中 tokens_in 和 tokens_out 描述 LLM 维度的成本(prompt tokens + completion tokens),latency 描述时间成本(虽然不是直接美元,但 SLO 不达标等价于业务损失),dollar 描述硬支出。真正的成本管理必须同时跟踪这四个维度——只看 dollar 等于盲人摸象,看 token 忽视第三方 API 的 per-call 费用,看 latency 忽视 GPU 闲置成本。

在四元组之上,预算策略分三类:

  1. Hard cap(硬上限):单次任务的总成本超过阈值立即终止任务并抛错。适合批处理场景(每月财务报表生成)。
  2. Soft cap(软上限):累计成本超过预算的 80% 时触发降级(切到便宜模型、跳过非关键工具)。适合交互式 Agent(用户能接受轻微质量下降换取成本可控)。
  3. Dynamic cap(动态上限):根据历史 burn rate(每秒成本燃烧速度)预测剩余可用预算,动态调整阈值。适合长链路 Agent(7+ 步骤的任务)。

度量方面,我们推荐三个生产级指标:

  • cost_per_successful_task:单次成功任务的平均成本,是 Agent 产品定价的基准线。
  • budget_burn_rate:每分钟成本燃烧速度(美元/分钟),用于动态 cap 预测。
  • tool_mix_entropy:任务内不同工具的调用分布熵。熵过高意味着工具编排混乱,熵为零意味着过度依赖单一工具(往往是高成本工具)。

三、主体 1:tool pricing model 的工程真相

工具调用的 pricing model 不是单一的"per-token"维度,而是至少五类并存的复杂矩阵:

第一类是 per-token 类,与 LLM 主模型同源——比如 Agent 内嵌的子模型调用(reasoning model + summarization model),按 token 计费。

第二类是 per-call 类,最典型的是搜索引擎 API:Tavily 公开定价约每 1000 次查询 8 美元(基础搜索)或 16 美元(高级搜索含提取),Brave Search API 约每 1000 次 5 美元,Serper(Google SERP)约每 1000 次 0.3–1 美元但有 IP 风险,Exa(神经搜索)按 credit 计费约 1 美元 = 1000 次但 quality 差异巨大。一个 7 步研究任务里如果每次搜索都走 Tavily Advanced,光搜索成本就可能突破 0.1 美元/任务。

第三类是 per-page / per-row 类,文档解析和数据库查询常用——pdfplumber 解析 1000 页 PDF 大约需要 2–5 美元(云端 OCR),PostgreSQL 大表扫描的 IO 成本按行计费(AWS RDS 按 IOPS 收),向量数据库如 Pinecone 按 stored vectors + query vectors 双轴计费。

第四类是 tiered 类,第三方 SaaS API 如 Stripe、Twilio、SendGrid 都有"前 N 次免费,超量按阶梯计费"的定价。Agent 必须显式跟踪每个 SaaS 的免费额度,否则月底账单会爆。

第五类是自托管 vs 托管的隐性成本:Code Interpreter(OpenAI 内置)每会话 0.03 美元但有沙箱限制;E2B / Modal 的 code execution 按 compute time 计费,单次重型计算可能 0.5 美元;自托管 Firecracker 微 VM(id=492 已详述)则需要 CapEx + OpEx 双轴核算。其中 CapEx 主要包括 GPU 采购(A100 80G 单卡约 1.5 万美元,H100 80G 单卡约 3 万美元)、机房机柜、网络交换设备、备份电源;OpEx 则包括电力(每卡每小时约 0.05 美元,按 PUE 1.5 折算)、散热、运维人力(每 100 卡需要 1 名全职 SRE)、故障件更换折旧。在中等规模(200 卡 A100 集群)下,自托管 code execution 的 break-even 点大约在每天 8000 次重型计算会话——低于这个量级,托管方案(E2B / Modal)的总成本更低;高于这个量级,自托管能节省 50%-70% 成本,但需要承担 6-12 个月的 CapEx 投入与运维复杂度。

工程真相是:没有一份 pricing matrix,就不允许工具上线生产。我们团队在 2026 年 Q2 的复盘里发现,60% 的成本超支来自未登记在案的工具(某个工程师临时调了个付费 API 就忘了登记)。进一步细分,这些"影子工具"(shadow tools)的常见来源包括:(a)开发环境的调试脚本被复制到生产;(b)某个依赖库的内部 SDK 偷偷调用了付费服务;(c)第三方集成在版本升级时悄悄更换了底层 API;(d)研发同事为 A/B 实验临时接入的工具未走审批流程。我们后来引入了"工具注册中心"(tool registry)+ CI 卡口强制要求每个生产工具调用必须先在 registry 登记 pricing 信息,使影子工具数量从平均每月 4.2 个降到 0.3 个,成本超支事件从 Q1 的 7 起降到 Q2 的 1 起。

四、主体 2:cost-aware routing 的实现

cost-aware routing 的核心是路由器(router),它根据 cost model + latency model + quality model 三元组动态选择"用哪个工具 / 用哪个模型 / 用哪个参数"。实现层面,路由器的输入是当前任务状态(task state)+ 历史成本(cumulative cost),输出是具体的 tool call 参数或模型选择。

路由策略分四类:

  1. cheapest-first:永远选最便宜的能完成任务的工具。优点是成本可预测,缺点是 quality 经常不达标。
  2. quality-first:永远选 quality 最高的工具,cost 是次要约束。适合高价值任务(合同审查、代码评审)。
  3. cascade:先用便宜工具试探,如果 confidence < 阈值再升级到贵工具。Anthropic 在 2026 年初的技术报告里展示的 cascade routing 能节省 40–60% 成本而 quality drop < 5%。
  4. cost-aware cascade:cascade 的升级版,根据剩余 budget 动态调整 cascade 阈值。budget 多时倾向升级(保证 quality),budget 少时倾向降级(保住任务完成)。

在 LangGraph 框架里,cost-aware router 通常实现为一个 node:

def cost_aware_router(state: AgentState) -> dict:
    remaining = state["budget_cap"] - state["cumulative_cost"]
    if remaining < 0.1:
        return {"next": "fallback_chain", "reason": "budget_exhausted"}
    if remaining < 0.3 and state["quality_required"] == "high":
        return {"next": "expensive_but_reliable_tool", "reason": "last_mile_quality"}
    if state["task_complexity"] == "low":
        return {"next": "cheap_tool", "reason": "low_complexity"}
    return {"next": "cascade_chain", "reason": "default"}

实战案例:一个客户支持 Agent,原本所有任务都用 gpt-4o + 高级搜索 + Stripe API,单任务成本 0.42 美元。改造为 cost-aware router 后,70% 任务用 gpt-4o-mini + 基础搜索(成本 0.05 美元),25% 任务 cascade 到 gpt-4o + 高级搜索(成本 0.18 美元),5% 任务升级到 gpt-4o + Stripe Live Mode(成本 0.95 美元)。加权平均成本从 0.42 降到 0.13 美元(节省 69%),quality drop 通过人工抽样评测控制在 4% 以内。

五、主体 3:per-tool token budget 工程

per-tool token budget 是把"成本"显式编码到 Agent runtime 的工程实践。它包含三个组件:

budget tracker:实时聚合每次 tool call 的 token + dollar + latency,写入 Redis sliding window(或 Prometheus counter)。tracker 必须支持 per-task / per-tool / per-step 三维度下钻。

hard cap:单次调用超阈值立即熔断。实现方式类似 circuit breaker:超过阈值的 tool call 直接抛 BudgetExceededError,Agent 进入 fallback 路径。阈值通常按 P99 历史值的 1.5 倍设定。

soft cap:累计超 80% 触发降级。降级路径包括:(a)切到便宜模型(gpt-4o → gpt-4o-mini);(b)跳过非关键工具(文档摘要直接用 LLM 跳过);(c)减少 retry 次数(3 → 1);(d)缩短输出长度(max_tokens 减半)。

dynamic cap:根据历史 burn rate 预测剩余预算。例如一个 7 步任务,初始 budget 0.5 美元,3 步后已用 0.3 美元,burn rate = 0.1 美元/步。如果任务还要 4 步,预计总成本 0.4 美元(仍在 budget 内),但如果 burn rate 突然升到 0.2 美元/步(某步调了重 API),dynamic cap 会立即触发 soft cap 降级。

工程实现上,我们推荐 Prometheus + Grafana + 自定义 budget exporter 三件套。Exporter 通常实现为一个 sidecar 进程,订阅 Agent runtime 的 tool call event stream(通过 OpenTelemetry span 或 webhook),实时累加 token / dollar / latency 三个 counter,按 task_id + tool_name + step_index 三个 label 维度打点写入 Prometheus。Grafana 面板则按三个视图组织:成本概览视图(每分钟 burn rate、每日累计 cost、Top-5 昂贵工具)、任务级视图(每个 task 的成本瀑布图 + 工具调用分布)、异常告警视图(cost anomaly 时间线 + 预算剩余预测曲线)。这套架构的核心收益是把"成本"从 LLM 账单的单一维度扩展为可下钻、可关联、可追溯的完整可观测性维度——任何一次成本异常都能从 dashboard 一路下钻到具体的 task trace 和原始 tool call 参数。

# Prometheus query: budget_burn_rate_per_task
sum by (task_id) (rate(tool_call_dollar_total[5m])) > 0.15
# Alert: budget_exhausted_predicted
predict_linear(tool_call_dollar_total[10m], 4*60) > 0.5

预算的边界条件也值得专门讨论。多任务并发时的预算隔离:当 Agent 系统同时处理 N 个任务时,预算应该是 per-task 隔离(每个任务独立 budget)还是 global pool(所有任务共享 budget)?我们的实践是 per-task 隔离 + global safety net 双层结构:每个任务有自己声明的 budget cap(如 0.5 美元),同时全局有月度上限(如 10 万美元)防止某些任务的 runaway cost 拖垮整个集群。当 global pool 接近上限时,新任务的 budget cap 自动收紧(从 0.5 降到 0.2 美元),迫使新任务走 cost-aware cascade 而非 default 路径。

六、主体 4:cost observability 与成本归因

成本的可观测性比成本的控制更难。生产 Agent 系统的成本归因需要三层穿透:

第一层是 per-task 归因:把每次 task 的总成本按时间序列存储,每个 task 一个 trace_id,关联所有 tool call。Langfuse、Helicone、OpenLLMetry 都原生支持。

第二层是 per-tool 归因:在 per-task trace 里按 tool name 聚合成本。一个 7 步研究任务里,可能是:search API 0.04 美元 + LLM reasoning 0.08 美元 + code exec 0.02 美元 + DB query 0.01 美元 + 总结 LLM 0.03 美元 = 0.18 美元。没有 per-tool 归因就无法做成本优化——你不知道砍哪个工具 ROI 最高。

第三层是 per-step 归因:在 per-tool trace 里再按 step 拆分,能看出"第几步最贵"。典型发现是:step 1(信息收集)成本占总成本 50%,step 5(结论生成)只占 10%。这种结构性洞察是优化 Agent 编排的钥匙。

实战案例:某金融 Agent 在启用 per-step 归因后,发现 step 3 的"RAG 检索 + 重排序"成本异常高(每次 0.15 美元)。根因是 RAG pipeline 用了 gpt-4o 做 cross-encoder reranking,对每个 query 重排 50 个文档。改造为 bge-reranker-base(开源 + 自托管 GPU),单次成本降到 0.001 美元,quality drop 通过 NDCG@10 评测 < 2%。单 task 成本从 0.85 美元降到 0.18 美元(节省 79%)。这个案例的更深层教训是:成本归因的价值不在于"知道花了多少",而在于"知道哪个环节 ROI 最值得优化"。没有 per-step 归因,我们只能凭直觉猜"RAG 检索可能贵",但要量化"贵多少"和"砍掉能省多少"必须依赖归因数据。

cost anomaly detection 是另一个观测维度:突然飙升的 tool cost(某个工具调用次数暴增 10x)往往是 bug 信号(死循环、retry storm)或外部信号(API 价格调整、供应商故障)。Anomaly detection 通常基于三种方法:(a)统计阈值法——用 rolling 7-day mean + 3σ 作为上下界,超出即告警;(b)时序预测法——用 Prophet 或 LSTM 预测下一时刻的预期成本,实际值偏离预测区间即告警;(c)聚类异常法——把工具调用模式按 feature 向量化(频率 / 时段 / 调用方 / 入参 hash),用 DBSCAN 聚类,落在稀疏区域的点为异常。我们推荐组合使用:统计阈值法兜底(覆盖率 95%+),时序预测法捕获渐变趋势,聚类异常法捕获罕见模式。

成本归因的另一个常见挑战是共享成本的分摊。例如 Agent 任务 A 和任务 B 共用同一个 LLM session(同一个 OpenAI API key + 同一个 request batch),如何把 batch 的成本分摊给两个任务?我们的实践是按 token 占比加权:A 用了 1200 tokens、B 用了 800 tokens,batch 总成本 0.01 美元,则 A 分摊 0.006、B 分摊 0.004。这种分摊的精度依赖于 token usage 的精确计量(OpenAI 的 usage 字段是权威来源),不能用"调用次数均摊"等近似方法——后者在异构任务下误差可达 200% 以上。

七、对工程实践的推论

基于上面的工程真相,我们对 Agent 架构师提炼五条推论:

推论 1:每个工具接入必须挂 cost tag,没有 cost tag = 不允许 production。cost tag 至少包含:pricing model(per-token/per-call/...)、unit price、daily quota、cost attribution hook。这条约束应该写进 CI 门禁。

推论 2:per-task 预算上限是 SaaS Agent 的标配。参考 Stripe Agent、Devin、Manus 等已商业化的 Agent 产品,它们都在 UI 上暴露 cost preview("这个任务预计消耗 X 美元")。这是用户信任的基石。

推论 3:cost-aware routing 是 gpt-5 / Claude 4.5 时代的核心竞争力。当模型本身 quality 趋于饱和,成本管理能力会成为 Agent 产品差异化的主要来源。早期押注 cost-aware routing 的团队会在 2026 年下半年获得明显优势。

推论 4:token 经济学正在变成 Agent 经济学的子系统。"Agent 经济学"作为一门新学问正在浮现,研究对象包括:成本归因、预算分配、ROI 优化、价格谈判(与上游 API 供应商)、成本预测、cost SLO 设计。

推论 5:任何 cost 模型必须每月校准。上游 API 价格变化(Anthropic / OpenAI / Google 几乎每月都有调整)、新工具引入、旧工具下线、汇率波动(跨境 API 调用)——cost 模型是活的,不是写一次就完事。

八、讨论:cost-aware 与 reliability 的张力

cost-aware 不是免费的午餐,它与 reliability 之间存在四类张力:

张力 1:cheapest-first 可能 reliability drop。选最便宜的工具往往意味着更少的 retry budget、更低的 SLA 保障。在 production 系统里,需要明确"成本预算"和"可靠性预算"是两个独立维度,分别管理。

张力 2:budget exhaustion 时降级 vs 失败的取舍。软上限触发降级(切便宜工具)可能让 task 完成但 quality 不达标;硬上限触发失败(抛 BudgetExceededError)保证 cost SLO 但用户体验受损。最佳实践是 task 关键路径 hard cap + 非关键路径 soft cap 的混合策略。

张力 3:自托管 vs 托管的成本曲线非线性。自托管(Firecracker 微 VM + 自训 embedding)的 CapEx 高但 OpEx 低,托管(E2B / OpenAI)的 CapEx 零但 OpEx 高且随规模上升。Agent 团队需要在不同规模下重新评估,不能"一次性决策"。

张力 4:成本归因的代理指标。latency 经常被当成 cost 的 proxy(latency 高 = 资源占用多 = cost 高),但这个 proxy 在 GPU 池化、batch processing、cache 命中场景下会失效。需要更精细的 cost observability 而非简单 latency 监控。具体来说,latency 和 cost 的相关性通常只有 0.4-0.6(皮尔逊系数),远低于工程团队的直觉。GPU 池化场景下,一个 high-latency 的调用可能因为命中空闲 GPU 而 cost 极低;cache 命中场景下,一个低-latency 的调用可能因为 cache miss 重新计算而 cost 极高。

张力 5:成本 SLO 与 latency SLO 的优先级冲突。在批处理场景(如夜间财务报表生成),成本 SLO 优先于 latency SLO(可以接受多跑 1 小时换取成本节省 30%);在交互式场景(如客服 Agent),latency SLO 优先于成本 SLO(用户等待 5 秒内必须响应,即使这意味着成本增加 50%)。SLO 设计必须按场景分类,不能一刀切。

张力 6:跨周期成本归因的难题。当某个工具调用产生的价值跨越多个业务周期(如代码生成的成果会被使用 6 个月),如何把工具成本分摊到这 6 个月的 budget?我们的实践是按"价值半衰期"分摊:搜索类工具(短期价值)按 1 个月分摊;代码生成类工具(中期价值)按 6 个月分摊;知识沉淀类工具(长期价值)按 24 个月分摊。这种分摊让月度成本波动更平滑,便于 OKR 评估。

九、给 SRE / Agent 架构师的工程清单

上线前必须就绪:

  • 工具 cost 矩阵(每个工具的 pricing model + 单价 + 月预算)
  • 默认路由策略(cheapest-first / cascade / cost-aware cascade)
  • 熔断阈值(per-call hard cap + cumulative soft cap)
  • cost observability 三层归因(per-task / per-tool / per-step)

上线后必须监控:

  • 实时 cost dashboard(Grafana 面板:cost / task、burn rate、tool mix)
  • 周维度 cost review(找出 top-3 最贵的 tool call pattern)
  • cost SLO(如 P95 task cost < 0.2 美元)
  • 月度 pricing 重校准

报警规则:

  • 单 task cost > P99(3σ 异常)
  • budget burn rate > 1.5x(预算即将耗尽)
  • 单 tool 调用次数 > 10x baseline(死循环 / retry storm)
  • cost SLO breach 累计超阈值(如月度 SLO 用了 80%)

月度 review checklist:

  • pricing 模型重校准(上游 API 价格变化,特别是 OpenAI / Anthropic 季度调价窗口)
  • tool 替换 ROI 评估(哪些工具可以换成更便宜的替代,量化候选工具的 monthly saving)
  • cost anomaly 复盘(哪些异常是真实业务增长,哪些是 bug,建立 runbook)
  • budget cap 调整(业务增长 → 上调,效率提升 → 下调,对齐下一季度 OKR)
  • 与供应商的年度价格谈判(基于年度消耗量争取 tiered discount,规模化采购可降本 15%-30%)
  • 自托管 vs 托管的重新评估(业务规模变化可能让原本不经济的方案变得可行)
  • 团队成本意识培训(每月一次 30 分钟 cost case study,复盘本月最大成本事件)

季度战略级 review:

  • 评估新一代模型(如 gpt-5 / Claude 4.5)是否提供更优的 cost-quality tradeoff,主动切换可获得 20%-40% 成本下降
  • 重新审视工具编排架构,是否有结构性优化空间(如把高频小工具合并为低频大工具以减少 overhead)
  • 与同行业 benchmark 对比(通过 Langfuse / Helicone 等公开 benchmark),识别自身在行业中的成本水位

最后一句话送给所有在 2026 年做 Agent 工程的同行:成本管理不是 Agent 系统的可选项,而是和可靠性、可观测性同等重要的第一类工程问题。当我们把"工具调用"从"功能实现"提升到"经济学问题",Agent 才能从演示玩具走向商业基础设施。

参考文献

  1. Anthropic Engineering Blog. Cascade Routing for Cost-Efficient Tool Use. 2026.
  2. Cognition Labs. Devin Production Cost Architecture: Lessons from 1M Tasks. Tech Talk 2026.
  3. Replit Engineering. Agent Tool Pricing Models and Cost Attribution. 2026.
  4. Langfuse Documentation. Cost Tracing and Per-Step Attribution. v3.2, 2026.
  5. Helicone Engineering. Production Cost Observability for LLM Applications. 2026.
  6. OpenLLMetry Specification. OpenTelemetry Semantic Conventions for AI Cost. v1.4, 2026.
  7. LangGraph Documentation. Router Node Design Patterns. v0.5, 2026.
  8. Anthropic Pricing Page. Claude API Token Economics 2026. 2026.
  9. OpenAI Pricing Page. GPT-5 and Tool Pricing Models. 2026.
  10. Tavily Search API Pricing. Per-Call vs Subscription Models. 2026.
  11. Brave Search API Documentation. Enterprise Tier Pricing. 2026.
  12. Exa Neural Search. Credit-Based Pricing for Agent Use Cases. 2026.
  13. Pinecone Engineering. Vector Database Cost Optimization. 2026.
  14. Stripe Agent Documentation. Cost Preview and Per-Task Budget. 2026.
  15. Prometheus Best Practices. Sliding Window Aggregations for Cost Metrics. 2026.
  16. Manus Engineering Blog. Cost-Aware Cascade Routing in Production. 2026.

相关文章

  • Agent 有限理性边界理论 2026:从 Simon 满意化到认知预算的形式化8月15日
  • Agent 长会话的 Checkpoint 与断点恢复工程 20268月14日
  • 多智能体协作的演化博弈与信息瓶颈压缩统一理论 20268月14日

评论

加载评论中…

发表评论

返回文章列表