Overschrijden token limiet
Beschrijving
Ik krijg regelmatig (vooral bij Claude) een foutmelding die er als volgt uit ziet:
400 {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 219994 tokens > 200000 maximum"},"request_id":"req_011CWswmBQuyH9TucHopNDaW"}
Schijnbaar zit er een beperking in het aantal tokens.
Oplossing
Bedankt voor het melden van de Claude error. Dit duidt inderdaad op het overschrijden van de token limiet van het model. Hiervoor hadden we in eerste instantie een "middleware" om de geschiedenis te beperken tot de laatste 5 "round trips", dus vraag + tool calls + antwoord. Een middleware is een functie die wordt uitgevoerd voordat het verzoek naar het taalmodel wordt gestuurd.
Hierbij werd niet direct gekeken naar de uiteindelijke lengte van de context. Claude 4.5 Sonnet heeft een input token limiet van 200k, terwijl GPT 5.2 een 400k token limiet heeft. Dit zal de voornaamste reden zijn dat je deze melding vaker zag bij Claude dan bij GPT.
Maatregelen die nu zijn genomen: twee vervangende middlewares toegevoegd om ervoor te zorgen dat de context niet te groot wordt:
1) een middleware om tool call messages van oudere berichten te verwijderen, om zo de token ruimte te besparen
als dan nog te groot:
2) een middleware die de de vorige berichten samenvat, ingeschakeld als de context groter is dan 80% van de context lengte van het model, en het dan terugbrengt naar maximaal 30% context grootte van het model
Ik heb gisteren tests uitgevoerd met verschillende modellen en ook inclusief tool calls en lange conversaties, en heb dit probleem niet meer ervaren. Hopelijk zul jij deze fouten ook niet meer zien!
