速報

日本郵便UGXの送り状システムにサイバー攻撃 越境EC配送は全宛先で停止

CATEGORY

Geminiエージェントのタスク単価を下げる|分類ルーティングとキャッシュの設計

※本ページのリンクにはプロモーションが含まれています。

AIタスクを軽量処理と深い推論へ振り分け、成功確認とモデル別キャッシュを追跡する概念イラスト

目次

Googleは2026年11月3日、の費用を「100万トークン当たりの単価」ではなく「正しく完了した1タスク当たりの費用」で評価する実装例を公開しました。短い確認まで高い思考レベルへ送る構成では、、再試行、内部思考が重なり、モデル単価を下げても実行全体の請求は増えます。対象はGeminiを使うコーディングエージェントや定型処理です。まずGemini 3.8 Flashの思考レベルをlowにして基準を作り、それでも費用や待ち時間が問題になる短い独立タスクだけ、軽量分類器でFlash-LiteとFlashへ振り分けます。

この記事は最新ニュースと実装判断の解説です。Google Developers Blogの50問ベンチマーク、Geminiの思考設定、コンテキスト、推論ログを2026年11月4日に確認しました。Google自身も、掲載例のJevを提供するTypeSafeと提携関係になく、特定製品の推奨ではないと明記しています。重要なのは分類器名ではなく、安い経路で成功できる処理を見分け、失敗を含む総費用で比較する設計です。

スポンサーリンク

先に「成功タスク単価」を定義する

入力・出力トークンの単価だけでは、エージェントの経済性を比較できません。ひとつの依頼が完了するまでに、モデルが何度も計画し、ツールを呼び、結果を検証し、失敗時にやり直すからです。月間費用を成功件数で割るだけでも出発点になりますが、本番ではタスク種別と難易度を分けます。

記録する値見る理由注意点
成功・失敗・人手差し戻し安い誤答を「節約」に数えない 200を成功条件にしない
入力・出力・思考・キャッシュ済みトークンどこで費用が増えたか分けるキャッシュ済み分を二重加算しない
モデル呼び出し、ツール呼び出し、再試行ループの長期化を検出する分類器の呼び出しも含める
エンドツーエンドの待ち時間安くても遅い経路を見分ける分類器だけの時間で評価しない

たとえば100件へ10ドルを使い、90件が自動検証を通った構成の成功タスク単価は約0.111ドルです。8ドルへ下げても70件しか通らなければ約0.114ドルとなり、請求総額は下がっても成果当たりでは悪化します。さらに人が修正した時間まで含めると差は広がります。成功条件は、コードならテスト合格、抽出なら必須項目と型の一致、ツール実行なら期待した状態変化など、用途ごとに機械判定できる形へ寄せます。

最初の最適化はルーター追加ではない

Googleの実験では、Gemini 3.8 Flashをlow thinkingで使う構成が、ルーターを持たない比較対象として50問すべてに正解しました。したがって、最初から分類、、複数モデルの監視を追加するより、同じモデルの思考レベルを下げて評価する方が単純です。3.8 Flashの既定はmediumで、low、medium、highを選べます。3.8 Flashではminimalは未対応です。

maxOutputTokensを小さくする方法は代用になりません。公式実験では、上限を300にした構成と4096にした構成で、簡単な27問の思考トークンはほぼ同じでした。上限は思考量の設定ではなく、思考と最終回答を合わせた生成の強制終了点です。難しい25問では300トークン上限によって7問が壊れ、6問は推論中に出力余地を失い、1問は誤答しました。費用を下げたいなら出力を途中で切るのではなく、thinking_levelを明示して比較します。

// Google Gen AI SDKを包むアプリ側の設定例
const baseline = {
  model: "gemini-3.8-flash",
  thinkingConfig: { thinkingLevel: "LOW" },
};

// maxOutputTokensは必要な回答長から決める。
// 費用調整のつまみとして極端に下げない。

既存のGemini 2.5系を使っている場合は、12月1日の移行と設定差も先に処理してください。対象モデルと破壊的変更はGemini 2.5 Pro・Flashの移行手順で整理しています。モデル移行とルーター導入を同時に行うと、品質変化の原因を切り分けにくくなります。

スポンサーリンク

分類器は一つの曖昧な質問をさせない

low thinkingでも短い定型処理が大量にある場合、次に検討するのが軽量分類器です。Googleの例は、単純な処理をGemini 3.5 Flash-Liteへ送り、複数段の計算や論理判断が必要な処理だけ3.8 Flash lowへ昇格させます。ただし「簡単か複雑か」と広く尋ねる分類は安定しません。実験では、複数要因を一度に判定させず、「回答に複数の連続した計算、シミュレーション、論理推論が必要か」のような原子的な二値質問へ分解すると分離が改善しました。

文字数とキーワードだけの規則も、開発時のサンプルには合わせやすい一方、未知の入力で崩れます。公式実験のヒューリスティックは作成に使った16問で15問、93.8%一致しましたが、固定後に追加した34問では70.6%へ低下しました。長いKubernetes YAMLからポートを抜くだけの処理を難しいと誤判定し、短いコードでも複数段の状態追跡が必要な問題を簡単と誤判定したためです。対してJevは未知の34問すべてで手動ラベルと一致し、全50問では48問、96%の一致でした。

async function runTask(task: Task) {
  const p = await classifyMultiStep(task); // 0〜1の確率を返す自前アダプター
  const route = p >= ROUTE_THRESHOLD ? "flash-low" : "flash-lite";

  const result = await generate(task, route);
  const verified = await verify(task, result);

  record({ route, p, verified, usage: result.usage, latencyMs: result.latencyMs });
  return { result, verified };
}

この例のclassifyMultiStep、generate、verifyは製品固有APIではなく、アプリ側の責務を示すアダプターです。しきい値は0.5で固定せず、難しい処理を安い経路へ誤送信する損失と、簡単な処理を高い経路へ送る費用を評価データで比較して決めます。分類不能やタイムアウト時の既定経路、分類器の版、判定確率もログへ残します。

50問の結果をそのまま本番へ移さない

公式ベンチマークではFlash-Lite単体が簡単な25問をすべて約0.5秒で処理した一方、難しい25問のうち6問に失敗しました。Jevはその6問を高い確信度で複雑と判定してFlash lowへ昇格させ、50問すべてに正解しました。キーワード規則のルーターは難しい5問をFlash-Liteへ送り、2問に失敗して48問正解でした。安く見えたのは誤答を費用の分母から落としていたためです。

ただしこれは各構成1回、手動で難易度を付けた50問、簡単な自動採点による実験です。も短く独立しており、差額より待ち時間短縮の効果が目立つ条件でした。自社のタスクでは、実データから個人情報を除去した評価セットを作り、単純・複雑だけでなく、抽出、形式検証、コード確認、状態追跡、ツール利用などに分けます。日々の品質比較にはAQuAを使った本番エージェントの継続評価も参考になります。

スポンサーリンク

長いコンテキストではキャッシュを優先する

ルーティングとコンテキストキャッシュは常に相乗効果を持つわけではありません。の地図、ツール定義、長い手順を毎ターン送るエージェントでは、同じ接頭辞を同じモデルへ繰り返すことでキャッシュが効きます。Gemini 3.8 Flashの暗黙キャッシュは4,096入力トークン以上が目安で、応答のusage.total_cached_tokensからヒット量を確認できます。

モデルをFlash-LiteとFlashの間で頻繁に切り替えると、モデルごとにキャッシュを持つか、割引を失う可能性があります。短いログ解析、確認、単発の分類はルーターへ向きます。大きな共通コンテキストを伴う長い会話やコードベース作業は、一つのモデルと設定へ固定してキャッシュヒット率を保つ方がよい場合があります。ルーティング前後でcached_tokens / input_tokensを比較し、分類器の節約額よりキャッシュ損失が大きくないか確認します。

導入は4段階で止められるようにする

  1. 基準を固定する:現在のモデル、思考レベル、プロンプト、成功条件で費用・品質・待ち時間を記録します。
  2. low thinkingを比較する:同じモデルの設定だけ変え、成功率が許容範囲なら先に採用します。
  3. 影のルーティングを行う:分類結果だけを記録し、本番の回答経路は変えず、誤送信率と想定費用を測ります。
  4. 限定的に切り替える:短い独立タスクから開始し、失敗率、昇格率、キャッシュヒット、成功タスク単価に上限を設けます。

Google Cloudの推論メタデータログでは、モデル、入力・出力・キャッシュ・思考トークン、待ち時間、エラー、任意ラベルをCloud Loggingへ記録できます。タスク種別、ルーター版、選択経路をラベルにすれば、どの処理が費用を押し上げたか追跡できます。プロンプトや応答本文を保存しなくても集計できますが、バッチ推論や自己管理モデルなど未対応の経路があるため、アプリ側の実行IDと検証結果を結合できるようにします。

完了条件は「安いモデルへの送信率が上がった」ではありません。品質下限を満たしたうえで、成功タスク単価とp95待ち時間が改善し、キャッシュヒット率や再試行回数が悪化していない状態です。まずFlash lowだけで十分か確かめ、必要な区間だけ分類器を追加する順序なら、複雑なルーティング基盤そのものが新しい費用と障害原因になるのを避けられます。

参考資料

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

スキーマ

データの構造や型、決まりごとを定義したもの。データベースのテーブルの設計や、JSONの形式の定義などに使う。

詳しく見る

リポジトリ

ソースコードなどのファイルと、その変更の履歴をまとめて保管する場所。Gitで管理し、GitHubなどで共有する。

詳しく見る

プロンプト

生成AIに入力する指示や質問の文章。内容や書き方によって、AIの出力が大きく変わる。

詳しく見る

フォールバック

本来の方法が使えないときに、代わりの方法に切り替えて動作を続けること。また、その代わりの方法。

詳しく見る

API

ソフトウェアやサービスの機能を、ほかのプログラムから決まった方法で呼び出して使えるようにした窓口。

詳しく見る

HTTP

ブラウザとWebサーバーがやりとりするための決まりごと(プロトコル)。暗号化したものはHTTPSと呼ぶ。

詳しく見る

メタデータ

データそのものではなく、そのデータについての情報。作成日時・作成者・形式・サイズなど。

詳しく見る

キャッシュ

一度取得したデータを一時的に保存しておき、次に使うときに再利用して処理を速くする仕組み。

詳しく見る

ツール呼び出し

LLMが、用意された外部の関数やAPIを使うべきと判断し、その呼び出し内容を出力する仕組み。AIエージェントの基本になる機能。

詳しく見る

AIエージェント

目標を与えると、計画を立て、ツールを使いながら作業を自律的に進めるAIの仕組み。

詳しく見る