AI
AI INSIGHT 経営課題をAIで解決|経営者のためのAIメディア
Function Calling(関数呼び出し)とは?AIが外部ツールを使う仕組みを解説
AI用語解説

Function Calling(関数呼び出し)とは?AIが外部ツールを使う仕組みを解説

2025-11-13
2025-12-10 更新

「今日の天気は?」と聞くと、AIが天気APIを呼び出して最新情報を返す——Function Callingは、LLMと外部システムをつなぐ架け橋です。AIが「行動」できるようになる技術を解説します。

ChatGPTに「今日の東京の天気は?」と聞いても、リアルタイムの天気は答えられません。なぜなら、LLMの知識は学習時点で止まっているからです。

しかし、Function Calling(関数呼び出し)を使えば、AIは天気APIを呼び出して最新情報を取得できます。

この記事では、LLMと外部世界をつなぐ重要技術「Function Calling」について解説します。

Function Callingとは?

一言で言うと

Function Callingは、LLMが外部の関数やAPIを「呼び出すべきかどうか」を判断し、必要な引数をJSON形式で出力する機能です。

「Tool Use(ツール使用)」とも呼ばれます。

読者
読者

AIが直接APIを呼び出すんですか?

吉村(AIコンサルタント)
吉村(AIコンサルタント)

いいえ、ここが重要なポイントです。LLMは「この関数を呼んでほしい」と指示を出すだけで、実際の実行はプログラム側が行います。LLMは判断と引数の生成を担当します。

何ができるようになるのか

Function Callingにより、LLMは以下のことが可能になります。

  • 最新情報の取得:天気、株価、ニュースなど
  • データベース操作:顧客情報の検索、予約の登録
  • 外部サービス連携:メール送信、カレンダー登録
  • 計算処理:複雑な数学計算、データ分析
  • ファイル操作:ドキュメント作成、画像処理

Function Callingの仕組み

処理の流れ

  1. ユーザーの質問:「今日の東京の天気は?」
  2. LLMが判断:「天気を知るには get_weather 関数が必要だな」
  3. LLMが引数を生成(JSON)
{
  "function": "get_weather",
  "arguments": {
    "location": "東京",
    "date": "2025-12-10"
  }
}
  1. プログラムが関数を実行:天気API呼び出し → 「晴れ、最高気温12度」
  2. 結果をLLMに渡す
  3. LLMが回答を生成:「今日の東京の天気は晴れで、最高気温は12度です」

重要なポイント

LLMは実行しない

Function Callingという名前から誤解しやすいですが、LLMが関数を直接実行するわけではありません。LLMは「どの関数を呼ぶべきか」「引数は何か」を判断するだけで、実際の実行はアプリケーション側が行います。

関数の定義方法

開発者は、LLMに利用可能な関数を教える必要があります。

{
  "name": "get_weather",
  "description": "指定した場所の天気情報を取得します",
  "parameters": {
    "type": "object",
    "properties": {
      "location": {
        "type": "string",
        "description": "天気を調べたい場所(例:東京、大阪)"
      },
      "date": {
        "type": "string",
        "description": "日付(YYYY-MM-DD形式)"
      }
    },
    "required": ["location"]
  }
}

LLMはこの定義を読んで、ユーザーの質問に適した関数を選択します。

Function Callingの種類

1. 単一関数呼び出し

1回のリクエストで1つの関数を呼び出します。

ユーザー:「東京の天気は?」
→ get_weather(location="東京")

2. 並列関数呼び出し(Parallel Function Calling)

複数の関数を同時に呼び出します。効率的な処理が可能。

ユーザー:「東京と大阪の天気を教えて」
→ get_weather(location="東京")
→ get_weather(location="大阪")
(同時に実行)

3. 連鎖的関数呼び出し

1つの関数の結果を使って、次の関数を呼び出します。

ユーザー:「私の予定がある日の天気を教えて」
→ get_calendar() → 「12月15日に予定あり」
→ get_weather(date="2025-12-15")

tool_choiceオプション

関数呼び出しの挙動を制御できます。

オプション 動作
auto AIが必要に応じて関数を呼び出す(デフォルト)
required 必ずいずれかの関数を呼び出す
none 関数呼び出しを無効化
{"name": "関数名"} 特定の関数を強制的に呼び出す

主要LLMのFunction Calling対応

OpenAI(GPT-4、GPT-3.5)

2023年6月にFunction Calling機能を発表。2023年12月のアップデートで、パラメータ名が変更されました。

旧パラメータ 新パラメータ
functions tools
function_call tool_choice

Anthropic(Claude)

「Tool Use」という名称でFunction Callingをサポート。JSON形式で関数を定義し、Claude API経由で利用可能。

Google(Gemini)

Gemini 1.5 Pro/FlashでFunction Callingをサポート。Vertex AIと統合され、エージェントオーケストレーションにも対応。

オープンソースモデル

Llama、Mistral、Qwenなども、ファインチューニングによりFunction Callingに対応。

Function Callingの活用事例

1. AIアシスタント・チャットボット

ユーザー:「明日の14時に田中さんとミーティングを設定して」
→ create_meeting(date="2025-12-11", time="14:00", attendee="田中")
→ 「ミーティングを設定しました」

チャットボットに実際の「行動」能力を与えられます。

2. データ検索・分析

ユーザー:「先月の売上上位5商品を教えて」
→ query_database(query="SELECT * FROM sales WHERE month='2025-11' ORDER BY amount DESC LIMIT 5")
→ 「1位:商品A(100万円)、2位:商品B(80万円)...」

3. 自然言語からの構造化データ抽出

ユーザー:「山田太郎、35歳、東京都在住、電話番号03-1234-5678」
→ extract_contact({name: "山田太郎", age: 35, address: "東京都", phone: "03-1234-5678"})

4. 複合タスクの自動化

ユーザー:「新規顧客リストをExcelにまとめてメールで送って」
→ get_new_customers()
→ create_excel(data=顧客リスト)
→ send_email(to="担当者", attachment="顧客リスト.xlsx")

Function CallingとMCPの関係

MCP(Model Context Protocol)とは

2024年にAnthropicが発表したMCPは、LLMと外部ツールを接続するための標準プロトコルです。

項目 Function Calling MCP
提供元 各LLMベンダー Anthropic(オープン標準)
対象 特定のAPIとの連携 汎用的なツール接続
標準化 ベンダーごとに異なる 統一プロトコル
拡張性 API単位で定義 サーバー単位で機能追加
読者
読者

どう使い分けるんですか?

吉村
吉村

Function Callingは「特定のAPIを呼び出す」機能、MCPは「様々なツールを統一的に接続する」標準規格です。MCPを使えば、一度設定したツール群を異なるLLMで再利用できるメリットがあります。

Function Callingの実装のコツ

1. 関数の説明を明確に

// 悪い例
"description": "天気を取得"

// 良い例
"description": "指定した都市の現在の天気情報(気温、湿度、天候)を取得します。日本国内の都市に対応しています。"

LLMは説明文を読んで関数を選択するため、詳細な説明が精度向上につながります。

2. パラメータの型と制約を明示

"parameters": {
  "temperature_unit": {
    "type": "string",
    "enum": ["celsius", "fahrenheit"],
    "description": "温度の単位"
  }
}

3. 必須パラメータを適切に設定

"required": ["location"]  // 必須パラメータ
// dateは任意(省略時は今日)

4. エラーハンドリングを実装

関数の実行が失敗した場合の処理も重要です。

関数実行エラー発生
→ エラー情報をLLMに返す
→ LLMが別のアプローチを提案

2025年の最新動向

効率化の進展

最新の研究では、利用可能な関数を動的に制限する「Less-is-More」アプローチが注目されています。

  • 実行時間:最大70%削減
  • 消費電力:約40%削減

関数の選択肢が少ないほど、LLMの判断が速く正確になります。

AIエージェントの基盤技術

Function Callingは、AIエージェント(自律的にタスクを実行するAI)の核心技術となっています。

【AIエージェントの動作】
目標設定 → 計画立案 → Function Calling → 結果確認 → 次のアクション
                         ↑
                    外部世界との接点
吉村
吉村

Function Callingにより、LLMは「考える」だけでなく「行動する」ことが可能になりました。これはAIの実用性を大きく広げる技術革新です。

まとめ:AIと外部世界をつなぐ架け橋

Function Callingは、LLMが外部システムと連携するための重要な技術です。

Function Callingの重要ポイント:

  • LLMが「どの関数を呼ぶか」を判断し、引数を生成
  • 実際の関数実行はアプリケーション側が担当
  • 天気取得、DB操作、外部API連携など幅広い活用
  • OpenAI、Claude、Geminiなど主要LLMが対応
  • 並列呼び出し、連鎖呼び出しも可能
  • AIエージェントの核心技術として発展中

Function Callingにより、AIは「知識を持つ」だけでなく「行動できる」存在へと進化しています。

Tags

Function Calling Tool Use ChatGPT API LLM
吉村 この記事の筆者

吉村

AI INSIGHT

大学でIT教育に20年携わり、わかりやすい解説に定評あり。現在は合同会社四次元にてAI初心者向けの入門コンテンツを担当。

この記事をシェアする

記事一覧に戻る