

# 工具调用系统
<a name="prompting-tools-function"></a>

通过在请求中传递工具配置架构，即可在 Amazon Nova 模型上进行工具调用。模型提示可通过此工具配置得到增强，因此这也是开始优化工具调用系统的极具影响力的一步。

考虑以下关键原则：
+ 工具定义应该清晰简洁。定义应易于理解，意图必须非常明显。
+ 使用关键区分因素和边界条件来定义何时应使用某一个工具而不是其他工具。
+ 输入参数类型很重要。需思考：它们有意义吗？通常会以这种方式使用它们吗？

**使用“工具选择”来控制何时调用工具**

“工具选择”参数允许您自定义模型调用工具的行为。我们建议使用此参数来精细控制调用哪些工具以及何时调用。

例如，对于结构化输出等应用场景，您可能需要在每次调用 Amazon Nova 时系统调用特定的工具。您可以将输出架构定义为工具，然后将“工具选择”设置为该工具的名称。

```
{
   "toolChoice": {
        "tool": {
            "name": "name_of_tool"
        }
    }
}
```

对于许多座席应用场景，您可能需要确保模型始终选择其中一个可用工具。为此，您可以将“工具选择”设置为 `any`，这样每次调用模型时，系统只会调用一个工具。

```
{
   "toolChoice": {
        "any": {}
    }
}
```

最后，如果在应用场景中是否调用工具很大程度上取决于对话上下文，您可以将“工具选择”设置为 `auto`。这是默认行为，并且“工具选择”完全由模型决定。

```
{
   "toolChoice": {
        "auto": {}
    }
}
```