Start → Hilfe
400 bei einem Tool-Aufruf – jedes tool_use braucht ein passendes tool_result
Jeder tool_use-Block in einer Assistant-Nachricht muss in der direkt folgenden User-Nachricht von einem tool_result-Block mit derselben id beantwortet werden, vor allen anderen Inhalten. Fehlt einer von mehreren, stimmt die Reihenfolge nicht oder steht Text davor, wird die nächste Anfrage abgelehnt.
Was Sie sehen
messages.N: tool_use ids were found without tool_result blocks immediately afterEach tool_result block must have a corresponding tool_use block in the previous messageThe first tool call succeeds and the next request failsWorks with one tool, breaks when the model calls two in a single turn
Warum das passiert
Die Unterhaltung wird bei jedem Aufruf vollständig erneut gesendet, also prüft die API jedes Mal die ganze Struktur – auch Durchläufe, die vorher akzeptiert wurden. Deshalb zeigt der Fehler auf eine ältere Nachricht als die, die Sie gerade gesendet haben.
Parallele Tool-Aufrufe sind der übliche Auslöser. Ein Modell kann in einem Durchlauf mehrere tool_use-Blöcke ausgeben, und Handler-Code, der für einen einzelnen Aufruf geschrieben wurde, beantwortet den ersten und lässt den Rest fallen.
Ein gescheitertes Tool ist trotzdem ein Ergebnis. Den Block wegzulassen, weil Ihre Funktion eine Ausnahme geworfen hat, ist genau die Form, die die API ablehnt – geben Sie stattdessen ein tool_result mit dem Fehlertext zurück.
So beheben Sie es
- Jede id beantworten, in der richtigen ReihenfolgeSammeln Sie die tool_use-ids aus dem Assistant-Durchlauf, führen Sie sie aus und geben Sie am Anfang der nächsten User-Nachricht pro id ein tool_result in derselben Reihenfolge zurück.
- Fehler als Ergebnisse zurückgebenWirft ein Tool eine Ausnahme, senden Sie ein tool_result mit der Fehlermeldung als Inhalt. Damit geht das Modell gelassen um; mit einem fehlenden Block nicht.
- Text nach den Ergebnissen platzierenWollen Sie im selben Durchlauf eine Notiz des Nutzers hinzufügen, setzen Sie sie hinter alle tool_result-Blöcke, nie davor.
Verkehr mit Tool-Aufrufen wird bei APICLAN als normale Input- und Output-Tokens abgerechnet. Eine abgelehnte Anfrage läuft nie und wird nicht berechnet – die Wiederholung aber schon, deshalb lohnt es sich, die Paarung zu reparieren, statt drumherum zu wiederholen.
Verwandte Themen
Zuletzt geprüft am 2026-10-01. Geschrieben aus Problemen, die auf einem laufenden
OpenAI-kompatiblen Gateway diagnostiziert wurden – nicht von anderen Seiten zusammengetragen.