翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Anthropic Claude ツールの使用
警告
以下のいくつかの関数は、表示されているようにベータ版で提供されています。これらの機能は、 AWS サービス条件で定義されている「ベータサービス」として利用できます。本ライセンス条項には、 AWS および AWS サービス条件、および該当するモデル EULA とのお客様の契約が適用されます。
Anthropic Claude モデルを使用すると、モデルがメッセージの応答に使用できるツールを指定できます。例えば、ラジオ局で最も人気のある曲を取得するツールを指定できます。ユーザーが、「WZPZ で最も人気の曲は何か?」というメッセージを送信すると、モデルは、指定したツールが質疑応答に役立つと判断します。レスポンスでは、モデルがユーザーに代わってツールを実行することをリクエストします。次に、ツールを実行し、ツール結果をモデルに渡します。これにより、元のメッセージのレスポンスが生成されます。詳細については、「Anthropic Claude ドキュメント」の「ツールの使用 (関数呼び出し)
ヒント
ツールの使用をアプリケーションに統合するには、 Responses API または Messages API を使用することをお勧めします。詳細については、「ツールを使用して Amazon Bedrock のモデルレスポンスを完成させる」を参照してください。
重要
Claude Sonnet 4.5 では、ツール呼び出し文字列パラメータの意図されたフォーマットが保持されるようになりました。以前は、文字列パラメータの末尾の改行が誤って削除されていました。この修正により、正確なフォーマットを必要とするツール (テキストエディタなど) が意図したとおりにパラメータを受信できるようになります。これは、API の変更を必要としない、舞台裏の改善です。ただし、文字列パラメータを持つツールは、以前は削除されていた末尾の改行がついた値を受け取ることができるようになりました。
注記
Claude Sonnet 4.5 には、モデルのパフォーマンスを向上させるための自動最適化が含まれています。この最適化により、リクエストに少量のトークンが追加される場合がありますが、システムが追加したこれらのトークンには課金されません。
tools フィールドでモデルに使用できるようにしたいツールを指定します。次の例は、ラジオ局で最も人気のある曲を取得するツールを示しています。
[ { "name": "top_song", "description": "Get the most popular song played on a radio station.", "input_schema": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP." } }, "required": [ "sign" ] } } ]
モデルがメッセージへのレスポンスを生成するツールを必要とする場合、リクエストされたツールに関する情報と、ツールへの入力がメッセージ content フィールドに表示されます。また、tool_use へのレスポンスの停止理由も設定されます。
{ "id": "msg_bdrk_01USsY5m3XRUF4FCppHP8KBx", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "stop_sequence": null, "usage": { "input_tokens": 375, "output_tokens": 36 }, "content": [ { "type": "tool_use", "id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "name": "top_song", "input": { "sign": "WZPZ" } } ], "stop_reason": "tool_use" }
コードでは、ツールの代わりにツールを呼び出します。次に、ユーザーメッセージのツール結果 (tool_result) をモデルに渡します。
{ "role": "user", "content": [ { "type": "tool_result", "tool_use_id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "content": "Elemental Hotel" } ] }
レスポンスでは、モデルはツール結果を使用して元のメッセージのレスポンスを生成します。
{ "id": "msg_bdrk_012AaqvTiKuUSc6WadhUkDLP", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "content": [ { "type": "text", "text": "According to the tool, the most popular song played on radio station WZPZ is \"Elemental Hotel\"." } ], "stop_reason": "end_turn" }
きめ細かなツールストリーミング
きめ細かなツールストリーミングは、Claude Sonnet 4.5、Claude Haiku 4.5、Claude Sonnet 4、Claude Opus 4 で使用できる Anthropic Claude モデル機能です。きめ細かなツールストリーミングを使用すると、Claude デベロッパーはバッファリングや JSON 検証なしでツール使用パラメータをストリーミングできるため、大きなパラメータの受信が開始されるまでのレイテンシーが短縮されます。
注記
きめ細かなツールストリーミングを使用する場合、無効な JSON 入力または部分的な JSON 入力を受け取る可能性があります。コードでこうしたエッジケースを考慮するようにしてください。
ツール使用リクエストに ヘッダー fine-grained-tool-streaming-2025-05-14 を追加するだけで、この機能を使用できます。
きめ細かなツールストリーミングヘッダーを指定する方法の例を次に示します。
{ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "anthropic_beta": ["fine-grained-tool-streaming-2025-05-14"], "messages": [ { "role": "user", "content": "Can you write a long poem and make a file called poem.txt?" } ], "tools": [ { "name": "make_file", "description": "Write text to a file", "input_schema": { "type": "object", "properties": { "filename": { "type": "string", "description": "The filename to write text to" }, "lines_of_text": { "type": "array", "description": "An array of lines of text to write to the file" } }, "required": [ "filename", "lines_of_text" ] } } ] }
この例では、きめ細かなツールストリーミングにより、Claude はバッファリングなしで長い詩の行をツール呼び出し make_file にストリーミングし、lines_of_text パラメータが有効な JSON であるかどうかを検証できます。つまり、パラメータストリームは到着時に表示でき、パラメータ全体がバッファリングされて検証されるのを待つ必要がありません。
きめ細かなツールストリーミングでは、ツール使用チャンクのストリーミングがより速く開始され、多くの場合、チャンクが長くなり、単語の区切りが少なくなります。これは、チャンキング動作の違いによるものです。
例えば、きめ細かなストリーミングなしの場合 (15 秒の遅延):
Chunk 1: '{"' Chunk 2: 'query": "Ty' Chunk 3: 'peScri' Chunk 4: 'pt 5.0 5.1 ' Chunk 5: '5.2 5' Chunk 6: '.3' Chunk 8: ' new f' Chunk 9: 'eatur' ...
きめ細かなストリーミングの場合 (3 秒の遅延):
Chunk 1: '{"query": "TypeScript 5.0 5.1 5.2 5.3' Chunk 2: ' new features comparison'
注記
きめ細かなストリーミングはバッファリングや JSON 検証なしでパラメータを送信するため、結果のストリームが有効な JSON 文字列で完了するという保証はありません。特に、停止理由の max_tokens に達した場合、ストリームはパラメータの途中で終了し、不完全になる可能性があります。通常、max_tokens に達したときに処理するには、特定のサポートを記述する必要があります。
Computer Use (ベータ版)
コンピュータの使用は、グラフィカルユーザーインターフェイス (GUI) タスクを自動化するためのAnthropicClaudeツールファミリー (ベータ版) です。概要、Amazon Bedrock 固有のリクエストシェイプ、エンドツーエンドの例については、 end-to-end 「」を参照してくださいコンピュータ使用ツールを使用して Amazon Bedrock モデルで GUI タスクを自動化する。各エンドポイントでコンピュータの使用をサポートするモデルを確認するには、各 の機能と機能の表を参照してくださいモデルの概要。
リクエストでコンピュータの使用を有効にするには、 anthropic_beta をコンピュータ使用バージョンに設定し、 がそのバージョンtypeと一致するツールエントリを含めます。有効なペアリングは次のとおりです。
| ベータヘッダー | コンピュータツールタイプ |
|---|---|
computer-use-2025-11-24 |
computer_20251124 |
computer-use-2025-01-24 |
computer_20250124 |
computer-use-2024-10-22 |
computer_20241022 |
各ツールタイプは、モデルの特定のサブセットでのみ機能します。モデルがサポートしていないツールタイプを送信すると、 などのメッセージ400 invalid_request_errorを含む が返されます'claude-opus-4-7' does not support tool types: computer_20241022。リクエストを送信する前に、モデルの機能テーブルでサポートを確認します。
基盤となるツールプロトコル、完全なアクション語彙、プロンプトエンジニアリングガイダンスについては、 Anthropicドキュメントの「コンピュータの使用
クライアントツールセット
一部のClaudeモデルでは、2 つのバンドルされたクライアントツールセットをtools[].type値として受け入れます。ツールセットは、関連するクライアントツールのグループを 1 つのタイプにバンドルするため、各ツールを個別に宣言する必要はありません。anthropic_beta 値は必要ありません。
| ツールセットタイプ | 説明 |
|---|---|
computer_toolset_20260801 |
デスクトップインタラクション用のバンドルされたコンピュータ用ツール。 |
browser_toolset_20260801 |
バンドルされたブラウザ自動化ツール。 |
個々のクライアントツールと同様に、モデルはアクションをリクエストしますが、実行しません。リクエストされた各アクションを実行し、 を返しますtool_result。モデルがサポートしていないツールセットタイプを送信すると、 が返されます400 invalid_request_error。モデルが受け入れるツールセットを確認するには、モデルのモデルカードの「機能と機能」セクションを参照してください。
Anthropic 定義ツール
Anthropic には、Claudeモデルがコンピュータを操作するために使用できる一連の事前定義されたツールが用意されています。Anthropicで定義されたツールを指定する場合、 description および tool_schemaフィールドは必須または許可されません。モデルはこれらのツールを自動的に実行しません。リクエストされた各アクションを実行し、 tool_resultを に返す必要がありますClaude。各モデルが受け入れるこれらのツールを確認するには、モデルの の「機能と機能の表」を参照してくださいモデルの概要。モデルがサポートしていないツールタイプを送信すると、 が返されます400 invalid_request_error。
ツール |
注意事項 |
|---|---|
|
最新のコンピュータ用ツール。 |
|
|
|
レガシー。 |
|
既存の |
|
レガシー。 |
|
|
|
レガシー。 |
type フィールドは検証目的でツールとそのパラメータを識別します。 name フィールドはモデルに公開されるツール名です。
これらのツールのいずれかを使用するようにモデルに指示する場合は、name フィールドでツールを明示的に参照できます。name フィールドはツールリスト内で一意である必要があります。同じ API コールで Anthropicが定義したツールnameと同じツールを定義することはできません。
自動ツールコールクリア (ベータ版)
警告
自動ツールコールクリアは、 AWS サービス条件で定義されている「ベータサービス」として利用できます。
注記
この機能は現在、Claude Sonnet 4/4.5、Claude Haiku 4.5、および Claude Opus 4/4.1/4.5 でサポートされています。
自動ツールコールクリアは、Anthropic Claude モデル機能 (ベータ) です。この機能を使用すると、Claude はトークンの制限に近づくと古いツールの使用結果を自動的にクリアできるため、マルチターンツールの使用シナリオでより効率的なコンテキスト管理が可能になります。ツール使用クリアを使用するには、anthropic_beta リクエストパラメータのベータヘッダーのリストに context-management-2025-06-27 を追加する必要があります。また、 の使用を指定clear_tool_uses_20250919し、次の設定オプションから選択する必要があります。
clear_tool_uses_20250919 コンテキスト管理戦略で使用できるコントロールは次のとおりです。すべてにオプションまたはデフォルトがあります。
| 設定オプション | 説明 |
|---|---|
|
デフォルト: 100,000 入力トークン |
コンテキスト編集戦略がいつアクティブ化されるかを定義します。プロンプトがこのしきい値を超えると、クリアが開始されます。この値は input_tokens または tool_uses のいずれかで指定できます。 |
|
デフォルト: 3 つのツール使用 |
クリア後に保持する最近のツールの使用/結果ペアの数を定義します。API は、最も古いツールインタラクションから先に削除し、最新のツールインタラクションを保持します。モデルが会話を効果的に継続するために最近のツールインタラクションにアクセスする必要がある場合に役立ちます。 |
|
|
戦略がアクティブ化されるたびに、最小数のトークンがクリアされるようにします。API が少なくとも指定された量をクリアできない場合、戦略は適用されません。これは、コンテキストクリアが、プロンプトキャッシュを破棄する価値があるかどうかを判断するのに役立ちます。 |
|
|
ツールの使用と結果をクリアしてはならないツール名のリスト。重要なコンテキストの保存に役立ちます。 |
|
|
ツールコールパラメータをツールの結果とともにクリアするかどうかを制御します。デフォルトでは、Claude の元のツールコールを表示したままツールの結果のみがクリアされるため、Claude は結果が削除された後でも実行されたオペレーションを確認できます。 |
注記
プレフィックスにツールが含まれている場合、ツールをクリアするとキャッシュが無効になります。
重要
Anthropic web_search_20250305サーバーツールは Amazon Bedrock ではサポートされていません。
注記
Bedrock は現在、CountTokens API での clear_tool_uses_20250919 コンテキスト管理をサポートしていません。
メモリツール (ベータ版)
警告
Memory Tool は、サービス条件で定義されている「ベータ AWS サービス」として利用できます。
Claude Sonnet 4.5 には新しいメモリツールが含まれています。このツールを使用すると、会話間でメモリを管理することができます。この機能を使用すると、ローカルディレクトリへのアクセスを提供することで、Claude がコンテキストウィンドウ外の情報を取得することを許可できます。この機能はベータ版で利用できます。この機能を使用するには、 anthropic_betaパラメータcontext-management-2025-06-27に を含める必要があります。
ツール定義:
{ "type": "memory_20250818", "name": "memory" }
リクエストの例:
{ "max_tokens": 2048, "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["context-management-2025-06-27"], "tools": [{ "type": "memory_20250818", "name": "memory" }], "messages": [ { "role": "user", "content": [{"type": "text", "text": "Remember that my favorite color is blue and I work at Amazon?"}] } ] }
レスポンスの例:
{ "id": "msg_vrtx_014mQ5ficCRB6PEa5k5sKqHd", "type": "message", "role": "assistant", "model": "claude-sonnet-4-20250514", "content": [ { "type": "text", "text": "I'll start by checking your memory directory and then record this important information about you." }, { "type": "tool_use", "id": "toolu_vrtx_01EU1UrCDigyPMRntr3VYvUB", "name": "memory", "input": { "command": "view", "path": "/memories" } } ], "stop_reason": "tool_use", "stop_sequence": null, "usage": { "input_tokens": 1403, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "output_tokens": 87 }, "context_management": { "applied_edits": [] } }
ツール使用のコストに関する考慮事項
ツール使用リクエストは、次の要因に基づいて料金が設定されます。
-
モデルに送信された入力トークンの合計数 (ツールパラメータを含む)
-
生成された出力トークンの数
ツールの料金は他のすべての Claude API リクエストと同じですが、リクエストごとに追加のトークンが含まれています。ツールの使用による追加のトークンは、以下により取得されます。
-
API リクエストの
toolsパラメータ。例えば、ツール名、説明、スキーマなどです。 -
API リクエストとレスポンスのすべての
tool_useコンテンツブロック。 -
API リクエストのすべての
tool_resultコンテンツブロック。
ツールを使用すると、Anthropic モデルにはツールの使用を可能にする特別なシステムプロンプトが自動的に含まれます。次の表は各モデルに必要なツール使用トークンの数です。この表には、前述の追加のトークンは含まれていません。この表は、ツールが少なくとも 1 つ提供されていることを前提としていることに注意してください。ツールが提供されていない場合、ツール選択なしで使用される追加のシステムプロンプトトークンは 0 個となります。
| モデル | ツールの選択 | ツール使用システムプロンプトトークン数 |
|---|---|---|
|
Claude Opus 4.5 Claude Opus 4.1 Claude Opus 4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 Claude 3.7 Sonnet Claude 3.5 Sonnet v2 |
auto、または none |
346 |
|
Claude Opus 4.5 Claude Opus 4.1 Claude Opus 4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 Claude 3.7 Sonnet Claude 3.5 Sonnet v2 |
any、または tool |
313 |
|
Claude 3.5 Sonnet |
auto、または none |
294 |
|
Claude 3.5 Sonnet |
any、または tool |
261 |
|
Claude 3 Opus |
auto、または none |
530 |
|
Claude 3 Opus |
any、または tool |
281 |
|
Claude 3 Sonnet |
auto、または none |
159 |
|
Claude 3 Sonnet |
any、または tool |
235 |
|
Claude 3 Haiku |
auto、または none |
264 |
|
Claude 3 Haiku |
any、または tool |
340 |
ツール検索ツール (ベータ)
ツール検索ツールを使用するとClaude、コンテキストウィンドウにすべての定義を事前にロードすることなく、数百または数千のツールを操作できます。すべてのツールをすぐに宣言する代わりに、 でマークしdefer_loading: true、ツール検索メカニズムを通じて必要なツールのみClaudeを検索してロードできます。
この機能にアクセスするには、 anthropic_betaパラメータtool-search-tool-2025-10-19に を含める必要があります。この機能は現在、InvokeModel API と InvokeModelWithResponseStream API でのみ使用できます。 APIs
ツール定義:
{ "type": "tool_search_tool_regex", "name": "tool_search_tool_regex" }
リクエストの例:
{ "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": [ "tool-search-tool-2025-10-19" ], "max_tokens": 4096, "tools": [{ "type": "tool_search_tool_regex", "name": "tool_search_tool_regex" }, { "name": "get_weather", "description": "Get current weather for a location", "input_schema": { "type": "object", "properties": { "location": { "type": "string" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] } }, "required": ["location"] }, "defer_loading": true }, { "name": "search_files", "description": "Search through files in the workspace", "input_schema": { "type": "object", "properties": { "query": { "type": "string" }, "file_types": { "type": "array", "items": { "type": "string" } } }, "required": ["query"] }, "defer_loading": true } ], "messages": [{ "role": "user", "content": "What's the weather in Seattle?" }] }
レスポンスの例
{ "role": "assistant", "content": [{ "type": "text", "text": "I'll search for the appropriate tools to help with this task." }, { "type": "server_tool_use", "id": "srvtoolu_01ABC123", "name": "tool_search_tool_regex", "input": { "pattern": "weather" } }, { "type": "tool_search_tool_result", "tool_use_id": "srvtoolu_01ABC123", "content": { "type": "tool_search_tool_search_result", "tool_references": [{ "type": "tool_reference", "tool_name": "get_weather" }] } }, { "type": "text", "text": "Now I can check the weather." }, { "type": "tool_use", "id": "toolu_01XYZ789", "name": "get_weather", "input": { "location": "Seattle", "unit": "fahrenheit" } } ], "stop_reason": "tool_use" }
ストリーミングの例
# Event 1: content_block_start(with complete server_tool_use block) { "type": "content_block_start", "index": 0, "content_block": { "type": "server_tool_use", "id": "srvtoolu_01ABC123", "name": "tool_search_tool_regex" } } # Event 2: content_block_delta(input JSON streamed) { "type": "content_block_delta", "index": 0, "delta": { "type": "input_json_delta", "partial_json": "{\"regex\": \".*weather.*\"}" } } # Event 3: content_block_stop(tool_use complete) { "type": "content_block_stop", "index": 0 } # Event 4: content_block_start(COMPLETE result in single chunk) { "type": "content_block_start", "index": 1, "content_block": { "type": "tool_search_tool_result", "tool_use_id": "srvtoolu_01ABC123", "content": { "type": "tool_search_tool_search_result", "tool_references": [{ "type": "tool_reference", "tool_name": "get_weather" }] } } } # Event 5: content_block_stop(result complete) { "type": "content_block_stop", "index": 1 }
カスタムツール検索ツール
tool_reference ブロックを返すツールを定義することで、カスタムツール検索ツールを実装できます (埋め込みの使用など)。カスタムツールには が必要ですdefer_loading: falseが、他のツールには が必要ですdefer_loading: true。独自のツール検索ツールを定義すると、Claude使用するツールを指すtool_referenceコンテンツブロックを含むツールの結果が返されます。
カスタマー定義のツール検索ツールの結果レスポンス形式:
{ "type": "tool_result", "tool_use_id": "toolu_01ABC123", "content": [{ "type": "tool_reference", "tool_name": "get_weather" }, { "type": "tool_reference", "tool_name": "weather_forecast" } ] }
は、 のリクエストで定義されたツールと一致するtool_name必要がありますdefer_loading: true。Claude は、これらのツールの完全なスキーマにアクセスできます。
カスタム検索ツール - 詳細な例
tool_reference ブロックを返すツールを定義することで、カスタムツール検索ツールを実装できます (埋め込みやセマンティック検索など)。これにより、正規表現マッチングを超えた高度なツール検出メカニズムが可能になります。
カスタム TST を使用したリクエストの例:
{ "model": "claude-sonnet-4-5-20250929", "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["tool-search-tool-2025-10-19"], "max_tokens": 4096, "tools": [{ "name": "semantic_tool_search", "description": "Search for available tools using semantic similarity. Returns the most relevant tools for the given query.", "input_schema": { "type": "object", "properties": { "query": { "type": "string", "description": "Natural language description of what kind of tool is needed" }, "top_k": { "type": "integer", "description": "Number of tools to return (default: 5)" } }, "required": ["query"] }, "defer_loading": false }, { "name": "get_weather", "description": "Get current weather for a location", "input_schema": { "type": "object", "properties": { "location": { "type": "string" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] } }, "required": ["location"] }, "defer_loading": true }, { "name": "search_flights", "description": "Search for available flights between locations", "input_schema": { "type": "object", "properties": { "origin": { "type": "string" }, "destination": { "type": "string" }, "date": { "type": "string" } }, "required": ["origin", "destination", "date"] }, "defer_loading": true } ], "messages": [{ "role": "user", "content": "What's the weather forecast in Seattle for the next 3 days?" }] }
Claudeのレスポンス (カスタム TST を呼び出す):
{ "role": "assistant", "content": [{ "type": "text", "text": "I'll search for the appropriate tools to help with weather information." }, { "type": "tool_use", "id": "toolu_01ABC123", "name": "semantic_tool_search", "input": { "query": "weather forecast multiple days", "top_k": 3 } } ], "stop_reason": "tool_use" }
お客様が提供したツールの結果
ツールライブラリでセマンティック検索を実行すると、顧客は一致するツールリファレンスを返します。
{ "role": "user", "content": [{ "type": "tool_search_tool_result", "tool_use_id": "toolu_01ABC123", "content": { "type": "tool_search_tool_search_result", "tool_references": [{ "type": "tool_reference", "tool_name": "get_weather" }] } }] }
Claudeのフォローアップ (検出されたツールを使用)
{ "role": "assistant", "content": [{ "type": "text", "text": "I found the forecast tool. Let me get the weather forecast for Seattle." }, { "type": "tool_use", "id": "toolu_01DEF456", "name": "get_weather", "input": { "location": "Seattle, WA" } } ], "stop_reason": "tool_use" }
エラー処理
-
すべてのツール (ツール検索ツールを含む)
defer_loading: trueに対して を設定すると、400 エラーがスローされます。 -
対応するツール定義
tool_referenceなしで を渡すと、400 エラーがスローされます
ツールの使用例 (ベータ)
Claude Opus 4.5 は、 のツール使用パフォーマンスを向上させるためにClaude、ツール定義でユーザーが提供する例をサポートしています。別の形式に変換することなく、実際の LLM 出力とまったく同じ形式で完全な関数呼び出しとして例を提供できます。この機能を使用するには、 anthropic_betaパラメータtool-examples-2025-10-29に を含める必要があります。
ツール定義の例:
{ "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": "Temperature unit" } }, "required": ["location"] }, "input_examples": [{ "location": "San Francisco, CA", "unit": "fahrenheit" }, { "location": "Tokyo, Japan", "unit": "celsius" }, { "location": "New York, NY" } ] }
検証ルール
-
スキーマの適合: の各例は、ツールの に従って有効
input_examplesである必要がありますinput_schema。-
必須フィールドは、少なくとも 1 つの例に存在する必要があります。
-
フィールドタイプはスキーマと一致する必要があります。
-
列挙値は、許可されたセットのものである必要があります。
-
検証が失敗した場合は、検証に失敗した例の詳細を含む 400 エラーを返します。
-
-
配列の要件: は配列
input_examplesである必要があります (空にすることができます)。-
空の配列
[]は有効であり、 フィールドを省略することと同等です。 -
1 つの例を配列でラップする必要があります。
[{...}] -
長さの制限: ツール定義ごとに 20 個の例の制限から始めます。
-
エラーの例:
// Invalid: Example doesn't match schema (missing required field) { "type": "invalid_request_error", "message": "Tool 'get_weather' input_examples[0] is invalid: Missing required property 'location'" } // Invalid: Example has wrong type for field { "type": "invalid_request_error", "message": "Tool 'search_products' input_examples[1] is invalid: Property 'filters.price_range.min' must be a number, got string" } // Invalid: input_examples on server-side tool { "type": "invalid_request_error", "message": "input_examples is not supported for server-side tool" }
会話中のツールの変更 (ベータ)
注記
この機能には、 mid-conversation-tool-changes-2026-07-01のベータフラグが必要ですanthropic_beta。現在 Claude Opus 5 でのみサポートされています。
Claude Opus 5 は、完全な最上位のtools配列を再送信する (プロンプトキャッシュを無効にする) のではなく、 を介した会話中のツールとrole: "system"メッセージ上のtool_removalコンテンツブロックの追加tool_additionと削除をサポートしています。
リクエストシェイプ
tool_addition および tool_removalブロックは、オプションのtextブロックとともにrole: "system"メッセージのcontent配列に表示されます。各ブロックは、 toolフィールドを通じて 1 つのツールを参照します。複数のブロックが許可され、コンテンツの順序で処理されます。
{ "role": "system", "content": [ {"type": "tool_removal", "tool": {"type": "tool_reference", "name": "get_weather"}}, {"type": "tool_addition", "tool": {"type": "tool_reference", "name": "search_docs"}}, {"type": "text", "text": "Tool set updated for phase 2."} ] }
どちらのブロックタイプcache_controlもプロンプトキャッシュをサポートしています。
ツールリファレンスバリアント
tool フィールドは、 で識別された結合ですtype。
| type | フィールド | を参照 | 追加のベータ版が必要 |
|---|---|---|---|
tool_reference |
name (文字列、パターン ^[a-zA-Z0-9_-]{1,128}$) |
最上位レベルで直接宣言されたツール tools[] |
— |
mcp_tool_reference |
server_name, name |
単一の MCP ツール | mcp-client-* ベータ |
mcp_toolset_reference |
server_name |
名前付き MCP サーバーのツールセットのすべてのツール | mcp-client-* ベータ |
tool_reference は、MCP で解決されたツールに割り当てられた構成済み{server}_{name}フォームを受け入れません。これらのツールには MCP バリアントのいずれかを使用します。
セマンティクス
使用可能なツールセットは、
tools[](MCP 解決後に) ですべてとして開始されます。各tool_removalは参照されたツール (複数可) を減算し、各 はtool_additionそれらを再追加します。削除されたツールと後で再追加されたツールは、最後に使用できます。tool_removalは短いコンテキスト内通知をレンダリングするため、モデルは削除されたツールの計画を停止します。会話の途中でツールを変更しても、制約のあるデコードはトリガーされません。そのためのコントロール
tool_choiceは のみです。リクエストあたり最大 512
tool_additionブロック。
エラーレスポンス (400 invalid_request_error)
| 条件 | [エラー] |
|---|---|
| ベータフラグがありません | ブロックタイプが不明な識別子として拒否されました |
外部でブロックする role: "system" |
'tool_addition'/'tool_removal' blocks are only permitted within role: "system" messages |
tool_reference.name にないtools[]、または MCP 解決ツールに名前を付ける |
tool_addition/tool_removal references unknown tool '<name>' |
未宣言の MCP バリアント server_name |
tool_addition/tool_removal references unknown server '<name>' |
サーバーに がある MCP バリアント tool_configuration.enabled: false |
tool_addition/tool_removal references disabled server '<name>' |
mcp_tool_reference サーバーtool_additionにそのようなツールがない 内の |
そのサーバーの未解決のすべてのツール名を一覧表示中にエラーが発生しました |
注記
mcp_tool_reference の tool_removalは寛容です。サーバーがそのツールを削除してから削除した場合、削除は操作なしです (過去の会話は再生可能のままです)。
強制的なツールの使用
Claude Fable 5.1 および Claude Mythos 5.1 は、強制的なツールの使用をサポートしていません。を tool_choiceに設定する{"type": "any"}か、 を{"type": "tool", "name": "..."}返すリクエスト400 invalid_request_error:
tool_choice: type "tool" and "any" are not supported for this model.
これは、InvokeModel、、InvokeModelWithResponseStreamおよび CountTokensオペレーションに適用されます。tool_choice デフォルト値の {"type": "auto"}と {"type": "none"}は影響を受けず、以前と同じように動作します。Converse API では、同等のtoolChoice設定 (tool と any) が同じエラーを表示します。