Vercel AI Gateway 预算:为每位成员设置支出上限

了解如何用 Vercel AI Gateway 预算为每位成员设置支出上限、把共享生产密钥归属团队,并通过分层预算隔离失控的编程 Agent。本文详解支出归属、HTTP 402 拦截机制、CLI 配置、预警设置与预发布环境测试,帮助团队在不中断生产流量的前提下控制 AI API 费用。

Sunday, September 6, 2026Omid Saffari
Tools
Vercel AI Gateway 预算:为每位成员设置支出上限

一个失控的编程 Agent,不必再与生产应用共用同一个财务急停开关。2026 年 8 月 31 日,Vercel AI Gateway 上线了按用户设置预算的功能:归属某位团队成员的 API 密钥一旦达到个人支出上限即可停止,而归属团队的生产密钥仍能继续运行——前提是该密钥和团队都还有预算。这次 Vercel AI Gateway 预算更新,改变的是团队控制账单的方式,而不是模型本身的价格。

Vercel AI Gateway 用户预算发布页面,显示团队成员及各自的支出上限
Vercel AI Gateway

一句话看懂这个功能

为个人持有的 Agent 密钥设置个人额度,共享生产密钥则归属团队。

机制就是这么简单。一份用户预算会汇总归属同一成员的所有 AI Gateway API 密钥支出。额度耗尽后,这些密钥发起的新请求会返回 HTTP 402;不属于该用户预算的流量则可以继续运行。

在这项功能发布前,Vercel 已经可以限制团队、项目或单个 API 密钥的支出。新增的用户层级与这些控制项并列,解决的是另一类问题:一名开发者可能会在 Codex、Claude Code、Cursor 或其他无人值守任务中使用多把密钥,但财务仍需要为这个人在网关上的总支出设定统一上限。

哪些费用会计入 Vercel AI Gateway 预算?

最关键的设置是 Spend attribution(支出归属),也就是 Vercel 为预算核算而附加到 API 密钥上的所有权标签。

新密钥默认归属 User。为了向后兼容,没有归属信息的旧密钥仍归属 Team;通过 API 创建、但未设置 metadata.spendAttribution 的密钥也会计入 Team

因此,请求会落入四条不同的路径:

请求路径可能将其停止的预算是否适用用户预算
归属成员的 API 密钥API 密钥、用户、团队
归属团队的 API 密钥API 密钥、团队
使用 OIDC 的项目部署项目、团队
通过 BYOK 提供商凭证产生的支出不受 AI Gateway 预算控制

支出不会在这些预算之间拆分,而是同时计入每一个适用的额度。使用成员归属密钥的请求,必须同时处于密钥预算、该成员的用户预算和团队预算以内;其中任何一项耗尽,请求都会停止。

预算路径架构图:成员密钥同时经过用户与团队上限,共享生产密钥则绕过用户上限
成员密钥受用户上限约束,归属团队的生产密钥则不受个人上限影响。

这正是共享生产流量必须主动处理的地方。如果开发者为面向客户的应用新建密钥,该密钥默认会归属这名开发者,其个人额度因此可能让应用停摆。应在 AI Gateway 的 API Keys 页面把密钥的 Spend attribution 改为 Team,这样只由该密钥自身预算和团队预算决定它能否继续运行。

预算的商业账变了

按用户设置上限,可以把原本由团队共同承担的风险,提前拆成可分配给个人的额度。

下面只是演算示例,并非 Vercel 的价格。假设一个 8 人团队每月的团队预算为 $1,000,其中七名成员各有每月 $50 的默认额度;另有一名负责人需要运行更重的 Agent 任务,因此获得每月 $150 的自定义预算。

个人密钥的支出空间为:

7 × $50 + 1 × $150 = $500 per month

这 $500 并不是团队预算之外的一笔额度,而是包含在团队预算之内。如果成员归属密钥先用完全部 $500,同一笔 $500 也已经计入 $1,000 的团队上限。在这个简化案例中,归属团队的生产流量在触及团队上限前还剩 $500 可用。

不过,其中没有任何一部分是预留给生产环境的。生产流量可能先发生,而每个请求始终都要满足团队预算仍有空间。真正有用的变化更具体:在归属个人的密钥上,任何一名成员都无法超出自己的额度,也就不会先把其他所有人的访问一并拖垮。

这与 OpenAI 的原生控制方式不同:要获得强制执行的项目级上限,Agent 需要有自己的项目。OpenAI API 预算控制详解介绍了这种隔离模型。Vercel 的用户层级则能覆盖一名成员名下的多把密钥,无需为每个人单独创建项目。

这项功能不会降低 token 价格。AI Gateway 仍按提供商的公开价格收费,不加收 token 溢价或平台费。它带来的价值是控制损失范围、明确费用归属,而不是让推理变便宜。

这四类团队的工作方式会真正改变

同时管理多个编程 Agent 的产品研发负责人

先为团队设置一份默认用户预算,再给高用量成员配置自定义金额。开发者可以让不同 Agent 使用不同密钥,而所有这些密钥的支出仍会汇总到同一个个人上限。

直接收益是:通宵运行也有明确边界。如果某个 Agent 不断重试失败的任务,只会停止该开发者的请求,不会顺带让归属团队的生产服务自动下线。

需要守住客户项目利润的服务商负责人

为每位执行人员分配归属成员的密钥和默认额度。如果有人负责模型用量较大的迁移任务或短期客户冲刺,再为其增加一份自定义预算。

好处是例外有名有姓。可以只批准某一个人增加支出,不必提高所有成员的额度,也不必让整个服务商的团队预算成为唯一的断路器。

负责把人员流量与生产流量分开的平台负责人

审计每一把 AI Gateway 密钥,并将共享服务标记为 Team;个人编程 Agent 使用的密钥则继续归属各自的创建者。

这样可以隔离故障。某人的额度耗尽后,只会停止其 Agent 流量;面向客户的工作负载仍可运行,直到它自己的密钥预算或团队预算耗尽。

负责预算政策的财务或运营负责人

Owner 可以授予 AI Gateway Budget Manager 权限,而无需交出完整的 Owner 角色。获得该权限的运营人员可以管理用户预算、默认额度和密钥归属;除 Contributor 外,其他所有团队角色都能查看预算页面。

这让预算真正有了日常负责人。财务可以设定额度,工程团队可以看到额度,调整预算也不必等待那位掌管整个 Vercel 团队的人。

这样配置,避免生产流量绑定个人预算

Vercel 的用户预算要求 CLI 版本为 59.6.2 或更高。以下命令已在本次操作中使用 59.6.2 版本核验。

  1. 升级并确认 CLI 版本

    执行文档提供的升级命令,然后确认已安装版本不低于 59.6.2。

    Bash
    vercel upgrade
    vercel --version
  2. 设置默认额度

    下面的示例会给每位没有自定义用户预算的成员分别设置每月 $50 的额度,并非整个团队共享 $50。

    Bash
    vercel ai-gateway budgets defaults set user --limit 50 --refresh-period monthly
  3. 为高用量用户设置自定义上限

    自定义预算会取代该成员的默认额度。Vercel 接受电子邮箱地址、用户名或用户 ID。

    Bash
    vercel ai-gateway budgets set user lead@example.com --limit 150 --refresh-period monthly
    vercel ai-gateway budgets list
  4. 把共享密钥归属到团队

    打开 AI Gateway,进入 API Keys,逐一编辑面向客户或供共享工作负载使用的密钥,并将 Spend attribution 设置为 Team。新密钥默认归属 User,因此生产密钥的创建流程应固定包含这项检查。

  5. 在确实需要人工介入的节点添加提醒

    自定义预算可以在达到上限的 50%、75% 和 100% 时发送邮件。提醒默认关闭,而且默认预算不会发送提醒;如果需要在停止前向某位指定成员发送预警邮件,就应为其添加自定义预算。

月度预算会在每月第一天的 UTC 午夜重置;每日预算在每天的 UTC 午夜重置;每周预算在周一的 UTC 午夜重置;none 则创建一个永不重置的累计上限。

在预发布环境验证停止与恢复流程

本文没有改动任何真实 Vercel 团队的预算,因为本次操作没有可供测试的临时团队和密钥。因此,最安全的做法是由你在预发布环境执行测试。下述 402 行为和配置生效时间来自 Vercel 的文档约定,并非本次操作在真实账户上测得的基准。

请使用专门的预发布环境成员,以及归属该成员的密钥。不要对生产密钥执行这项演练。

  1. 先确认当前支出清晰可见

    运行 vercel ai-gateway budgets list,确认预发布环境成员在当前周期的支出。如果金额已经超过文档规定的最低值 $1,就无需再制造一美元的新测试流量,也能触发预算边界。

  2. 降低预发布环境用户的上限

    编辑预算时,当前周期已经累计的支出会被保留。把预发布环境用户的上限设为 $1,然后等待配置生效。

    Bash
    vercel ai-gateway budgets set user staging@example.com --limit 1 --refresh-period monthly
  3. 用该成员的密钥发送一次请求

    将归属成员的预发布环境密钥导出为 AI_GATEWAY_API_KEY,再按照 Vercel 文档中的原始 HTTP 请求格式发送请求。

    Bash
    curl https://ai-gateway.vercel.sh/v1/chat/completions \
      -H "Authorization: Bearer $AI_GATEWAY_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "openai/gpt-5.6-sol",
        "messages": [
          {
            "role": "user",
            "content": "Invent a new holiday and describe its traditions."
          }
        ]
      }'

    用户预算生效并耗尽后,请求应返回 HTTP 402,错误类型为 quota_for_entity_exceeded。如果 402 中出现的是其他错误类型,问题可能出在团队信用余额,而非预算本身。

  4. 提高上限并重试

    将自定义上限提高到 budgets list 显示的支出之上。文档中的这条命令使用 $100。

    Bash
    vercel ai-gateway budgets set user staging@example.com --limit 100 --refresh-period monthly

    预算变更通常会在几十秒内生效,但对正在使用的密钥最长可能需要约五分钟。等待后,再发送一次相同请求。只要其他适用的密钥预算或团队预算没有耗尽,请求就应恢复。

  5. 恢复原定预算政策

    把预发布环境用户恢复到计划中的自定义上限。删除自定义预算并不一定能解除限制,因为只要默认预算存在,该用户就会回落到默认额度。如果默认额度也已耗尽,流量仍会被阻止。

最容易忽略的两条边界

第一,BYOK 支出不受任何 AI Gateway 预算约束。如果网关使用的是你自己的提供商凭证,相关支出会单独计量,用户上限无法控制它。失败的 BYOK 请求也可能回退到 Vercel 系统凭证,并从团队的 AI Gateway 信用余额中扣费。

第二,Vercel 自己的页面目前对 app token 的说明并不一致。8 月 31 日的发布说明称,用户上限既涵盖已归属的 API 密钥,也涵盖 app token;但当前的预算文档则称,app token 没有成员归属,永远不会计入用户预算。

周一先做这件事

如果有多名成员通过各自的 AI Gateway 密钥运行编程 Agent或其他无人监管的任务,本周就应该行动。如果所有流量都只使用项目 OIDC token 或 BYOK 提供商凭证,则可以等待,因为用户预算无法控制这些路径。只有一把密钥和一份团队预算的个人用户,基本不受影响。

周一,先把每一把网关密钥归为 PERSONSHARED。第一步是将共享生产密钥改为归属 Team,然后设置一份月度用户默认预算,只添加业务上能够解释的自定义例外;最后在预发布环境完整跑一遍 402 测试,验证停止、提高上限与恢复的完整链路。只有当生产流量不再受某个人的额度牵制,而且运营负责人清楚是哪一层上限阻止了请求,这套预算才算真正准备好。

如需获取更多 AI 成本控制与生产工作流的实用内容,欢迎订阅 Newsletter

最近更新

2026年9月6日

分类Explained

在 Google 中优先显示本站

将 omidsaffari.com 添加为 Google 搜索的优先来源

把 omidsaffari.com 设为优先来源,Google 会在 Top Stories、AI Overviews 和 AI Mode 中为您优先展示。

更多 Explained 文章

查看全部 Explained 文章
订阅通讯

每周日,一封信。 写运转中的系统,不写热评。

来自一组 AI 项目组合运营的构建日志、生产系统与一线笔记。

每周一期。无垃圾邮件。随时退订。