🔧

Function Calling(ツール利用)

LLMが外部ツールを呼び出して実際の作業を実行

Function CallingはLLMが単純なテキスト生成を超えて、外部ツールを呼び出せるようにする機能です。開発者が利用可能な関数の名前、説明、パラメータスキーマ(JSON Schema)をモデルに提供すると、モデルがユーザーのリクエストを分析して適切な関数と引数をJSONで出力します。このJSONをパースして実際の関数を実行し、結果をモデルに戻すと最終応答を生成します。天気照会、注文処理、DBクエリ、コード実行等「LLMにできないこと」を可能にし、AI Agentの基盤となります。

キーコンセプト

1

開発者が利用可能な関数リストとJSON Schemaをモデルに提供

2

ユーザーが自然言語でリクエスト(「ソウルの天気を教えて」)

3

LLMがリクエストを分析し適切な関数と引数をJSONで出力({"name": "get_weather", "arguments": {"city": "seoul"}})

4

アプリケーションがJSONをパースして実際の関数/APIを実行

5

実行結果を会話コンテキストに追加してモデルに伝達

6

LLMが結果を解釈してユーザーに自然言語応答を生成

メリット

  • LLMの限界(リアルタイムデータ、計算等)をツールで補完
  • 構造化された出力でパースが容易
  • 既存のAPI/システムと統合可能
  • Agentワークフローの基盤

デメリット

  • 関数スキーマの設計が必要
  • 誤った関数呼び出し/引数の可能性
  • セキュリティ — 機密関数の無断呼び出し防止が必要
  • Multi-turnツール呼び出し時の複雑度増加

ユースケース

ChatGPT Plugins / GPT Actions Claude Tool Use AIチャットボットのDB照会/注文処理 AIコーディングアシスタントのファイル読み書き Multi-tool Agent(複数ツールの連鎖呼び出し)