web_search_20250305
、text_editor_20250124
)を使用します。Claudeにツールとユーザープロンプトを提供
Claudeがツールの使用を決定
stop_reason
がtool_use
になり、Claudeの意図を示します。ツールを実行して結果を返す
tool_result
コンテンツブロックを含む新しいuser
メッセージで結果を返しますClaudeがツール結果を使用して応答を作成
Claudeがサーバーツールを実行
Claudeがサーバーツール結果を使用して応答を作成
単一ツールの例
get_weather
関数を実行し、新しいuser
メッセージで結果を返す必要があります:並列ツール使用
tool_use
ブロックが単一のassistantメッセージに含まれ、対応するすべてのtool_result
ブロックは後続のuserメッセージで提供する必要があります。複数ツールの例
get_weather
とget_time
ツールの両方を含む例で、両方を求めるユーザークエリも含まれています。get_weather
を呼び出し、天気結果を受け取った後にget_time
を呼び出すtool_use
ブロックを出力するuser
メッセージで返す必要があり、各結果は独自のtool_result
ブロックに含める必要があります。情報不足
get_weather
ツールを使用して、場所を指定せずに「天気はどうですか?」とClaudeに尋ねた場合、特にClaude Sonnetは、ツール入力について推測を行う可能性があります:順次ツール
get_location
ツールを使用してユーザーの場所を取得し、その場所をget_weather
ツールに渡す例です:get_location
ツールを呼び出してユーザーの場所を取得します。tool_result
で場所を返した後、Claudeはその場所を使用してget_weather
を呼び出し、最終的な答えを得ます。完全な会話は次のようになる可能性があります:役割 | 内容 |
---|---|
User | 私がいる場所の天気はどうですか? |
Assistant | まず現在の場所を見つけて、そこの天気を確認します。[get_locationのツール使用] |
User | [一致するidとサンフランシスコ、カリフォルニア州の結果を持つget_locationのツール結果] |
Assistant | [以下の入力でget_weatherのツール使用]{ “location”: “San Francisco, CA”, “unit”: “fahrenheit” } |
User | [一致するidと「59°F(15°C)、ほぼ曇り」の結果を持つget_weatherのツール結果] |
Assistant | サンフランシスコ、カリフォルニア州の現在の場所に基づくと、現在の天気は59°F(15°C)でほぼ曇りです。街では比較的涼しく曇った日です。外出する場合は軽いジャケットを持参することをお勧めします。 |
get_location
ツールを呼び出します。get_location
関数を実行し、tool_result
ブロックで結果「San Francisco, CA」を返します。get_weather
ツールの呼び出しに進み、location
パラメータとして「San Francisco, CA」を渡します(unit
は必須パラメータではないため、推測されたunit
パラメータも含む)。get_weather
関数を実行し、別のtool_result
ブロックで天気データを返します。思考連鎖ツール使用
関連するツール(利用可能な場合)を使用してユーザーのリクエストに答えてください。ツールを呼び出す前に、分析を行ってください。まず、提供されたツールのうち、ユーザーのリクエストに答えるのに関連するツールはどれかを考えてください。次に、関連するツールの各必須パラメータを確認し、ユーザーが直接提供したか、値を推測するのに十分な情報を与えたかを判断してください。パラメータが推測できるかどうかを決定する際は、特定の値をサポートするかどうかを慎重にすべてのコンテキストを考慮してください。必須パラメータがすべて存在するか合理的に推測できる場合は、ツール呼び出しを進めてください。ただし、必須パラメータの値のいずれかが不足している場合は、関数を呼び出さず(不足しているパラメータの埋め合わせでも)、代わりにユーザーに不足しているパラメータの提供を求めてください。提供されていない場合、オプションパラメータについてより多くの情報を求めないでください。
JSONモード
tool_choice
を設定して(ツール使用の強制を参照)、モデルにそのツールを明示的に使用するよう指示する必要がありますinput
をツールに渡すため、ツールの名前と説明はモデルの視点からのものである必要があることを覚えておいてください。record_summary
ツールを使用する例です。tools
parameter)tools
parameter in API requests (tool names, descriptions, and schemas)tool_use
content blocks in API requests and responsestool_result
content blocks in API requeststools
, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools
are provided, then a tool choice of none
uses 0 additional system prompt tokens.
Model | Tool choice | Tool use system prompt token count |
---|---|---|
Claude Opus 4.1 | auto , none any , tool | 346 tokens 313 tokens |
Claude Opus 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.7 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (Oct) (deprecated) | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (June) (deprecated) | auto , none any , tool | 294 tokens 261 tokens |
Claude Haiku 3.5 | auto , none any , tool | 264 tokens 340 tokens |
Claude Opus 3 (deprecated) | auto , none any , tool | 530 tokens 281 tokens |
Claude Sonnet 3 | auto , none any , tool | 159 tokens 235 tokens |
Claude Haiku 3 | auto , none any , tool | 264 tokens 340 tokens |
usage
メトリクスの一部として入力トークンと出力トークンの両方のカウントを出力します。