ツールの利用 / 関数呼び出し
ツールの利用により、Claude はあなたが定義した関数——検索、計算機、あなたのデータベース、任意の API——を呼び出して、その結果を使えます。これはあらゆるエージェントの基盤です。
- 4ステップのエージェント型ループが、ツール定義から最終的な答えまでどう動くか
- Python で名前・説明・JSON-Schema 入力を持つツールを定義する方法
- ツールの説明が、Claude がいつどう呼ぶかを形づくるプロンプトとして働く理由
- 入力を検証し、エラーを結果として返し、サーバー側ツールを安全に使う方法
ループ
ツールの利用は単一の呼び出しではなく会話です。あなたが Claude にツールのメニューを渡し、Claude が1つを選んで一時停止し、あなたが実行して報告し、Claude がその結果を答えに織り込む——必要に応じて繰り返します。
Guided walkthrough1 of 4
- ツール定義のリストを含めます——それぞれに名前、説明、JSON-Schema 入力があります。
- Claude が1つを使うと決めると、引数付きの tool_use ブロックを返して停止します。
- あなた自身がツールを実行し、その出力を tool_result として返します。
- Claude は続行し、答えるまで、場合によってはさらにツールを呼び出します。
ツールを定義する(Python)
ツール定義は、名前、平易な言葉の説明、そして入力の JSON-Schema にすぎません。tools に渡してから、stop_reason を確認して Claude がいつ行動したいかを知ります。
get_weather tool + first call
tools = [{
"name": "get_weather",
"description": "Get current weather for a city.",
"input_schema": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
}]
msg = client.messages.create(
model="claude-sonnet-5", max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "What's the weather in Rome?"}],
)
# If msg.stop_reason == "tool_use": run the tool, then send a tool_result back.コツ
ツールを定義し処理する際の小さな選択が、信頼性に大きな差を生みます。
- 説明はプロンプト。 明確なツールの
descriptionとパラメータのドキュメントは、Claude がいつどう呼ぶかを大きく改善します。 - 受け取った入力を検証する——実行前に。決して鵜呑みにしない。
- エラーを結果として返す。 ツールが失敗したら、エラーを記述した
tool_resultを送って Claude が回復できるようにします。 - サーバー側ツール。 Anthropic は組み込みツール(例:ウェブ検索、コード実行、コンピュータ使用)も提供しています——現在のメニューはドキュメントで確認してください。
:::warning ツール = アクション = リスク 実際のアクションを取るツールはセキュリティモデルを引き継ぎます。最小権限を適用し、リスクのある呼び出しには人を介在させてください——エージェントとツールの保護を参照。 :::
ツール使用の用語
Enter キーまたはスペースキーでカードを裏返します。左右の矢印キーでカードを移動できます。用語を表示しました。1 / 4
理解度チェック
0/3- ツールの利用はループ:ツール定義を送り、Claude が tool_use ブロックを返して停止し、あなたが実行して tool_result を返し、Claude が答えるまで続ける。
- ツール定義は名前、説明、JSON-Schema 入力——tools に渡し、stop_reason == tool_use を確認する。
- 説明はプロンプト;実行前に入力を検証する;失敗は tool_result エラーとして返し、Claude が回復できるようにする。
- Anthropic はサーバー側ツールも提供しており、実際のアクションを取るツールには最小権限と人の介在が必要。