概要
ツール利用(tool use)を使うと、Claude が外部の関数や API を呼び出して、検索や計算、データの更新などを行えます。エージェントを作るときの中心になる仕組みです。
アプリケーション側で定義するツールでは、Claude はツールを直接実行するのではなく、「このツールをこの引数で呼びたい」と応答します。実際に実行して、結果を Claude に返すのはアプリケーションの役割です。
押さえるべきポイント
一、ツールは name・description・input_schema で定義する
input_schema には、引数の型や必須の項目を JSON Schema で書きます。
二、tool_use を受け取り、tool_result を返す
Claude がツールを使うと判断すると、応答に tool_use ブロック(id・name・input)が入り、stop_reason が "tool_use" になります。アプリケーションはツールを実行し、次の user メッセージに、tool_use_id を指定した tool_result ブロックを入れて結果を返します。
三、description は具体的に書く
Claude はツールの説明を読んで、使うかどうかと、引数の値を決めます。何をするツールか、いつ使うべきか、各引数の意味や制約を具体的に書くほど、適切に使われます。
四、ツールの結果は信頼できないデータとして扱う
外部から取得した内容には、指示のように見える文章が紛れていることがあります(プロンプトインジェクション)。ツールに与える権限は、必要最小限にします。
重要な用語
| 用語 | 意味 |
|---|---|
| tool use | Claude が外部の関数や API を使えるようにする仕組み。 |
| input_schema | ツールの引数の形を JSON Schema で定義する項目。 |
| tool_use ブロック | Claude がツールを呼びたいときに返す、応答のブロック。 |
| tool_result ブロック | ツールの実行結果を Claude に返すためのブロック。 |
おすすめの教材
いずれも公式の情報です。内容は更新されることがあるため、最新の版を確認してください。
- 公式ドキュメントツール利用の概要(公式ドキュメント)(新しいタブで開きます)
問題で確かめる
- Claude API 問題集分野:ツール利用(3問)この分野を解く