ツールの使用 - Amazon Bedrock

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

ツールの使用

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

ヒント

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

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、、および 4 Claude Opus で使用できるAnthropicClaudeモデル機能です。きめ細かなツールストリーミングを使用すると、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 3.7 Sonnet、Claude Sonnet 4および 4 で使用できるAnthropicClaudeモデル機能 (ベータ版) Claude Opus です。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

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

{ "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と同じ を持つツールを定義することはできません。

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

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

  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

Claude 3.7 Sonnet

Claude 3.5 Sonnet v2

auto、または none 346

Claude Opus 4.1

Claude Opus 4

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