解説
AIが計算機や検索エンジン、社内データベースなどの外部ツールを適切なタイミングと形式で使用する能力のこと。
さらに詳しく解説
ツール呼び出しとは
ツール呼び出し(Tool Calling / Tool Use)は、LLMが外部ツールや関数を呼び出して情報取得やアクションを実行する機能です。Function Callingの発展形として、エージェント型AIの基盤となっています。
Function Callingとの関係
用語の関係:
├── Function Calling(OpenAI)
│ └── 関数呼び出し機能
├── Tool Use(Anthropic)
│ └── ツール使用機能
└── Tool Calling
└── 両者の総称動作の仕組み
ツール呼び出しの流れ:
1. ユーザーの質問
└── 「東京の天気は?」
↓
2. LLMがツール選択
└── get_weather関数を選択
↓
3. 引数の生成
└── {"location": "Tokyo"}
↓
4. ツール実行(アプリ側)
└── 天気APIを呼び出し
↓
5. 結果をLLMに返却
└── {"weather": "晴れ", "temp": 25}
↓
6. 最終回答生成
└── 「東京は晴れで25度です」定義例(OpenAI)
python
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "指定された場所の天気を取得",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "都市名"
}
},
"required": ["location"]
}
}
}
]
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools
)活用事例
| ツール | 用途 |
|---|---|
| 検索API | 最新情報の取得 |
| データベース | データ検索・更新 |
| 計算ツール | 複雑な計算 |
| メール送信 | 通知・連絡 |
| カレンダー | 予定管理 |
並列ツール呼び出し
複数ツールの同時呼び出し:
├── ユーザー: 「東京と大阪の天気は?」
└── LLM: 2つのget_weather呼び出しを生成
├── get_weather(location="Tokyo")
└── get_weather(location="Osaka")セキュリティ考慮
セキュリティ対策:
├── 入力検証
│ └── 引数の妥当性チェック
├── 権限管理
│ └── ユーザー権限に応じた制限
├── レート制限
│ └── 過剰な呼び出し防止
└── ログ記録
└── 監査用の記録各社の対応
MCP(Model Context Protocol)
Anthropicが提唱する、ツール呼び出しの標準化プロトコル。異なるツール間の相互運用性を向上。
