ツールの選択 - Amazon Nova

ツールの選択

Amazon Nova モデルは、ツール選択の機能をサポートしています。ツールの選択により、開発者はツールの呼び出し方法を制御できます。ツールの選択には、toolanyauto の 3 つのパラメータオプションがサポートされています。

  • ツール – 指定されたツールは 1 回呼び出されます。

  • 任意 – 提供されたツールの 1 つが少なくとも 1 回呼び出されます。

  • 自動 – モデルはツールを呼び出すかどうかを決定し、必要に応じて複数のツールが呼び出されます。

Tool

ツールの選択として tool を使用すると、モデルが呼び出す特定のツールを制御できます。以下の例では、レスポンスを一貫した方法でフォーマットする必要がある構造化された出力ユースケースを用いて、この点を明確に示しています。

tool_config = { "toolChoice": { "tool": { "name" : "extract_recipe"} }, "tools": [ { "toolSpec": { "name": "extract_recipe", "description": "Extract recipe for cooking instructions", "inputSchema": { "json": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the recipe" }, "description": { "type": "string", "description": "Brief description of the dish" }, "ingredients": { "type": "array", "items": { "type": "string", "description": "Name of ingredient" } } }, "required": ["name", "description", "ingredients"] } } } } ] }
Any

ツールの選択として any を使用すると、毎回少なくとも 1 つのツールが呼び出されるようにできます。呼び出すツールの決定はモデルに委ねられますが、常にツールが返されます。以下の例では、API 選択エンドポイントのユースケースでのツール選択の使用に焦点を当てています。これは、モデルが特定のツールを返すように要求することが役立つ場合の例の 1 つです。

tool_config = { "toolChoice": { "any": {} }, "tools": [ { "toolSpec": { "name": "get_all_products", "description": "API to retrieve multiple products with filtering and pagination options", "inputSchema": { "json": { "type": "object", "properties": { "sort_by": { "type": "string", "description": "Field to sort results by. One of: price, name, created_date, popularity", "default": "created_date" }, "sort_order": { "type": "string", "description": "Order of sorting (ascending or descending). One of: asc, desc", "default": "desc" }, }, "required": [] } } } }, { "toolSpec": { "name": "get_products_by_id", "description": "API to retrieve retail products based on search criteria", "inputSchema": { "json": { "type": "object", "properties": { "product_id": { "type": "string", "description": "Unique identifier of the product" }, }, "required": ["product_id"] } } } } ] }
Auto

ツールの選択として auto を使用することは、ツールサポートのデフォルトの機能であり、モデルはツールを呼び出すタイミングと呼び出すツールの数を決定できます。これは、リクエストにツールの選択を含めない場合の動作です。

注記

Amazon Nova ツール呼び出しのデフォルトの動作は、ツールの選択に思考連鎖を使用することです。デフォルトの動作またはツール選択 auto を使用する場合、<thinking> タグの思考プロセス出力もあります。

次の例では、モデルがインターネットで最新情報を検索したり、ユーザーに直接応答したりできるようにするチャットボットのユースケースを示しています。このツールの選択は柔軟性を提供し、推論をモデルに任せることになります。

tool_config = { "toolChoice": { "auto": {} }, "tools": [ { "toolSpec": { "name": "search", "description": "API that provides access to the internet", "inputSchema": { "json": { "type": "object", "properties": { "query": { "type": "string", "description": "Query to search by", }, }, "required": ["query"] } } } } ] }
注記

ツール選択パラメータを設定すると、元のツール選択後にモデル出力テキストが表示される、または連続したツール呼び出しが実行される可能性があります。ここで停止シーケンスを設定して、出力をツールのみに制限することをお勧めします。

“stopSequences”: [“</tool>”]

詳細については、「Amazon Bedrock API ガイド」の「InferenceConfiguration」を参照してください。