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として返す。 - モデルが最終回答を生成する。
---
name: db-migrator
description: SQL マイグレーションの作成と検証専門
tools: Read, Edit, Bash
---
あなたはデータベースマイグレーション専門のエージェントです。
- alembic の規約に従う
- ロールバック (downgrade) も必ず書く
- 大規模テーブルの NOT NULL 追加は段階移行を提案する
- 本番 DB に直接接続しない
コード例
Main: "次の3つのリポジトリで package.json を読んで違いを比較して"
↓ 並列 起動
[Subagent 1] repo-a/package.json を読む
[Subagent 2] repo-b/package.json を読む
[Subagent 3] repo-c/package.json を読む
↓ 結果集約
Main: 比較結果を提示
設計のコツ
- description が命。ツールが何をするか明確に書く (Claude のツール選択判断はここに依存)。
- input_schema は JSON Schema。
requiredも明記する。 - 副作用のあるツール (送金等) は人間の確認を挟む設計に。
- 多すぎるツール は精度を落とす。10 個以上なら絞り込むか、上位ツールでルーティングする。
Parallel Tool Use
Claude は 複数のツールを同時に呼ぶ ことができます。 独立した関数なら並列実行で高速化できます。
wzxhzdk:2
これらを並列に実行 → 両方の tool_result をまとめて返すと効率的。
tool_choice で制御
wzxhzdk:3
よく使う応用
- 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 で返してください。