ツールの選択
Amazon Nova モデルは、ツール選択の機能をサポートしています。ツールの選択により、開発者はツールの呼び出し方法を制御できます。ツールの選択には、tool
、any
、auto
の 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」を参照してください。