トークン管理ポリシーの概要

概要

トークン管理ポリシーを使用すると、大規模言語モデル(LLM)のトークン使用量をモニタリングして正確に割り当て、エンタープライズ AI エージェントとアプリケーション全体で共有トークン予算を適用できます。

AI エージェントが LLM とやり取りする場合、1 秒あたりのリクエスト数や 1 分あたりのリクエスト数などのリクエスト数レート制限では、費用や容量を制御できません。LLM への 1 つの HTTP リクエストで、12 個から 100,000 個を超えるトークンが消費されることがあります。トークンレベルのガバナンスがないと、1 つのエージェント ループが暴走して、共有エンタープライズ モデルの割り当てを使い果たし、予期しないコストの急増を引き起こす可能性があります。AI 費用を管理するには、組織全体のユーザーと部門にモデル割り当て予算を設定する必要もあります。

トークン管理ポリシーを使用すると、次のことができます。

  • エージェントとモデルのすべてのインタラクションで、入力トークン、出力トークン、キャッシュに保存されたトークンのトークン使用量を計算します。
  • Gemini Enterprise Agent Platform またはその他のモデル ホスティング プラットフォームでホストされているモデル全体で、トークンの消費量と推定費用を、ビジネスに関連するグループ、AI アプリケーション、個々の Agent Identity に割り振ります。
  • 共有トークン予算をリアルタイムで適用し、トークンプールの予算が使い果たされると、しきい値アラートを送信するか、HTTP 429 Too Many Requests を返します。
  • 詳細なオブザーバビリティ テレメトリーを Cloud Monitoring にエクスポートし、Cloud Logging でトークン使用量のアラートを集計する。

仕組み

図 1 は、トークン管理ポリシーがゲートウェイ レイヤで LLM リクエストとレスポンスを評価する方法を示しています。

AI エージェントは、Agent Gateway を介して LLM リクエストを送信します。Agent Gateway は、トークンの集計、予算、トークンあたりの費用のポリシーを評価してから、トラフィックをモデルに転送します。
図 1. トークン管理ポリシーは、ゲートウェイ レイヤで LLM トラフィックを評価します(クリックして拡大)。

トークン管理では、3 つのポリシー リソースが連携して、トラフィックの分類、トークン予算の適用、費用計算のカスタマイズを行います。

  • トークン集計ポリシー(TokenAggregationPolicy): 受信したエージェントからモデルへのリクエストを分類し、トークン消費量を論理的なトークン グループに集計します。グループ化は、リソース階層(プロジェクト スコープ)、AI アプリケーション、個々のエージェント、宛先モデル、HTTP リクエスト ヘッダーで渡されるカスタムタグ(API キーを含む)に基づいて行うことができます。
  • トークン予算ポリシー(TokenBudgetPolicy): トークン集計ポリシーで識別される 1 つ以上のトークン グループにトークン割り当てを適用するトークンプールを定義します。各トークンプールには、最大トークン数、定期的なリセット ウィンドウ(1 時間ごとまたは 1 日ごと)、ターゲット モデルのオプション リスト、アラートしきい値、適用モードを指定します。
  • トークンあたりの費用ポリシー(CostPerTokenPolicy): Monitoring で gcp.token_management.token.estimated_cost 指標の計算に使用されるデフォルトのモデルごとのトークン料金をオーバーライドします。デフォルトのモデル価格に対する割引率、または入力トークン、出力トークン、キャッシュに保存されたトークンに対して米ドルでカスタムのトークンあたりの料金を構成できます。

ポリシーの依存関係と作成順序

トークン管理では、同じターゲット スコープに接続されているポリシー リソース間で、次の順序で厳格な依存関係階層が適用されます。

  1. ターゲット スコープのトークン グループにリクエストを分類するには、まず TokenAggregationPolicy を作成する必要があります。このポリシーは、トークンの使用状況をエージェント レベルで詳細に可観測性を確保するための最小要件です。
  2. (省略可)TokenAggregationPolicy で識別されたトークン グループに対するトークンの使用を制限するには、TokenBudgetPolicy を構成する必要があります。
  3. (省略可)CostPerTokenPolicy は、ターゲット スコープに対応する TokenBudgetPolicy が存在する場合にのみ作成できます。

ポリシーを削除する場合は、逆の順序で削除します。最初に CostPerTokenPolicy、次に TokenBudgetPolicy、次に TokenAggregationPolicy の順に削除します。

ルールの評価とデフォルトのマッチング

TokenAggregationPolicy 内では、ルールはリストに表示されている順序で評価され、最初に一致したルールが適用されます。

  • 一致したトラフィック: エージェント リクエストがルールの送信元条件(AI アプリケーションまたはエージェント ID)と宛先条件(HTTP ヘッダーまたはモデル プロバイダ エンドポイント)に一致すると、そのトークンの使用量がそのルールのトークン グループ(tokenGroup)に割り当てられます。
  • キャッチオール ルール: ルールリストの最後に空の一致ブロックを含むルールを配置して、残りのすべてのトラフィックをデフォルトのトークン グループ(Default など)に割り当てることができます。
  • 一致しないトラフィック: キャッチオール ルールが含まれておらず、リクエストがポリシー内のどのルールにも一致しない場合、トークンの消費は Monitoring のシステム unmatched グループに記録されます。
  • 未定義のプール トラフィック: トークン予算ポリシー(TokenBudgetPolicy)の TokenPool で、特定のモデルにのみ適用を制限している場合、そのリストに含まれないモデルへのリクエストはブロックされず、Monitoring でプール名が undefined に設定されて記録されます。

サポートされている環境とモデル

トークン管理ポリシーは、次の Agent Runtime、Agent Gateway デプロイ、モデルをサポートしています。

コンポーネント サポートされるオプション
AI エージェント ランタイム
  • Google Kubernetes Engine(GKE)にデプロイされたエージェント。
  • Cloud Run にデプロイされたエージェント。
Agent Gateway のデプロイ Cloud de Confiance by S3NS プロジェクトの Secure Web Proxy: すべてのエージェントからモデルへのリクエストに下り(外向き)トークン ガバナンスを適用します。
モデル

任意のモデル プロバイダの Gemini、Anthropic、OpenAI API 互換モデル:

  • Google Gemini: Agent Platform または Gemini エンドポイントでホストされている Gemini モデル(aiplatform.googleapis.com など)。
  • Anthropic: Agent Platform または外部の Anthropic エンドポイントでホストされている Claude モデル。
  • OpenAI API 互換モデル: Agent Platform または外部プロバイダ(Amazon Bedrock、Azure AI Foundry など)の OpenAI API 互換モデル。
集計グループ
  • Cloud de Confiance by S3NS プロジェクト スコープ。
  • App Hub の AI アプリケーション ID。
  • API キーとカスタム HTTP リクエスト ヘッダー。
  • エージェント ID(エージェント URN または SPIFFE ID)。
  • ターゲット モデル プロバイダのエンドポイント。

ポリシー違反に対する措置のフロー

標準のレート制限では、バックエンドに到達する前に、すべてのリクエストが 1 ユニットとしてカウントされます。LLM 呼び出しでは、入力トークンと出力トークンの合計数は、モデルが応答した後にのみわかります。これに対処するため、Agent Gateway は各リクエストを 2 つのフェーズで処理します。

  1. 掲載期間の予算の事前チェック(リクエストパス):
    • エージェントは、Agent Gateway を介して LLM エンドポイントに推論リクエストを送信します。
    • ゲートウェイは、TokenAggregationPolicy と照合してリクエストを評価し、一致する tokenGroup を特定して、TokenBudgetPolicy 内の関連する TokenPool を検索します。
    • プールのトークン予算が使い果たされ、厳格な適用が有効になっている場合、ゲートウェイは HTTP 429 ステータス コードでリクエストを直ちに拒否します。プールに予算が残っている場合、またはアラートのみモードに構成されている場合、ゲートウェイはリクエストを LLM に転送します。
  2. トークンの調整とテレメトリー(レスポンス パス):
    • LLM エンドポイントが完了レスポンスを返すと、ゲートウェイはレスポンス ペイロードから実際の input、output、cached トークン数を抽出します。
    • トークン管理では、消費されたトークンがプールの maxTokens 割り当てと照合されます。
    • 更新された使用量が警告しきい値を超えるか、予算の 100% に達すると、ゲートウェイは Logging に警告を書き込みます。
    • ゲートウェイは、エージェントごとのトークン消費量(gen_ai.client.token.usage)と推定トークン費用(gcp.token_management.token.estimated_cost)の指標を Monitoring にエクスポートします。

出力トークン数は、LLM レスポンスが完了した後にのみ記録されます。その結果、プールが maxTokens に達する前に許可された同時リクエストが上限を超え、後続のリクエストが HTTP 429 でブロックされる可能性があります。予期しないスロットリングを回避するには、0.6 や 0.8 などの alertThreshold を設定して、厳格な適用を有効にする前に validateOnly: true で新しいポリシーをテストします。

関連するガバナンス コントロール

次の表に、トークン管理ポリシーが他の Agent Platform と Cloud de Confiance ガバナンス管理とどのように連携するかを示します。

ガバナンス レイヤ ポリシーまたはメカニズム 目的
アクセス制御 Identity and Access Management(IAM)アクセス ポリシー 特定の MCP サーバー、ツール、モデル エンドポイントへの接続を許可するエージェント ID(SPIFFE ID)を制御します。
インテントとビジネスルール セマンティック ガバナンス ポリシー 提案されたツール呼び出しを、実行前に自然言語制約(NLC)とユーザーの意図に照らして評価します。
コンテンツの安全性 Model Armor プロンプトとレスポンスをスキャンして、プロンプト インジェクション、ジェイルブレイク、機密データを検出します。
リクエスト数レート制限 サービス レート制限(RateLimitPolicy) 1 秒または 1 分あたりの HTTP リクエスト数(countLimit)を制限することで、大量のリクエスト フラッドから上り(内向き)ロードバランサとプロキシを保護します。
LLM トークンと費用のガバナンス トークン管理ポリシー(TokenAggregationPolicy、TokenBudgetPolicy、CostPerTokenPolicy) LLM トークンの使用状況をモニタリングしてアトリビューションを行い、エージェント グループとモデル プロバイダ間で共有トークン予算(maxTokens)と費用オーバーライドを適用します。

制限事項

トークン管理ポリシーには次の制限があります。

  • 特定のプロジェクト ターゲット スコープに接続できる TokenAggregationPolicy、TokenBudgetPolicy、CostPerTokenPolicy はそれぞれ 1 つだけです。
  • 各 TokenAggregationPolicy は最大 10 個の集計ルール(rules)をサポートし、各 TokenBudgetPolicy は最大 10 個のトークンプールをサポートします。
  • トークンプールは HOURLY と DAILY のリセット期間をサポートしています。1 日の予算は太平洋時間の午前 0 時にリセットされます。
  • Logging は、トークンプールが構成済みの alertThreshold を超えた場合、または maxTokens(token_management_alert_logs)の 100% に達した場合にのみログエントリを生成します。