AI 纪元 追踪人工智能最新进展,深度解读前沿技术

Agent FinOps:预算护栏要卡在执行前

多 Agent 工作流能调用模型和外部 API 后,费用可能在看板报警前持续累积。结合 Vantage、AWS 与 FinOps Foundation 的公开材料,梳理网关配额、Token 归因、循环熔断、续费权限和企业级审计的落点。

0 次阅读 约 2841 字 6 分钟 AI 生成
Editorial still life of a gate valve meter controlling golden tokens on a track
Editorial still life of a gate valve meter controlling golden tokens on a track

聊 Agent FinOps,常见讨论会先落到“让智能体帮忙查云账单”。Vantage FinOps Agent 接入 Slack 后,可以理解云基础设施、回答成本问题,并执行自动化节省动作。AWS 中国博客 展示了另一种分工:FinOps Agent 发现费用异常、分析根因,DevOps Agent 负责运行时验证和安全清理。该案例给出的结果是,每月减少约 4,100 美元的不必要支出。

这些方案解决了云成本治理的执行效率。企业还得管另一笔账:Agent 自己调用模型、占用 GPU、访问外部 API 产生的费用。系统也许很会找闲置资源,却未必管得住一条失败重试链。

FinOps Foundation 的 FinOps for AI 概览 已经把 cost-per-token、费用波动和 GPU 稀缺列为需要持续跟踪的问题,并建议设置配额、标记资源、定期检查成本与用量。Usage.ai 在工具评估文章中也提到,月度云支出超过 10 万美元的团队经常面临同一种困境:看板数据很多,工程团队却没有足够时间逐项处理异常。

看板晚一步,网关先做决定

成本看板适合解释已经发生的支出。真正的止损动作,要放到模型网关和工具网关。

每个 Agent、子 Agent 和工作流都应有独立身份。多个任务共用一个 API Key,限流只能一刀切,账单也很难追到具体业务。一次请求发出前,网关至少要检查这些信息:

  • agent_id 可以使用哪些模型和工具,是否拥有写权限;
  • 当前 RPM、TPM、并发量以及任务预算;
  • Prompt 长度、最大输出、模型价格和外部 API 费用;
  • 本次操作是否需要人工审批。

预算判断可以采用“预估成本 → 预占预算 → 执行 → 按实际消耗结算”的流程。接近上限时,系统可以缩短上下文、切换低成本模型、暂停非必要工具调用,或者把任务降为只读。预算耗尽后,网关直接拒绝新的高成本调用,同时保留任务现场,等待后续处理。

RPM、TPM 和预算水位没有一套适用于所有业务的固定阈值。客服问答、代码生成和批量数据处理的成本结构不同,阈值应根据各自基线和风险设定。

自动重试,是最隐蔽的续费按钮

合约自动续费会出现在采购单上,运行时的自动续跑却藏在状态机里。参数错误、鉴权失效、前置依赖未完成,如果都被当成可重试异常,Agent 就会反复读取上下文、调用工具,再生成一次几乎相同的下一步。

状态机里应明确记录:

  • retry_count:已经重试了多少次;
  • last_error_code:上一次失败原因;
  • next_retry_at:何时允许再次尝试;
  • budget_remaining:当前任务还剩多少预算;
  • parent_task_id:预算来自哪个父任务。

错误也要分类。参数不合法、权限不足等问题通常不应无条件重试;超时或限流可以按策略退避。网关还可以用 tool_name + normalized_args + error_code + next_state 生成调用指纹。同一条 Trace 中反复出现相同指纹时,系统应触发熔断并告警,而不是继续让模型猜下一步。

子 Agent 必须继承父任务的预算和重试状态。否则新建一个子任务或 Session,就可能绕过原来的配额。failed、budget_exhausted 和 waiting_for_approval 也要成为明确状态,不能被模型自行解释成“再试一次”。

真正的套餐续费和自动充值同样需要隔离。Agent 使用的凭证不应拥有升级套餐、开启自动充值或修改续费设置的权限。预算追加由财务或业务负责人从独立审批通道完成,并写入审计日志。

Token 要记到任务,不能只记到模型

只按模型或 API Key 汇总费用,最多能回答“哪个模型花钱多”,回答不了“哪项业务为什么越来越贵”。FinOps Foundation 提到的资源标签和配额,需要继续细化到 Agent 的任务层。

建议字段 用途
agent_id、workflow_id、task_id 追踪具体智能体、工作流和任务
tenant_id、project_id 将费用归到客户、部门或项目
model、tool 区分模型费用和外部 API 费用
prompt_tokens、completion_tokens 分开观察输入与输出消耗
retry_count、status 找出失败重试和未完成任务
estimated_cost、actual_cost 对比调用前预估与实际支出
trace_id、approval_id 串起调用链和人工审批记录

Prompt Token 和 Completion Token 应分列记录,但不必套用统一比例。某个工作流的 Prompt 持续增长、输出基本不变时,再去检查上下文重复、RAG 返回过长或多 Agent 消息反复转抄,会比盯着一个固定比例更有用。

接入 MCP 或更多外部工具后,还要把工具调用次数、失败状态和返回内容规模放进同一条 Trace。模型账单与 API 账单如果分开记录,排查时就很难拼回一次完整任务。自建模型使用的 GPU 资源,也应按项目、模型和工作流打标签,避免只看到集群总成本。

会省钱的 Agent,也不能自己批预算

Vantage 通过 Slack 降低了查询和执行成本优化动作的门槛;AWS 的双 Agent 案例则把费用分析与运行时操作拆给不同角色。这个分工值得保留到权限设计里:

  • 查询身份可以读取账单、标签和用量,生成建议或创建工单;
  • 执行身份只接受经过校验的操作,并使用范围更窄的权限;
  • 预算追加、套餐变更和破坏性清理交给独立审批人。

同一个 Agent 不应同时发现异常、提高额度、批准额度,再执行资源变更。AWS 案例中的每月约 4,100 美元属于该场景的实际结果,不能直接拿来预测其他企业的收益;更值得借鉴的是角色拆分和运行时验证。

企业级审计日志需要串起:谁发起任务、哪个 Agent 执行、命中了哪条策略、预估和实际费用是多少、谁批准了预算、调用了什么工具、最终结果如何。日志只记一行“模型调用成功”,出了问题仍然无法追责。

上线前,先过一遍这些问题

  • 子 Agent 能否通过新建身份或 Session 重置预算?
  • 预算耗尽后,网关会真正拒绝请求,还是只发送告警?
  • 相同参数和错误反复出现时,状态机会不会熔断?
  • 每笔 Token 和 API 费用能否追到任务、租户和审批人?
  • Agent 是否拥有修改套餐、自动充值或续费设置的权限?
  • 高成本调用和写操作是否经过独立审批?

月底账单仍然要看,但那是复盘。Agent 拥有执行权后,API 成本控制的第一道门应放在每次模型调用和工具调用之前;LLM Token 监控则要跟到任务、状态和审批记录。否则 FinOps 最后还是一张事后看板。

相关阅读