ツールを定義する
ツールスキーマを指定し、効果的な説明を記述し、Claudeがツールを呼び出すタイミングを制御します。
前提条件
- ツール使用の概要を理解していること
- Claude APIキーと、動作するSDKまたはcURLのセットアップ
クライアントツールの指定
クライアントツールは、APIリクエストのトップレベルパラメータ tools で指定します。bashツールやテキストエディタツールなどのAnthropicスキーマのクライアントツールは、日付でバージョン管理された type によって宣言されます。各ツールが受け付けるフィールドについては、ツールリファレンスからリンクされている各ツールのページを参照してください。コンピュータ使用ツールとブラウザ使用ツールはクライアントツールセットです。これは name を持たない単一のエントリで、固定されたメンバーツールのセットを宣言します。ユーザー定義のツール定義には以下が含まれます。
| パラメータ | 説明 |
|---|---|
name | ツールの名前。正規表現^[a-zA-Z0-9_-]{1,128}$に一致する必要があります。 |
description | ツールの機能、使用すべき場面、動作を説明する詳細なプレーンテキスト。 |
input_schema | ツールが想定するパラメータを定義するJSON Schemaオブジェクト。 |
input_examples | (オプション)Claudeがツールの使い方を理解するための入力例オブジェクトの配列。ツール使用の例を提供するを参照してください。 |
cache_control、strict、defer_loading、allowed_callers など、単一のツール定義で利用可能なオプションプロパティの完全なセットについては、ツールリファレンスを参照してください。クライアントツールセットのエントリは、エントリに対して cache_control と allowed_callers を受け付け、メンバーごとに defer_loading を設定します。クライアントツールセットを参照してください。
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature, either 'celsius' or 'fahrenheit'"
}
},
"required": ["location"]
}
}get_weather という名前のこのツールは、必須の location 文字列と、"celsius" または "fahrenheit" のいずれかでなければならないオプションの unit 文字列を持つ入力オブジェクトを期待します。
ツール使用のシステムプロンプト
tools パラメータを指定してClaude APIを呼び出すと、APIはツール定義、ツール設定、およびユーザーが指定した「system prompt」(システムプロンプト)から特別なシステムプロンプトを構築します。構築されたプロンプトは、指定されたツールを使用するようモデルに指示し、ツールが適切に動作するために必要なコンテキストを提供するように設計されています。
In this environment you have access to a set of tools you can use to answer the user's question.
{{ FORMATTING INSTRUCTIONS }}
String and scalar parameters should be specified as is, while lists and objects should use JSON format. Note that spaces for string values are not stripped. The output is not expected to be valid XML and is parsed with regular expressions.
Here are the functions available in JSONSchema format:
{{ TOOL DEFINITIONS IN JSON SCHEMA }}
{{ USER SYSTEM PROMPT }}
{{ TOOL CONFIGURATION }}ツール定義のベストプラクティス
ツールを使用する際にClaudeから最高のパフォーマンスを引き出すには、以下のガイドラインに従ってください。