◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — 旧 Deep Research エージェントは 10/23 に停止済み。呼び出しが失敗する場合は deep-research-preview-04-2026 へ●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — 旧 Deep Research エージェントは 10/23 に停止済み。呼び出しが失敗する場合は deep-research-preview-04-2026 へ●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/API / SDK
◈ API / SDK/2026-04-03中級

Gemini API Function Calling:ツール統合と実践的な活用法

Gemini API の Function Calling で、AI に外部 API やツールを呼び出させる方法を体系的に学びます。基本的な仕組みから実践的なツール実装、高度な設計パターン、エラーハンドリングとセキュリティ、パフォーマンス最適化まで段階的に解説します。

Gemini API250Function Calling17ツール統合AI開発8自動化28

✦ プレミアム記事

Function Callingとは何か

Gemini APIのFunction Calling(ツール呼び出し)は、AIモデルが会話の中で外部の関数やAPIを呼び出せるようにする機能です。これにより、AIは単なる文章生成にとどまらず、リアルタイムのデータ取得、計算処理、外部サービスとの連携など、現実世界のアクションを実行できるようになります。

2026年時点でGemini APIのFunction Callingは大きく成熟し、並列ツール呼び出し、強制ツール使用モード、構造化されたツール定義など、本番利用に十分な機能が揃っています。ここで扱うのは初めてFunction Callingを使う方から、より高度な活用を目指す方まで、体系的に学べる内容をお届けします。


Function Callingの基本的な仕組み

呼び出しフローの全体像

Function Callingは、以下のフローで動作します。

  1. 開発者が使用可能なツール(関数)をAPIリクエストと共に定義する
  2. ユーザーがリクエストを送信する
  3. Geminiモデルがリクエストにどのツールをどの引数で呼び出すべきかを判断する
  4. モデルがツール呼び出しの指示(tool_calls)をレスポンスとして返す
  5. アプリケーションがツールを実際に実行し、結果をモデルに渡す
  6. モデルがツールの結果を踏まえて最終的な回答を生成する

重要なのは、Geminiモデル自体がツールを実行するわけではないという点です。モデルは「どのツールを、どんな引数で呼ぶべきか」を判断するだけで、実際の実行はアプリケーション側が担います。これにより、セキュリティと制御性が保たれます。

ツール定義の基本構造

import google.generativeai as genai
 
# ツールの定義
weather_function = {
    "name": "get_current_weather",
    "description": "指定した都市の現在の天気を取得する。温度の単位は摂氏または華氏を選択できる。",
    "parameters": {
        "type": "object",
        "properties": {
            "location": {
                "type": "string",
                "description": "都市名と国コード(例: 東京, JP)"
            },
            "unit": {
                "type": "string",
                "enum": ["celsius", "fahrenheit"],
                "description": "温度の単位"
            }
        },
        "required": ["location"]
    }
}
 
# ツールをモデルに渡す
model = genai.GenerativeModel(
    model_name="gemini-2.0-flash",
    tools=[weather_function]
)

ツール定義のポイントは「description」の品質です。モデルはdescriptionを参考にして、いつそのツールを使うべきかを判断します。曖昧な説明は誤ったツール選択につながるため、「何をするツールか」「いつ使うべきか」「入力と出力の形式」を明確に記述する点が肝心です。


✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦Function Callingの仕組みと適切なツール定義の設計パターンを理解し、実装に落とし込める
✦並列・逐次ツール呼び出しの制御と複雑なワークフローの実装方法
✦エラーハンドリングとセキュリティを考慮した本番環境での実装ベストプラクティス
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ API / SDK2026-08-08
打ち切りは失敗の合図ではありませんでした — ブロッキング挙動を伴う関数呼び出しの設計
呼び出しが返るまで待つブロッキング型のツールをエージェントに持ち込むと、並列化と打ち切りの常識が反転します。サンドボックスの最小ハーネスで実測した数値をもとに、再試行を観測へ振り替える設計と unknown を握りつぶさない扱い方をまとめました。
◈ API / SDK2026-10-14
config に「Extra inputs are not permitted」が出たら、キーの綴りを一つずつ疑います
google-genai SDK で config を渡した途端に pydantic の ValidationError(extra_forbidden)が出る原因は、ほぼ綴りの一字違いです。手元で再現した出力と、呼び出し前に怪しいキーを洗う関数、text が None になる場合の見分け方を書き残します。
◈ API / SDK2026-10-08
停止日のない非推奨をどう扱うか — 画像モデルの移行先を、3つの条件で選び直す
10月6日に gemini-nano-banana-2.1 が GA になり、gemini-3.1-flash-image は停止日の書かれないまま非推奨になりました。解像度・参照画像・検索の3条件で移行先を選ぶ表と、確認用の短いスクリプトをまとめます。