Vercel AI Gatewayのユーザー別予算:メンバー単位でAI支出を制限

Vercel AI Gatewayのユーザー別予算を使い、メンバー単位でAPIキーの支出を制限する方法を解説します。共有する本番用キーを個人予算から切り離し、CLIで上限や通知を設定して、ステージング環境でHTTP 402による停止と復旧を安全に確かめる具体的な手順まで詳しく紹介します。

Sunday, September 6, 2026Omid Saffari
Tools
Vercel AI Gatewayのユーザー別予算:メンバー単位でAI支出を制限

暴走したコーディングエージェントのために、本番アプリと同じ支出停止スイッチを共有する必要は、もうありません。2026年8月31日、Vercel AI Gatewayにユーザー別予算が追加されました。これにより、あるチームメンバーに紐づくAPIキーの支出だけを止めながら、チームに紐づく本番用キーは、そのキーとチームの予算が残っている限り稼働を続けられます。変わるのはチームの請求管理方法であり、モデルの料金ではありません。

チームメンバーと支出上限が表示されたVercel AI Gatewayのユーザー別予算リリース画面
Vercel AI Gateway

要点を一文でまとめると

個人が所有するエージェント用キーにはユーザー別の上限を設け、共有する本番用キーはチーム所有にします。

仕組みはこれだけです。ユーザー予算には、同じメンバーに紐づくすべてのAI Gateway APIキーの支出が合算されます。上限に達すると、それらのキーからの新しいリクエストはHTTP 402を返しますが、そのユーザー予算の対象外にあるトラフィックは継続できます。

この機能が登場する前から、Vercelではチーム、プロジェクト、APIキーごとに上限を設定できました。新しいユーザー単位の上限は、これらと並行して機能します。1人の開発者がCodex、Claude Code、Cursorなどの無人ワークロードで複数のキーを使っていても、財務側ではその人のゲートウェイ支出全体に1つの上限を設けたい、という別の課題を解決するものです。

Vercel AI Gatewayでユーザー予算に計上されるもの

重要な設定は**支出の帰属(Spend attribution)**です。これは予算を集計するために、VercelがAPIキーへ付ける所有者ラベルにすぎません。

新しいキーは、デフォルトでUserに帰属します。帰属が設定されていない既存のキーは、後方互換性のためTeamへの帰属を維持します。API経由で作成し、metadata.spendAttributionを指定していないキーもTeamとして集計されます。

この違いによって、リクエスト経路は次の4種類に分かれます。

リクエスト経路停止条件となる予算ユーザー予算の対象
メンバーに帰属するAPIキーAPIキー、ユーザー、チームはい
チームに帰属するAPIキーAPIキー、チームいいえ
OIDCを使うプロジェクトデプロイプロジェクト、チームいいえ
BYOKのプロバイダー認証情報による支出AI Gateway予算の対象外いいえ

支出がこれらの予算に分割されるわけではありません。該当するすべてのメーターへ同時に計上されます。メンバーに帰属するキーからのリクエストは、そのキーの予算、メンバー本人のユーザー予算、チーム予算のすべてに余裕がなければなりません。どれか1つでも使い切れば、リクエストは停止します。

メンバー用キーはユーザーとチームの上限を通過し、共有本番用キーはユーザー上限を迂回する予算経路の構成図
メンバー用キーにはユーザー上限が適用されます。チームに帰属する本番用キーには適用されません。

そのため、共有する本番トラフィックは明確に扱いを分ける必要があります。開発者が顧客向けアプリ用に新しいキーを作ると、そのキーはデフォルトで開発者本人に帰属します。すると、個人の上限到達によってアプリまで停止しかねません。AI GatewayのAPI Keysページで、そのキーのSpend attributionをTeamへ変更してください。これで適用されるのは、キー自体の予算とチーム予算だけになります。

事業側の予算設計はどう変わるか

ユーザー別上限を使えば、ひとまとめだったリスクを、請求が届く前に個人ごとの利用枠として割り当てられます。

ここではVercelの料金ではなく、仮の例で考えます。8人のチームに月額$1,000のチーム予算があるとします。7人には月額$50のデフォルト予算を設定し、負荷の高いエージェント業務を担当するリード1人には月額$150のカスタム予算を割り当てます。

個人用キー全体の利用枠は次のとおりです。

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

この$500はチーム予算とは別枠ではなく、その内側に含まれます。メンバーに帰属するキーが先に$500をすべて使えば、同じ$500が$1,000のチーム上限にも計上されます。この単純化した例では、チームに帰属する本番トラフィックがチーム上限までに使える残額は$500です。

ただし、この残額が本番用に確保されるわけではありません。本番側が先に消費することもあり、すべてのリクエストにはチーム上限の余裕も必要です。今回の改善点はもっと限定的です。あるメンバーの帰属キー経由の支出が本人の利用枠を超え、ほかの全員までアクセスできなくなる事態を防げます。

これは、エージェントごとに強制力のある上限を設けるには専用プロジェクトが必要なOpenAI標準の管理方法とは異なります。OpenAI APIの予算上限に関する解説では、その分離モデルを詳しく説明しています。Vercelのユーザー単位の管理なら、1人につき1プロジェクトを作らなくても、同じメンバーに帰属する複数のキーをまとめてカバーできます。

この機能でトークン単価が下がるわけではありません。AI Gatewayの料金は引き続きプロバイダーの定価どおりで、トークンへの上乗せやプラットフォーム手数料はありません。得られるのは、推論コストの値下げではなく、損失範囲の限定と責任の明確化です。

実際のワークフローが変わる4つのチーム

複数のコーディングエージェントを使うプロダクト開発リード

まずチーム共通のデフォルトユーザー予算を決め、利用量の多いメンバーだけカスタム額へ変更します。開発者はエージェントごとに別々のキーを使い分けても、それらすべてを1人分の上限にまとめられます。

効果が表れるのは、夜間に動き続けるループです。あるエージェントが失敗したタスクを再試行し続けても、その開発者のリクエストだけが停止し、チームに帰属する本番サービスまで自動的に止まることはありません。

クライアント案件の利益を守るエージェンシー運営者

各担当者にメンバー帰属のキーとデフォルト利用枠を割り当てます。モデル利用の多い移行案件や短期のクライアント向けスプリントを担当する人には、カスタム予算を追加します。

メリットは、例外の対象が明確になることです。全メンバーの利用枠を引き上げたり、エージェンシー全体の予算だけを唯一の遮断装置にしたりせず、特定の1人に追加支出を承認できます。

人の作業と本番環境を分離するプラットフォームリード

すべてのAI Gatewayキーを監査し、共有サービスのキーはTeamに設定します。個人のコーディングエージェント用キーは、作成者への帰属を維持します。

これにより、障害の影響範囲を切り分けられます。個人の利用枠が尽きれば、その人のエージェントトラフィックだけが止まります。顧客向けワークロードは、自身のキー予算またはチーム予算に達するまで稼働を続けます。

ポリシーを担う財務・オペレーション責任者

Ownerは、Ownerロール全体を渡さずにAI Gateway Budget Manager権限だけを付与できます。この担当者はユーザー予算、デフォルト値、キーの帰属を管理でき、Contributorを除くすべてのチームロールは予算ページを閲覧できます。

これで、運用責任者を実務上も明確にできます。財務担当が利用枠を決め、エンジニアリング側がその内容を確認できるため、予算変更のたびにVercelチーム全体を所有する1人を待つ必要がなくなります。

本番環境を個人に紐づけずに設定する方法

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 attributionTeamに設定します。新しいキーはデフォルトでUserに帰属するため、本番用キーを作成するたびにこの確認を行ってください。

  5. 人による対応が必要な箇所にアラートを追加する

    カスタム予算では、上限の50%、75%、100%に達した時点でメールを送信できます。アラートはデフォルトで無効になっており、デフォルト予算からは通知が送られません。上限到達前に特定の担当者へ警告メールを送りたい場合は、カスタム予算を追加してください。

月次予算は、毎月1日の午前0時(UTC)にリセットされます。日次予算は毎日午前0時(UTC)、週次予算は月曜日の午前0時(UTC)にリセットされ、noneを指定するとリセットされない累積上限になります。

ステージング環境で停止と復旧をテストする

この記事では、使い捨て可能なチームとキーを用意できなかったため、実際のVercelチーム予算は変更していません。したがって、安全なテストは自身のステージング環境で実施してください。以下の402の挙動と反映時間はVercelが公開している仕様であり、今回の検証で得たアカウント単位のベンチマークではありません。

ステージング専用のメンバーと、そのメンバーに帰属するキーを使います。このテストを本番用キーに対して実行しないでください。

  1. 現在の支出を確認する

    vercel ai-gateway budgets listを実行し、ステージング用メンバーの当期支出を確認します。すでに公開されている最低額の$1を超えていれば、新たに1ドル分のテストトラフィックを発生させずに上限到達を再現できます。

  2. ステージングユーザーの上限を引き下げる

    予算を編集しても、当期にすでに積み上がった支出は維持されます。ステージングユーザーの上限を$1に設定し、変更が反映されるまで待ちます。

    Bash
    vercel ai-gateway budgets set user staging@example.com --limit 1 --refresh-period monthly
  3. メンバー帰属のキーからリクエストを1件送る

    メンバーに帰属するステージング用キーを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分かかることがあります。待ってから同じリクエストを再送してください。適用対象となる別のキー予算やチーム予算を使い切っていなければ、処理が再開するはずです。

  5. 予定していたポリシーへ戻す

    ステージングユーザーを、計画していたカスタム上限へ戻します。カスタム予算を削除しても、必ずしも制限を解除できるとは限りません。デフォルト予算がある場合は、その値がユーザーに再適用されるためです。そのデフォルト予算もすでに使い切っていれば、トラフィックは停止したままです。

見落としやすい2つの境界

1つ目は、BYOKの支出がすべてのAI Gateway予算の対象外であることです。ゲートウェイが自身のプロバイダー認証情報を使う場合、その支出は別に計測され、ユーザー上限では抑えられません。失敗したBYOKリクエストがVercelのシステム認証情報へフォールバックし、チームのAI Gatewayクレジット残高に課金される場合もあります。

2つ目は、アプリトークンに関するVercel自身の説明が、現時点で一致していないことです。8月31日のリリース情報では、ユーザー別上限の対象に、帰属済みAPIキーとアプリトークンの両方が含まれるとされています。一方、現在の予算に関するドキュメントには、アプリトークンにはメンバーの帰属情報がなく、ユーザー予算には一切計上されないと記載されています。

月曜日に実行すること

複数のメンバーが各自のAI Gatewayキーでコーディングエージェントなどの無人ワークロードを動かしているなら、今週中に対応する価値があります。トラフィックがプロジェクトのOIDCトークンまたはBYOKのプロバイダー認証情報だけを使っている場合は、ユーザー予算で制御できないため見送って構いません。1つのキーと1つのチーム予算だけを使う個人運用者への影響は、ほとんどありません。

月曜日になったら、すべてのゲートウェイキーをPERSONまたはSHAREDに分類します。最初に共有本番用キーをTeamへ帰属させます。次に、月次のデフォルトユーザー予算を1つ設定し、事業上の理由を説明できるカスタム例外だけを追加してください。最後に、ステージング環境で402による停止、上限引き上げ、復旧までを確認します。本番環境が個人の利用枠から切り離され、どの上限がリクエストを止めたのかを運用担当者が把握できて、初めて予算設定は完了です。

AIコスト管理や本番ワークフローに関する実践的な情報をさらに知りたい方は、ニュースレターにご登録ください

最終更新

2026年9月6日

カテゴリーExplained

Googleでこのサイトを優先する

omidsaffari.comをGoogle検索の優先ソースに追加

omidsaffari.comを優先ソースに設定すると、GoogleがTop Stories・AI Overviews・AI Modeであなたのために優先表示します。

Explainedの他の記事

Explainedの記事をすべて見る
ニュースレター

毎週日曜、一通の手紙。 動くシステムの話。感想戦ではなく。

AIベンチャーのポートフォリオ運営から生まれるビルドログ、稼働中のシステム、現場ノート。

週刊。スパムなし。いつでも解除できます。