← inaro.devAI駆動開発 学習ツール

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が生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。