tool_choice su auto e indica nel prompt quando lo strumento va usato. Sui modelli in cui il ragionamento è sempre attivo, una chiamata forzata dovrebbe saltare quel ragionamento, quindi l'API rifiuta la richiesta invece di degradare il modello in silenzio.400 on requests with tool_choice: {"type":"any"}400 on tool_choice: {"type":"tool","name":"..."}The same request works with tool_choice omittedAn agent framework that worked on one model fails on every call after a swapVoler forzare una chiamata a uno strumento è ragionevole. È così che molti framework garantiscono un output strutturato: definiscono uno strumento, lo forzano e ne analizzano gli argomenti. Il trucco smette di funzionare sui modelli che ragionano prima di ogni risposta, perché il percorso forzato salta proprio il passaggio che stai pagando.
Il rifiuto è meglio dell'alternativa. Un'API che accettasse il parametro e lo ignorasse ti farebbe credere di aver vincolato il modello quando non è così: un bug che emerge molto più tardi, in produzione, come output occasionalmente impossibile da analizzare.
Gli stessi modelli di solito rifiutano valori non predefiniti di temperature, top_p e top_k, e non supportano il precompilamento del turno dell'assistente. Il codice portato da un modello più vecchio della stessa famiglia ne incontra diversi insieme, e sembra così un problema di autenticazione o di endpoint invece che di parametri.
Invia la stessa richiesta due volte cambiando solo tool_choice:
for CHOICE in '{"type":"auto"}' '{"type":"any"}'; do
echo -n "$CHOICE -> "
curl -s -o /dev/null -w '%{http_code}\n' \
'YOUR_BASE_URL/chat/completions' \
-H 'Authorization: Bearer YOUR_KEY' \
-H 'Content-Type: application/json' \
-d "{\"model\":\"YOUR_MODEL\",\"max_tokens\":16,
\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}],
\"tool_choice\":$CHOICE}"
done
Se auto restituisce 200 e any restituisce 400, il modello non supporta l'uso forzato degli strumenti. Non c'è nulla di sbagliato nella tua chiave o nel tuo endpoint.
claude-fable-5-1 e claude-fable-5: l'uso forzato degli strumenti, i parametri di campionamento non predefiniti e il precompilamento dell'assistente vengono tutti rifiutati. La guida a Fable 5.1 riporta l'elenco completo insieme ai prezzi della cache.Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.