對工具呼叫進行疑難排解
在使用工具和 Amazon Nova 模型時,您可能會看到不同的錯誤。以下是一些可協助您進行疑難排解的範例和秘訣。
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 模型呼叫工具的成功率更高。若要啟用貪婪解碼,請將溫度參數設定為 0。
inferenceConfig={ "temperature": 0 } additionalModelRequestFields={"inferenceConfig": {"topK": 1}}
增加詞元計數上限 - 工具輸出通常需要較大的詞元輸出,確保設定的最大詞元數足以容納預期的傳回結構描述。如果模型回應大於詞元計數上限,則會觸發例外狀況。您可以在 inferenceConfig 參數中設定詞元上限:
inferenceConfig={ "maxTokens": 3000 }
檢閱系統提示詞 - 為了改善工具呼叫的準確性,Amazon Nova 會在呼叫工具時使用思維鏈推理。您會在回應的 <thinking> 標籤中看到此輸出。我們建議不要嘗試移除此功能。相反地,如果您的應用程式不需要該輸出,建議您將其捨棄。
An error occurred (ValidationException) when calling the Converse operation
傳遞的工具組態不符合必要的慣例。如需所有參數的規格,請參閱 Converse API 規格
如果模型似乎忽略了工具,請確保您遵循了工具組態的正確 JSON 結構描述:
-
最上層結構描述必須是物件
類型 -
最上層物件中僅支援三個欄位 -
type(必須設定為「物件」)、properties和required -
最上層常見的不支援欄位包括:
$schema、description、title和additionalProperties
如果工具沒有如預期傳回,建議使用 tool_choice API 參數。
-
工具:指定的工具會被呼叫一次。
{ "toolChoice": { "tool": { "name": "name_of_tool" } } } -
任意:其中一個提供的工具會至少被呼叫一次。
{ "toolChoice": { "any": {} } }