ツールの利用 / 関数呼び出し
ツールの利用は、あなたが定義した関数 — 検索、計算機、自分のデータベース、任意の API — を Claude に呼び出させ、その結果を使わせる機能です。これはすべてのエージェントの基礎です。
ループ
- ツール定義のリスト(名前、説明、JSON スキーマの入力)を含めます。
- Claude がいずれかを使うと決めたら、
tool_useブロック(引数付き)を返して停止します。 - あなたがそのツールを実行し、出力を
tool_resultとして送り返します。 - Claude は続行し、必要に応じてさらにツールを呼び出しながら、答えに至ります。
ツールを定義する(Python)
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-4-6", 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 がいつ・どのように呼び出すかを大きく改善します。 - 実行する前に、受け取った入力をバリデーションする — 決してそのまま信用しない。
- エラーを結果として返す。 ツールが失敗したら、Claude が回復できるよう、エラーを記述した
tool_resultを送ります。 - サーバーサイドツール。 Anthropic は組み込みツール(例: Web 検索、コード実行、コンピュータ操作)も提供しています — 現在のメニューはドキュメントで確認してください。
:::warning ツール = アクション = リスク 実際のアクションを起こすツールは、セキュリティモデルを継承します。最小権限を適用し、リスクのある呼び出しには人間を関与させてください — エージェントとツールのセキュリティを参照。 :::