

# 工具调用故障排除
<a name="prompting-tool-troubleshooting"></a>

在使用工具和 Amazon Nova 模型时，您可能会看到各种错误。以下是几个有助于进行故障排除的示例和建议。

## 模型错误异常
<a name="troubleshooting-model-error"></a>

`An error occurred (ModelErrorException) when calling the Converse operation: The model produced an invalid sequence as part of ToolUse. Please refer to the model tool use troubleshooting guide.`

**验证推理参数**：使用贪婪解码时，Amazon Nova 模型可以更成功地调用工具。要启用贪婪解码，请将 temperature 参数设置为 0。

```
inferenceConfig={
    "temperature": 0
}

additionalModelRequestFields={"inferenceConfig": {"topK": 1}}
```

**增加最大词元数量**：工具输出通常需要大量的词元输出，因此，请确保最大词元集足够大，适用于预期的返回架构。如果模型回复大于最大词元数量，则会触发异常。可以在 `inferenceConfig` 参数中设置最大词元数：

```
inferenceConfig={
    "maxTokens": 3000
}
```

**查看系统提示** - 为了提高工具调用的准确性，Amazon Nova 会在调用工具时使用思维链推理。您会在回复的 <thinking> 标签中看到此输出。我们不建议尝试删除此功能。但是，如果应用程序中不需要输出，则建议将其删除。

## 验证异常
<a name="troubleshooting-validation-exception"></a>

`An error occurred (ValidationException) when calling the Converse operation`

传递的工具配置不符合规范要求。有关所有参数的规范，请参阅 [Converse API spec](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-runtime/client/converse.html)。

## 未按预期返回工具
<a name="troubleshooting-tool-not-returned"></a>

如果看起来模型忽略了工具，请确保遵循了工具配置的正确 JSON 架构：
+ 顶层架构的类型必须为 [Object](https://json-schema.org/understanding-json-schema/reference/object)
+ 顶层 Object 仅支持三个字段：`type`（必须设置为“object”）、`properties` 和 `required`
+ 顶层不支持的常见字段有：`$schema`、`description`、`title` 和 `additionalProperties`

如果未按预期返回某个工具，则建议使用 `tool_choice` API 参数。
+ **工具**：将调用指定工具一次。

  ```
  {
     "toolChoice": {
          "tool": {
              "name": "name_of_tool"
          }
      }
  }
  ```
+ **任意**：将调用提供的某一工具至少一次。

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