はじめに
Googleは2026年9月10日、AIエージェントにツールの使い方を学習させるデータセット生成手法「ToolGrad」を発表しました。従来の「質問が先」の方式に対し、ToolGradは正解のツール利用チェーンを先に作ります。本稿ではこの仕組みと、GitHub上の実装の動かし方を解説します。
参考記事
メイン記事:
- タイトル: ToolGrad: Efficient tool-use dataset generation with textual “gradients”
- 著者: Zhongyi Zhou, Ruofei Du
- 発行元: Google Research Blog
- 発行日: 2026年9月10日
- URL: https://research.google/blog/toolgrad-efficient-tool-use-dataset-generation-with-textual-gradients/
関連情報:
- タイトル: ToolGrad: Efficient Tool-use Dataset Generation with Textual “Gradients”(GitHubリポジトリ)
- 著者: zhongyi-zhou(リポジトリ管理者)
- 発行元: GitHub
- 発行日: 記載なし
- URL: https://github.com/zhongyi-zhou/toolgrad
関連記事


要点
- Googleが2026年9月10日、ツール利用データセットを「回答から先に生成する」新手法「ToolGrad」を発表した。
- ToolGradはAPI Proposer・API Executors・API Selector・LLM Updaterの4モジュールで構成される。
- 小規模データセット「ToolGrad-500」でGemma-3(1B・4B・12B)をファインチューニングし、Berkeley Function Calling Leaderboard(BFCL)で評価した。
- ToolGrad-12Bのスコアは83.1で、gemini-2.5-pro(83.2)やclaude-4.5 Opus(82.8)に匹敵し、gpt-5(74.4)を上回った。
- 実装コードはGitHubで公開されており、GPUやAPIキーが不要なクイックスタートデモも用意されている。
詳細解説
ツール利用データセット生成の課題——「質問が先」から「回答が先」へ
AIエージェントがGoogle検索の実行やローカルファイルの読み込み、Pythonスクリプトの生成といったタスクを自動化するには、ツールを正しく効率的に使う方法を学習する必要があります。そのためには、ツール利用の手順(チェーン)とそれに対応するユーザーの質問を組み合わせたデータセットが欠かせません。Googleによれば、従来のToolBenchやToolACEといった手法は、まずAPI群からユーザーの質問を仮に生成し、その後に深さ優先探索(DFS)エージェントで解決策を探すという2段階の手順を取っていました。この方式は、複雑なエージェントの試行錯誤から有効な軌跡を抽出する必要があるため、本質的に非効率だとGoogleは指摘しています。
これに対しToolGradは、先にツール利用の正解チェーンを作り、その後で対応するユーザーの質問を注釈づけする「回答が先」の方式を採ります。明確なツール利用の解答は質問よりも曖昧さの少ない情報を提供するため、注釈づけの負担が軽くなり、LLMの呼び出しも1ステップで済むという利点があります。
TextGradからの着想——テキストによる「勾配」で反復的にチェーンを構築
一般的な機械学習システムは、ミニバッチごとに数値の損失勾配を計算し、それを使ってモデルの重みを更新することで性能を改善します。Googleの説明によれば、先行研究のTextGradはこの考え方をプロンプト設計に応用し、LLMの批評役が自然言語で詳細なフィードバックを返す「テキストによる勾配」という仕組みを導入しました。このフィードバックをもとに、プロンプトの下書きを目的のタスクをより解決しやすい形へと改良していきます。
ToolGradはこのテキスト勾配の考え方を、プロンプト最適化ではなく合成データセットの生成に応用しています。固定のテキストプロンプトを最適化する代わりに、勾配を使って大規模なツールライブラリから複雑で妥当なAPIワークフローを段階的に構築する仕組みです。
ToolGradフレームワークの4つのモジュール
ToolGradは、提案・実行・選択・更新を順に繰り返す4つのコアモジュールで構成されています。
- API Proposer: 各イテレーションで、サンプリングされたAPI群を、現在のワークフローを拡張しうる有望な候補へ絞り込む
- API Executors: 選ばれたAPIを並列にテストし、詳細な実行レポートを生成する
- API Selector: 実行レポートを確認し、最も成績の良いAPI呼び出しを1件選ぶ。この選択が改善の方向性を示す「テキスト勾配」として機能し、ワークフローに追加される
- LLM Updater: 新しいAPI構成に合わせて、合成されたユーザーの質問とAIの応答を修正する
この反復処理を繰り返すことで、ユーザーの質問・検証済みのAPIワークフロー・最終的なAIの応答から成る1件のデータサンプルが完成します。
実験結果——データ生成効率とBFCLでの評価
Googleは、16,000件超の実在APIから成るToolBenchをAPIデータベースとして用い、従来の質問優先型(DFSによる探索)とToolGradの回答優先型を比較しました。結果として、ToolGradはより低い生成コストで、より複雑(長期的な手順を要する)なツール利用データを、高い成功率で生成できることが示されています。
さらにGoogleは、ToolBenchのAPIデータベースを使って小規模なデータセット「ToolGrad-500」を作成し、Gemma-3の1B・4B・12Bモデルをファインチューニングして、それぞれToolGrad-1B・4B・12Bと名付けました。これらのモデルは、ToolBenchとは異なるツール群を用いるベンチマーク「Berkeley Function Calling Leaderboard(BFCL)」で評価され、ファインチューニング前のベースモデル、GeminiやGPT、Claudeといった大手プロプライエタリモデル、ToolACEやHammer-2.1-7Bといったツール利用特化のオープンソースモデルと比較されました。
Googleの発表によれば、主な結果は次のとおりです。
- ToolGrad-500によるポストトレーニングは、テストしたすべてのパラメータサイズでGemma-3のツール利用性能を明確に向上させた
- ToolGrad-12Bはスコア83.1を記録し、発表時点で最も高性能なプロプライエタリモデルの一角であるgemini-2.5-pro(83.2)やclaude-4.5 Opus(82.8)に匹敵し、gpt-5(74.4)を上回った
- ToolGrad-500はgemini-2.5-flash-liteによって生成されたが、そのデータでファインチューニングしたGemma-3-12Bは、生成元である「教師モデル」自体の性能を上回った
- ToolGrad-12Bは、より高度なAPIデータベースでファインチューニングされたToolACEを含む、他のオープンソース特化モデルと比べても明確に優位だった
パラメータ数が12B程度のモデルが、桁違いに大規模と見られるプロプライエタリモデルに匹敵する結果を出した点は、データの質がモデルサイズの差を補いうる一例として、本稿としては興味深く受け止めています。
前提条件・環境構成
GitHubで公開されているToolGradのリポジトリには、GPUもToolBenchのAPIキーも不要で試せるクイックスタートデモが用意されています。実行には、Gitと、uv(Rust製の高速なPythonパッケージ・仮想環境管理ツール)、そしてGemini APIキーが必要です。
インストール・セットアップ
まずリポジトリをクローンし、uvで仮想環境を作成します。仮想環境を使うのは、プロジェクトごとに依存パッケージを分離し、他のPython環境との衝突を防ぐためです。
# リポジトリをクローンして移動します
git clone https://github.com/zhongyi-zhou/toolgrad.git
cd toolgrad
# uvで仮想環境を作成し、依存パッケージを同期します
uv venv
uv sync
# 仮想環境を有効化します
source .venv/bin/activate実行・動作確認——MCPクイックスタートデモを試す
ToolGradは、Model Context Protocol(MCP、AIモデルが外部ツールと標準化された方法でやり取りするための仕組み)のファイルシステムサービス上でも動かせます。まずMCPサービスに必要なNode.js/npxをインストールします。
# nvm(Node.jsのバージョン管理ツール)をインストールするスクリプトを実行します
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# Node.js バージョン20をインストールし、デフォルトに設定します
nvm install 20
nvm alias default 20注意: この手順はMac/Linux環境を想定しています。Windowsをお使いの場合は、WSL(Windows Subsystem for Linux)の利用を検討してください。
続いて、Gemini APIキーを環境変数に設定し、デモスクリプトを実行します。
# 取得したGemini APIキーを環境変数に設定します
export GEMINI_API_KEY=YOUR_GEMINI_KEY
export PYTHONPATH=./
# MCPファイルシステムサービスを使ったデモを実行します
python examples/mcp_filesystem.py実行すると、API Proposerが候補となるAPI呼び出しを提案し、API Executorsがそれぞれを並列に実行する様子がログに表示されます。GitHub上のログ例では、「favorite_books.txtを読み込む」「3つのファイルを同時に読み込む」「ディレクトリの中身を一覧表示する」という3つの提案が示され、いずれも成功したことが確認できます。出力データはexamples/outputs/フォルダに保存されます。
注意: ここでの動作確認はGitHub上のサンプルログをもとにしており、実際の実行結果は環境やAPIの応答によって変わる可能性があります。参考記事のサンプルコードをもとにしている点にご留意ください。
本格的な利用に向けて——評価の再現と独自データセットの生成
リポジトリにはこのほか、A100-40GB級のGPUを用いてBFCLの評価スコアを再現する手順(Dockerコンテナ内でvLLMを使う評価)や、ToolGrad-500データセットでGemma-3をファインチューニングするコード(src/train/train_sft.py)が含まれています。さらに、ToolBenchのAPIキーを取得すれば、src/generate_toolgrad_data.pyを使って独自のツール利用データセットを生成することも可能です。これらはGPUやAPIキーの準備が前提となるため、本稿ではGPU不要のクイックスタートデモの手順を中心に紹介しました。
まとめ
ToolGradは、ツール利用データセットを「回答から先に」生成する新しい手法です。Gemma-3のファインチューニングを通じて、大手プロプライエタリモデルに匹敵する関数呼び出し精度を実現しました。関数呼び出し特化モデル「FunctionGemma」も既に公開されており、データ生成とモデルの両面で開発が進んでいると本稿では捉えています。
