Tool use
なぜ学ぶか: 「天気を教えて」に対して、Claudeが実際に天気APIを呼んで答える — これがTool use。AIを『喋るだけ』から『行動できる』存在に変える仕組みで、エージェントの心臓部でもあります。ただし『行動できる=危険もできる』ので、権限設計とセットで理解します。
Tool use=Claudeにあなたの関数を使わせる
「こういう道具(関数)があるよ」と教えておくと、Claudeが必要に応じて『この道具をこの引数で使いたい』と要求してきます。
実行するのは自分のコード
Claudeは『使いたい』と言うだけ。実際に関数を動かすのはあなたのアプリ。結果をClaudeに返すと、それを踏まえて応答を続けます。
行動できる=危険もできる
削除・送金など取り返しのつかない道具は、最小権限・人間の承認とセットで。Tool useは権限設計あってこそ安全です。
入力も出力も信じない
Claudeが要求した引数、ツールが返した結果 — どちらも検証してから使います。乗っ取られても被害を限る設計を。
コード例
import Anthropic from "@anthropic-ai/sdk";const client = new Anthropic(); // Claude に「天気を調べる道具」があると教えるconst tools = [ { name: "get_weather", description: "指定した都市の現在の天気を返す。天気を聞かれたら使う。", input_schema: { type: "object" as const, properties: { city: { type: "string", description: "都市名" } }, required: ["city"], }, },]; const res = await client.messages.create({ model: "claude-opus-4-8", max_tokens: 1024, tools, messages: [{ role: "user", content: "東京の天気は?" }],}); // Claude が「道具を使いたい」と要求してきたら…if (res.stop_reason === "tool_use") { const call = res.content.find((b) => b.type === "tool_use"); // → ここで自分のコードが get_weather を実行し、結果を Claude に返す console.log("Claudeが使いたい道具:", call);}
Claude自身は天気を知りません。「道具を使いたい」と要求 → あなたのコードが実行 → 結果を返す、という往復で『行動』が実現します。だからこそ、渡す道具の権限設計が肝心です。
公式ドキュメント
ステップ 1 / 2
※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。