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に任せつつ、実際の処理は安全にアプリケーション側で制御できるため、業務システムとの相性も非常に良いのが特徴です。
チャットボット、観光案内、予約システム、社内業務自動化など、さまざまな用途で活用できるので、ぜひ試してみてください。



コメント