🔧
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(複数ツールの連鎖呼び出し)