ツールの使用 - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ツールの使用

警告

以下のいくつかの関数は、示されているようにベータ版で提供されています。これらの機能は、 AWS サービス条件で定義されている「ベータサービス」として利用できます。本ライセンス条項には、 AWS および AWS サービス条件、および該当するモデル EULA とのお客様の契約が適用されます。

Anthropic Claude モデルでは、モデルがメッセージの応答に使用できるツールを指定できます。例えば、ラジオ局で最も人気のある曲を取得するツールを指定できます。ユーザーが「WZPZ で最も人気のある曲は何ですか?」というメッセージを渡すと、モデルは指定したツールが質問に答えるのに役立つと判断します。レスポンスでは、モデルがユーザーに代わってツールを実行することをリクエストします。次に、ツールを実行し、ツール結果をモデルに渡します。これにより、元のメッセージのレスポンスが生成されます。詳細については、「Anthropic Claude ドキュメント」の「ツールの使用 (関数呼び出し)」を参照してください。

ヒント

ツールの使用をアプリケーションに統合するには、 Converse API を使用することをお勧めします。詳細については、「ツールを使用して Amazon Bedrock のモデルレスポンスを完成させる」を参照してください。

重要

Claude Sonnet 4.5 で、ツール呼び出し文字列パラメータの意図的なフォーマットが保持されるようになりました。以前は、文字列パラメータの末尾の改行が誤って削除されていました。この修正により、正確なフォーマットを必要とするツール (テキストエディタなど) が意図したとおりにパラメータを受信できるようになります。これはbehind-the-scenesの改善であり、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および 4 で使用できるAnthropicClaudeモデル機能Claude Opusです。きめ細かなツールストリーミングを使用すると、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 (ベータ版)

コンピュータの使用は、Claude 3.5 Sonnet v2、、Claude Sonnet 4.5、Claude Haiku 4.5、Claude 3.7 Sonnet、Claude Sonnet 4および Claude Opus 4 で利用可能なAnthropicClaudeモデル機能 (ベータ版) です。Computer Use を使用すると、Claude は基本的な GUI アクションを通じてタスクを自動化するのに役立ちます。

警告

コンピュータ使用機能は、 AWS サービス条件に定義されている「ベータサービス」として利用できます。本ライセンス条項には、 AWS および AWS サービス条件、および該当するモデル EULA とのお客様の契約が適用されます。Computer Use API には、標準の API 機能やチャットインターフェイスとは異なる固有のリスクがあることに注意してください。これらのリスクは、Computer Use API を使用してインターネットと通信するときに高くなります。リスクを最小限に抑えるには、次のような予防策を検討します。

  • Computer Use 機能は、システムへの直接攻撃や事故を防ぐために、最小限の権限で専用の仮想マシンまたはコンテナで操作します。

  • 情報の盗難を防ぐため、Computer Use API に機密アカウントまたはデータへのアクセスを許可しないでください。

  • コンピュータが APIs のインターネットアクセスを必要なドメインに制限することで、悪意のあるコンテンツへの露出を軽減します。

  • 適切な監視を行うには、機密タスク (現実の世界に重大な結果を与える意思決定など) や、肯定的合意が必要なもの (Cookie の承諾、金融取引の実行または利用規約への同意など) のループに人間を関与させます。

Claude が閲覧またはアクセスできるようにしたコンテンツは、指示をオーバーライドしたり、Claude による間違いを招いたり、意図しない動作を引き起こす場合があります。Claude を機密事項から隔離するなど、適切な予防措置を講じることは、プロンプトインジェクション関連のリスクを回避するためにも不可欠です。独自の製品で Computer Use 機能に必要なアクセス許可を有効化またはリクエストする前に、エンドユーザーに関連するリスクを通知したり、必要に応じて、エンドユーザーから合意を得ます。

コンピュータ使用 API には、いくつかの事前定義されたコンピュータ使用ツールが用意されています。その後、「前回の会議メモを含む E メールを Ben に送信する」やスクリーンショット (必要な場合) などのリクエストを含むプロンプトを作成できます。レスポンスには、JSON 形式の tool_use アクションのリストが含まれます (例: scroll_down、left_button_press、スクリーンショット)。コードはコンピュータアクションを実行し、出力を示すスクリーンショットとともに Claude を提供します (リクエストされた場合)。

3.5 v2 Claude のリリース以降、ツールパラメータはポリモーフィックツールタイプを受け入れるように更新されました。それらを区別するために tool.typeプロパティが追加されました。 typeはオプションです。省略すると、ツールはカスタムツール (以前はサポートされている唯一のツールタイプ) と見なされます。コンピュータの使用にアクセスするには、 anthropic_betaパラメータと対応する列挙型を使用する必要があります。この値は、使用中のモデルバージョンによって異なります。詳細については、以下のテーブルを参照してください。

このパラメータと列挙型で行われたリクエストのみが、コンピュータ使用ツールを使用できます。"anthropic_beta": ["computer-use-2025-01-24"] のように指定できます。

モデル ベータヘッダー

Claude Opus 4.1

Claude Opus 4

Claude Sonnet 4.5

Claude Haiku 4.5

Claude Sonnet 4

Claude 3.7 Sonnet

コンピュータ使用-2025-01-24
Claude 3.5 Sonnet v2 コンピュータ使用-2024-10-22

詳細については、「Anthropic ドキュメント」の「Computer Use (ベータ版)」を参照してください。

以下は、リクエストにデスクトップのスクリーンショットと Firefox アイコンが含まれていると仮定するレスポンスの例です。

{ "id": "msg_123", "type": "message", "role": "assistant", "model": "anthropic.claude-3-5-sonnet-20241022-v2:0", "content": [ { "type": "text", "text": "I see the Firefox icon. Let me click on it and then navigate to a weather website." }, { "type": "tool_use", "id": "toolu_123", "name": "computer", "input": { "action": "mouse_move", "coordinate": [ 708, 736 ] } }, { "type": "tool_use", "id": "toolu_234", "name": "computer", "input": { "action": "left_click" } } ], "stop_reason": "tool_use", "stop_sequence": null, "usage": { "input_tokens": 3391, "output_tokens": 132 } }

Anthropic 定義ツール

Anthropic には、特定のClaudeモデルがコンピュータを効果的に使用できるようにする一連のツールが用意されています。Anthropic 定義されたツールを指定する場合、 descriptionフィールドと tool_schemaフィールドは必須または許可されません。 Anthropicで定義されたツールは によって定義されますがAnthropic、ツールの結果を明示的に評価し、 tool_resultsを に戻す必要がありますClaude。他のツールと同様に、モデルはツールを自動的に実行しません。Anthropic 定義された各ツールには、特定のモデル Claude 3.5 Sonnet (新規) と 用に最適化されたバージョンがありますClaude 3.7 Sonnet。

モデル

ツール

注意

Claude Claude Opus 4.1

Claude Claude Opus 4

Claude Sonnet 4.5

Claude Haiku 4.5

Claude Sonnet 4

{ "type": "text_editor_20250124", "name": "str_replace_based_edit_tool" }

既存のstr_replace_editorツールの更新

Claude 3.7 Sonnet

{ "type": "computer_20250124", "name": "computer" }

より正確な制御のための新しいアクションを含む

Claude 3.7 Sonnet

{ "type": "text_editor_20250124", "name": "str_replace_editor" }

20241022 バージョンと同じ機能

Claude 3.5 Sonnet v2

{ "type": "bash_20250124", "name": "bash" }

20241022 バージョンと同じ機能

Claude 3.5 Sonnet v2

{ "type": "text_editor_20241022", "name": "str_replace_editor" }

Claude 3.5 Sonnet v2

{ "type": "bash_20241022", "name": "bash" }

Claude 3.5 Sonnet v2

{ "type": "computer_20241022", "name": "computer" }

type フィールドは検証目的でツールとそのパラメータを識別し、 name フィールドはモデルに公開されるツール名です。

これらのツールのいずれかを使用するようにモデルに求める場合は、 nameフィールドでツールを明示的に参照できます。name フィールドはツールリスト内で一意である必要があります。同じ API コールでAnthropic定義されたツールnameと同じ を持つツールを定義することはできません。

自動ツールコールクリア (ベータ)

警告

ツールコールの自動クリアは、 AWS サービス条件で定義されている「ベータサービス」として利用できます。

Claude Sonnet 4.5 は、トークンの制限に近づくと古いツールの使用結果を自動的にクリアする新しいベータ機能をサポートしているため、マルチターンツールの使用シナリオでより効率的なコンテキスト管理が可能になります。ツール使用クリアを使用するには、anthropic_beta リクエストパラメータのベータヘッダーのリストcontext-management-2025-06-27に を追加する必要があります。また、 の使用を指定clear_tool_uses_20250919し、次の設定オプションから選択する必要があります。

コンテキストclear_tool_uses_20250919管理戦略で使用できるコントロールは次のとおりです。すべてオプションであるか、デフォルトがあります。

設定オプション 説明

trigger

デフォルト: 100,000 入力トークン

コンテキスト編集戦略がいつアクティブ化されるかを定義します。プロンプトがこのしきい値を超えると、クリアが開始されます。この値は input_tokens または tool_uses のいずれかで指定できます。

keep

デフォルト: 3 ツールで を使用する

クリア後に保持する最近のツールの使用/結果ペアの数を定義します。API は、最も古いツールインタラクションを最初に削除し、最新のツールインタラクションを保持します。会話を効果的に継続するために、モデルが最近のツールインタラクションにアクセスする必要がある場合に役立ちます。

clear_at_least (オプション)

戦略がアクティブ化されるたびに、トークンの最小数がクリアされるようにします。API が少なくとも指定された量をクリアできない場合、戦略は適用されません。これは、コンテキストクリアがプロンプトキャッシュを破壊する価値があるかどうかを判断するのに役立ちます。

exclude_tools (オプション)

ツールが を使用し、結果を消去してはならないツール名のリスト。重要なコンテキストの保存に役立ちます。

clear_tool_inputs (オプション、デフォルトの False)

ツール呼び出しパラメータをツールの結果とともにクリアするかどうかを制御します。デフォルトでは、Claude の元のツール呼び出しを表示したままツールの結果のみがクリアされるため、Claude は結果が削除された後でも実行されたオペレーションを確認できます。

注記

ツールをクリアすると、プレフィックスにツールが含まれている場合、キャッシュが無効になります。

Request
response = client.beta.messages.create( betas=["context-management-2025-06-27"], model="claude-sonnet-4-20250514", max_tokens=4096, messages=[ { "role": "user", "content": "Create a simple command line calculator app using Python" } ], tools=[ { "type": "text_editor_20250728", "name": "str_replace_based_edit_tool", "max_characters": 10000 }, { "type": "web_search_20250305", "name": "web_search", "max_uses": 3 } ], extra_body={ "context_management": { "edits": [ { "type": "clear_tool_uses_20250919", # The below parameters are OPTIONAL: # Trigger clearing when threshold is exceeded "trigger": { "type": "input_tokens", "value": 30000 }, # Number of tool uses to keep after clearing "keep": { "type": "tool_uses", "value": 3 }, # Optional: Clear at least this many tokens "clear_at_least": { "type": "input_tokens", "value": 5000 }, # Exclude these tools uses from being cleared "exclude_tools": ["web_search"] } ] } } )
Response
{ "id": "msg_123", "type": "message", "role": "assistant", "content": [ { "type": "tool_use", "id": "toolu_456", "name": "data_analyzer", "input": { "data": "sample data" } } ], "stop_reason": "tool_use", "usage": { "input_tokens": 150, "output_tokens": 50 } }
Streaming Response
data: {"type": "message_start", "message": {"id": "msg_123", "type": "message", "role": "assistant"}} data: {"type": "content_block_start", "index": 0, "content_block": {"type": "tool_use", "id": "toolu_456", "name": "data_analyzer", "input": {}}} data: {"type": "content_block_delta", "index": 0, "delta": {"type": "input_json_delta", "partial_json": "{\"data\": \"sample"}} data: {"type": "content_block_delta", "index": 0, "delta": {"type": "input_json_delta", "partial_json": " data\"}"}} data: {"type": "content_block_stop", "index": 0} data: {"type": "message_delta", "delta": {"stop_reason": "tool_use"}} data: {"type": "message_stop"} { "type": "message_delta", "delta": { "stop_reason": "end_turn", "stop_sequence": null, }, "usage": { "output_tokens": 1024 }, "context_management": { "applied_edits": [...], } }

自動ツールコールクリアで Claude Sonnet 4.5 を使用する場合、レスポンスには追加のコンテキスト管理情報が含まれます。

{ "id": "msg_013Zva2CMHLNnXjNJJKqJ2EF", "type": "message", "role": "assistant", "content": [...], ... "usage": {...}, "context_management": { "applied_edits": [ { "type": "clear_tool_uses_20250919", "cleared_tool_uses": 8, # Number of tool use/result pairs that were cleared "cleared_input_tokens": 50000 # Total number of input tokens removed from the prompt } ] } }
注記

Bedrock は現在、CountTokens API でのclear_tool_uses_20250919コンテキスト管理をサポートしていません。

メモリツール (ベータ)

警告

Memory Tool は、 AWS サービス条件で定義されている「ベータサービス」として利用できます。

Claude Sonnet 4.5 には、会話間でメモリを管理する方法を提供する新しいメモリツールが含まれています。この機能を使用すると、ローカルディレクトリへのアクセスを提供することで、Claude がコンテキストウィンドウ外の情報を取得することを許可できます。これはベータ機能として使用できます。この機能を使用するには、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": [] } }

ツール使用のコストに関する考慮事項

ツール使用リクエストは、以下の要因に基づいて料金が設定されます。

  1. モデルに送信された入力トークンの合計数 (ツールパラメータを含む)。

  2. 生成された出力トークンの数。

ツールの料金は他のすべての Claude API リクエストと同じですが、リクエストごとに追加のトークンが含まれています。ツールの使用による追加のトークンは、以下から取得されます。

  • API リクエストの toolsパラメータ。例えば、ツール名、説明、スキーマなどです。

  • API リクエストとレスポンスのすべてのtool_useコンテンツブロック。

  • API リクエストのすべてのtool_resultコンテンツブロック。

ツールを使用すると、Anthropicモデルにはツールの使用を有効にする特別なシステムプロンプトが自動的に含まれます。各モデルに必要なツール使用トークンの数を次の表に示します。このテーブルは、前述の追加のトークンを除外します。このテーブルは、少なくとも 1 つのツールが提供されていることを前提としていることに注意してください。ツールが提供されていない場合、ツールの選択ではシステムプロンプトトークンが 0 個追加されます。

モデル ツールの選択 ツール使用システムプロンプトトークン数

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.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