Agent 工具调用的 cost-aware 路由与 per-tool 预算工程
约 18 分钟5128 字1 次阅读

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 的成本:
其中 tokens_in 和 tokens_out 描述 LLM 维度的成本(prompt tokens + completion tokens),latency 描述时间成本(虽然不是直接美元,但 SLO 不达标等价于业务损失),dollar 描述硬支出。真正的成本管理必须同时跟踪这四个维度——只看 dollar 等于盲人摸象,看 token 忽视第三方 API 的 per-call 费用,看 latency 忽视 GPU 闲置成本。
在四元组之上,预算策略分三类:
- Hard cap(硬上限):单次任务的总成本超过阈值立即终止任务并抛错。适合批处理场景(每月财务报表生成)。
- Soft cap(软上限):累计成本超过预算的 80% 时触发降级(切到便宜模型、跳过非关键工具)。适合交互式 Agent(用户能接受轻微质量下降换取成本可控)。
- 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 参数或模型选择。
路由策略分四类:
- cheapest-first:永远选最便宜的能完成任务的工具。优点是成本可预测,缺点是 quality 经常不达标。
- quality-first:永远选 quality 最高的工具,cost 是次要约束。适合高价值任务(合同审查、代码评审)。
- cascade:先用便宜工具试探,如果 confidence < 阈值再升级到贵工具。Anthropic 在 2026 年初的技术报告里展示的 cascade routing 能节省 40–60% 成本而 quality drop < 5%。
- 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 才能从演示玩具走向商业基础设施。
参考文献
- Anthropic Engineering Blog. Cascade Routing for Cost-Efficient Tool Use. 2026.
- Cognition Labs. Devin Production Cost Architecture: Lessons from 1M Tasks. Tech Talk 2026.
- Replit Engineering. Agent Tool Pricing Models and Cost Attribution. 2026.
- Langfuse Documentation. Cost Tracing and Per-Step Attribution. v3.2, 2026.
- Helicone Engineering. Production Cost Observability for LLM Applications. 2026.
- OpenLLMetry Specification. OpenTelemetry Semantic Conventions for AI Cost. v1.4, 2026.
- LangGraph Documentation. Router Node Design Patterns. v0.5, 2026.
- Anthropic Pricing Page. Claude API Token Economics 2026. 2026.
- OpenAI Pricing Page. GPT-5 and Tool Pricing Models. 2026.
- Tavily Search API Pricing. Per-Call vs Subscription Models. 2026.
- Brave Search API Documentation. Enterprise Tier Pricing. 2026.
- Exa Neural Search. Credit-Based Pricing for Agent Use Cases. 2026.
- Pinecone Engineering. Vector Database Cost Optimization. 2026.
- Stripe Agent Documentation. Cost Preview and Per-Task Budget. 2026.
- Prometheus Best Practices. Sliding Window Aggregations for Cost Metrics. 2026.
- Manus Engineering Blog. Cost-Aware Cascade Routing in Production. 2026.