tool_choice na auto i napisz w prompcie, kiedy narzędzie ma zastosowanie. W modelach, w których rozumowanie jest zawsze włączone, wymuszone wywołanie narzędzia musiałoby to rozumowanie pominąć, więc API odrzuca zapytanie, zamiast po cichu pogarszać model.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 swapChęć wymuszenia narzędzia jest rozsądna. Tak wiele frameworków gwarantuje ustrukturyzowane wyjście: zdefiniuj jedno narzędzie, wymuś je, sparsuj argumenty. Ta sztuczka przestaje działać w modelach, które rozumują przed każdą odpowiedzią, bo wymuszona ścieżka omija krok, za który płacisz.
Odmowa jest lepsza niż alternatywa. API, które przyjęłoby parametr i go zignorowało, dałoby ci złudzenie, że ograniczyłeś model, choć tak nie jest – błąd, który wyszedłby dużo później, na produkcji, jako sporadyczne nieparsowalne wyjście.
Te same modele zwykle odrzucają też niedomyślne temperature, top_p i top_k oraz nie obsługują wstępnego wypełniania odpowiedzi asystenta. Kod przeniesiony ze starszego modelu tej samej rodziny trafia na kilka z nich naraz, przez co wygląda to na problem z uwierzytelnianiem lub endpointem, a nie z parametrami.
Wyślij to samo zapytanie dwa razy, zmieniając tylko 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
Jeśli auto zwraca 200, a any zwraca 400, model nie obsługuje wymuszonego użycia narzędzi. Z twoim kluczem i endpointem wszystko w porządku.
claude-fable-5-1 i claude-fable-5: wymuszone użycie narzędzi, niedomyślne parametry próbkowania i prefill asystenta są odrzucane. Przewodnik po Fable 5.1 zawiera pełną listę razem z cenami cache.Ostatnio sprawdzono 2026-10-01. Napisane na podstawie problemów zdiagnozowanych na działającej bramce zgodnej z OpenAI, a nie zebrane z innych stron.