

# 控制工具的选择方式
<a name="speech-tools-choice"></a>

**注意**  
本文档适用于 Amazon Nova 版本 1。如需 Amazon Nova 2 Sonic 指南，请访问[工具配置](https://docs.aws.amazon.com/nova/latest/nova2-userguide/sonic-tool-configuration.html)。

Amazon Nova Sonic 支持三个“工具选择”参数，可帮助您管理工具的执行。您可以通过指定 `toolChoice` 参数来控制模型使用哪些工具。
+ **Tool**：`tool` 选项可确保在开始生成回复时只调用一次特定命名的工具。例如，若您指定了知识库工具，则无论模型是否认为需要该工具，模型都将在做出回复之前查询此知识库。
+ **Any**：`any` 选项可确保在开始生成回复时至少调用一个可用工具，同时允许模型选择最合适的工具。如果您有多个知识库或工具，并且想要确保模型至少利用其中一个，但不指定利用哪个知识库或工具，则此功能非常有用。
+ **Auto**：使用 `auto`，模型完全可以灵活地确定在开始生成回复时是否需要任何工具，并且可以根据需要调用多个工具。这也是默认行为。

有关更多信息，请参阅 [Amazon Nova 的工具使用](https://docs.aws.amazon.com/nova/latest/userguide/tool-choice.html)。

**多工具序列行为**  
Amazon Nova Sonic 会在每个回复周期内智能地处理工具的执行。使用 `tool` 选项时，模型将首先执行指定的工具，然后在生成最终回复之前评估是否需要其他工具。同样，如果使用 `any` 选项，模型将首先从可用选项中选择一个工具并调用，然后在继续生成回答之前决定是否需要调用其他工具。

在所有情况下，模型都会在单个回复生成周期内管理整个工具执行序列，从而确定何时收集到充足的信息以生成适当回复。

考虑以下示例场景：

------
#### [ Knowledge base example ]
+ 如果使用 `toolChoice: "knowledge_tool"`，模型将始终先查询指定的知识库，然后可能会在需要时使用其他工具进行回复。
+ 如果使用 `toolChoice: "any"` 和多个知识库，模型将选择最相关的知识库，对其进行查询，然后可能会在需要时查阅其他来源。
+ 如果使用 `toolChoice: "auto"`，模型可能跳过知识查找的整个过程，寻找可以直接回答的问题，或者查询多个知识库以回答复杂的问题。

------
#### [ Multi-functional assistant example ]
+ 具有天气、日历和知识工具的虚拟助手可以使用 `toolChoice: "auto"` 灵活地回复各种查询，且只调用必要的工具。
+ 使用 `toolChoice: "any"` 可以确保始终使用至少一个工具，即使对于模型可直接回答的查询也是如此。

------

如需了解更多信息，请参阅[工具选择](https://docs.aws.amazon.com/nova/latest/userguide/tool-choice.html)。