Pythonで簡単にAIエージェントを構築!Gemini Function Callingが便利!

未分類

Pythonで簡単にAIエージェントを構築!Gemini Function Callingが便利!

はじめに

AIエージェントを作る際、単に質問に答えるだけでなく、外部サービスや業務ロジックと連携して「実際に処理を実行する」ことが求められる場面が増えています。
GoogleのGemini APIが提供する Function Calling 機能を使うことで、AIが状況に応じて関数を選択し、アプリケーション側でその関数を実行するという構成を、Pythonでシンプルに実現できます。

本記事では、Gemini Function Callingの概要から、Pythonを使った簡単なAIエージェントの実装例までを解説します。

Gemini Function Callingとは

Function Callingとは、あらかじめ定義した関数を「ツール」としてAIモデルに渡し、ユーザーの入力内容に応じて「どの関数を、どんな引数で呼び出すべきか」をAIが判断する仕組みです。

重要なポイントは、AI自身が関数を実行するわけではない点です。
AIはあくまで「関数呼び出しの指示」を返し、実際の処理はPython側で行います。

この仕組みにより、次のようなことが可能になります。

  • 天気・予約・検索・DBアクセスなど外部処理との連携
  • 自然言語による操作指示をそのまま業務ロジックに接続
  • ルールベースの条件分岐を減らした柔軟なエージェント設計

開発前の準備

まずは以下を用意します。

  • Gemini APIを利用するためのAPIキー
  • Python実行環境(ローカル、仮想環境、Colabなど)
  • Gemini用Python SDKのインストール
pip install google-genai

このSDKを使うことで、Pythonの関数定義から自動的にFunction Calling用のスキーマが生成されます。

Pythonで作るシンプルなAIエージェント

ここでは「天気を取得する関数」を例に、Function Callingを使ったエージェントの基本構成を見ていきます。

関数の定義と初期設定

from google import genai
from google.genai import types

def get_weather_forecast(location: str) -> dict:
    """指定された場所の天気情報を取得する関数(ダミー実装)"""
    return {
        "location": location,
        "forecast": "晴れ"
    }

client = genai.Client(api_key="YOUR_API_KEY")

config = types.GenerateContentConfig(
    tools=[get_weather_forecast]
)

この時点で、get_weather_forecast はAIが利用可能なツールとして登録されています。

ユーザー入力を処理する

response = client.models.generate_content(
    model="gemini-3-flash-preview",
    contents="明日の東京の天気を教えてください",
    config=config,
)

Geminiは入力文を解析し、必要であれば関数呼び出しを提案します。

関数呼び出しの実行

part = response.candidates[0].content.parts[0]

if part.function_call:
    function_name = part.function_call.name
    args = part.function_call.args

    if function_name == "get_weather_forecast":
        result = get_weather_forecast(args)
        print(result)
else:
    print(response.text)

AIが「天気を知るには get_weather_forecast が必要」と判断すると、関数名と引数が構造化された形で返ってきます。
これを受け取って実行することで、AI主導の処理フローを実現できます。

AIエージェントとして発展させるポイント

Function Callingを使うと、次のような拡張が容易になります。

  • 関数実行結果を再度モデルに渡して最終回答を生成
  • 複数の関数を登録し、状況に応じて使い分け
  • FastAPIやFlaskと組み合わせたWeb API化
  • 業務システムやデータベースとの連携

特に重要なのは、関数の引数や説明をできるだけ具体的に定義することです。
これにより、AIが適切な関数選択と引数抽出を行いやすくなります。

まとめ

Gemini Function Callingを使うことで、PythonによるAIエージェント開発は一気に実用的になります。
自然言語の解釈をAIに任せつつ、実際の処理は安全にアプリケーション側で制御できるため、業務システムとの相性も非常に良いのが特徴です。

チャットボット、観光案内、予約システム、社内業務自動化など、さまざまな用途で活用できるので、ぜひ試してみてください。

コメント

タイトルとURLをコピーしました