Tool Use
Tool Use (Function Calling)
約 14 分
·
クイズ 4 問
·
演習 1 問
重要キーワード (4 語)
Tool Use
(ツール使用)
— LLM が宣言された関数を呼び出して外界とやりとりする仕組み
JSON Schema
(JSONスキーマ)
— ツール入力の型定義に使われる規格
Parallel Tool Use
(並列ツール使用)
— 複数の独立ツールを 1 ターンで同時呼び出し
tool_result
(ツール実行結果)
— アプリ側で関数を実行した結果を返すメッセージ種別
Tool Use (ツール使用)
LLM 単体では計算・検索・DB アクセス・API 呼び出しが苦手です。 Tool Use はモデルに 「関数」を定義して渡し、必要なら呼び出してもらう 仕組み。 別名 Function Calling。
流れ
- ユーザーが質問する。
- モデルがツールを呼ぶ必要があるか判断 →
tool_useブロックを返す。 - アプリ側で実際に関数を実行し、結果を
tool_resultとして返す。 - モデルが最終回答を生成する。
wzxhzdk:0
コード例
wzxhzdk:2
設計のコツ
- description が命。ツールが何をするか明確に書く (Claude のツール選択判断はここに依存)。
- input_schema は JSON Schema。
requiredも明記する。 - 副作用のあるツール (送金等) は人間の確認を挟む設計に。
- 多すぎるツール は精度を落とす。10 個以上なら絞り込むか、上位ツールでルーティングする。
Parallel Tool Use
Claude は 複数のツールを同時に呼ぶ ことができます。 独立した関数なら並列実行で高速化できます。
wzxhzdk:3
これらを並列に実行 → 両方の tool_result をまとめて返すと効率的。
tool_choice で制御
wzxhzdk:4
よく使う応用
- DB クエリ実行 (read-only から始める)
- 検索エンジン呼び出し (Web Search)
- 計算実行 (Python REPL)
- GitHub API, Slack 投稿 などの社内連携
試す: ツール定義を Claude に書かせる
最初の設計を Claude に手伝ってもらうと早いです。
▶ ツール JSON Schema 設計依頼
「会議室予約システム」用の Tool Use 定義 JSON Schema を、書き込み(reserve)・読み取り(list_rooms, get_availability) の 3 つで設計してください。各ツールに description と input_schema を含めて、JSON で返してください。