Agent预算不能只报警:50%、80%、100%该怎么控
Agent 成本最危险的地方不是单次请求贵,而是:
一个任务自己循环
一个团队突然放量
一个自动化一夜跑几万次
传统云成本管理经常是:
月底看账单
这对 Agent 太慢。
Google Cloud 8月26日公布的新一轮 Agent FinOps 控制里,最值得工程团队关注的是几个非常具体的机制:
项目级月度硬上限
50% / 80% / 100% 邮件告警
异常成本检测
Top 3 SKU根因
统一池化配额
Pay-as-you-go
Deferred Execution最高可降低约一半推理成本
Flexible Savings Plans 则给出:
1年承诺:10% token折扣
3年承诺:20% token折扣
真正应该借鉴的是:
Agent 成本必须进入运行时控制面,而不是只进财务报表。
第一层:预算要分层
不要只有:
Company Monthly Budget
至少:
Enterprise
Tenant
Project
Agent
Task Type
Run
例如:
budgets:
tenant-a:
monthly_usd: 5000
research-agent:
daily_usd: 150
deep-research:
per_run_usd: 2.5
只有最上层预算,根本找不到是谁烧掉的。
第二层:50%、80%、100%不能只发邮件
一个更实用的状态机:
0—50%:
NORMAL
50—80%:
WATCH
80—100%:
RESTRICT
100%:
HARD_STOP
每个阶段动作不同。
50%:提高可见性
增加成本采样
显示本月预测
检查增长率
通知Owner
不影响业务。
80%:开始限制低价值任务
可以:
关闭非关键Nightly Eval
降低并发
禁止高成本模型跑低风险任务
把可延迟任务转Deferred
不是直接停所有 Agent。
100%:硬停也要按任务分层
Google 的项目级 Spend Cap 到上限后会暂停 Agent API Call,同时不影响其他生产基础设施。
企业自己实现时也应该只控制:
AI消费面
不要连数据库和业务 API 一起停。
Task Criticality
public enum TaskCriticality {
CRITICAL,
IMPORTANT,
NORMAL,
DEFERRABLE
}
100%时:
DEFERRABLE:
停止
NORMAL:
停止
IMPORTANT:
需要Override
CRITICAL:
走Emergency Budget
安全告警 Agent 和日报 Agent 不能同等处理。
第三层:Run开始前先做Admission Control
不要:
任务跑完
→发现花了$8
启动前先估成本。
public record RunCostEstimate(
BigDecimal expected,
BigDecimal p90,
BigDecimal maxAllowed,
String estimatorVersion) {
}
如果:
p90 > remaining_budget
可以:
切便宜模型
缩小检索范围
减少Sub-Agent
延迟执行
拒绝运行
成本预测不用一开始就上机器学习
先按历史 Task Type 统计:
P50
P90
P95
例如:
select
percentile_cont(0.9)
within group (
order by total_cost_usd
)
from agent_run_cost
where task_type = 'deep-research'
and occurred_at >= now() - interval '30 days';
这已经比完全不估强很多。
第四层:运行中还要有Cost Circuit Breaker
长任务预算:
$2
当前已花:
$1.65
Planner 准备再开 8 个 Sub-Agent。
这时 Runtime 必须干预。
if (runCost.current()
.compareTo(
budget.maxRunCost()
.multiply(
new BigDecimal("0.8")))
>= 0) {
runtime.enableEconomyMode();
}
Economy Mode 可以:
减少并发
降低模型档位
缩短搜索深度
减少Reviewer次数
禁止非必要Tool
到100%不能只throw Exception
如果已经运行 20 分钟:
先Checkpoint
再停。
if (runCost.current()
.compareTo(
budget.maxRunCost())
>= 0) {
checkpointService.save(runId);
throw new RunBudgetExceededException();
}
用户提高预算以后可以 Resume。
不要让已经完成的大量工作全部丢掉。
第五层:异常成本要能归因
Google 新工具会把异常趋势定位到 Top 3 SKU。
Agent 平台内部应该继续拆:
Model
Tool
Agent
Task
Tenant
例如:
{
"spike": "+186%",
"drivers": [
{
"type": "model",
"name": "frontier-reasoner",
"delta_usd": 912.18
},
{
"type": "task",
"name": "repo-migration",
"delta_usd": 487.11
}
]
}
这样才知道应该:
换模型
还是停任务
第六层:Deferred Execution非常适合Agent
Google 公布的方向是:
可延迟Agent工作
在非高峰容量执行
最高可降低约一半推理成本
适合:
Nightly Eval
离线Embedding
批量文档分类
日报
代码库全量Review
这些任务没有必要和实时对话抢同一种成本结构。
给Task加Deadline
public record SchedulingProfile(
Instant earliestStart,
Instant deadline,
boolean deferrable,
TaskCriticality criticality) {
}
Scheduler 可以判断:
现在贵
→晚点跑
只要 Deadline 允许。
实时和延迟任务必须分池
Realtime Pool
Deferred Pool
Realtime 目标:
低延迟
高优先级
Deferred 目标:
低成本
高吞吐
可批处理
不要一个队列混在一起。
第七层:Savings Plan不能只看折扣
1年 10%、3年 20% 很好看。
真正决定是否承诺的是:
Baseline Usage
Growth
Volatility
如果月消费波动:
$1000
$6000
$900
$7000
长期承诺未必合适。
至少先看:
过去90天P50
过去90天P90
增长率
如果 P50 稳定且增长明确,更适合承诺。
第八层:核心指标仍然是Cost per Successful Task
总花费下降:
不等于效率提高
可能只是任务成功率下降。
所以成本优化要同时看:
Task Success
Latency
Human Rework
最核心:
Cost / Successful Task
一个成本优化Gate
cost_optimization_gate:
task_success_drop_max: 0.005
cost_per_success:
target_reduction: 0.10
p95_latency_increase_max: 0.20
不能为了便宜,明显牺牲质量。
第九层:预算Override必须有期限
项目达到 100%。
业务说:
今天必须继续跑
可以开 Temporary Overage。
但必须保存:
Owner
Reason
Extra Budget
Expiry
public record BudgetOverride(
String scopeId,
BigDecimal extraBudget,
String reason,
String approvedBy,
Instant expiresAt) {
}
不要永久把上限从 1000 改成 10000,然后忘掉。
第十层:Agent不能修改自己的预算
这是非常重要的一条。
如果负责花钱的 Agent 同时有:
budget.update
它在成本压力下可能自己“解决”限制。
所以:
Agent Runtime
只能读预算。
Budget Controller
独立身份、独立审批。
Budget变更本身也要审计
$1000
→$10000
这是重大控制变化。
至少需要:
Approval
Reason
Owner Notification
Audit
高风险环境可以走 Git / PR。
第十一层:项目预算和单Run预算不能互相替代
月预算还有很多:
不代表一个Run可以无限烧
反过来,每个 Run 都很便宜:
也不代表一天跑100万次没问题
所以:
Per Run Limit
+
Per Hour Limit
+
Daily Limit
+
Monthly Limit
都要有。
一个层级检查
Run Admission
↓
Agent Daily Budget
↓
Tenant Monthly Budget
↓
Enterprise Monthly Budget
任何一层不足:
降级 / 延迟 / 拒绝
我会监控这9个指标
agent_cost_usd_total
agent_cost_per_success
agent_budget_utilization
agent_budget_override_total
agent_run_budget_exceeded_total
agent_deferred_task_total
agent_cost_anomaly_total
agent_cost_forecast_usd
agent_cost_driver_top
其中:
budget_utilization
最好同时展示:
Actual
Forecast
现在花 40% 不代表安全。
如果月份刚过 20%,预测可能已经超预算。
一个完整控制链
Cost Forecast
↓
Run Admission
↓
Runtime Circuit Breaker
↓
Project Spend Cap
↓
Anomaly Detection
↓
Owner Override
这套链比月底报表强太多。
Agent 成本治理成熟以后,不应该只问:
这个月花了多少钱?
而应该在任务执行前就回答:
还有多少预算?
这次预计花多少?
是否值得现在跑?
能不能延迟?
达到80%以后要降什么?
达到100%以后哪些任务必须停?
50%、80%、100% 不是三个提醒数字。
它们应该是三个不同的运行状态。
只有把预算真正接到 Agent Runtime,FinOps 才从“看账单”升级成“控制行为”。
更多企业级 AI 应用、Agent、RAG 与模型工程化内容,我会继续整理在 智元界:
https://www.zyentor.com/