Die E-Mail über die API-Ratenlimitierung kam am Freitag um 16 Uhr an. Mein Agent hatte die ganze Woche über glücklich Anfragen bearbeitet, und irgendwo zwischen der automatisierten Morgenkaffee-Bearbeitung und der Nachmittags-Codeüberprüfung überschritt er die Grenze.
Ratenlimitierungen sind nicht peinlich – sie passieren jedem. Ratenlimitierungen ohne zu wissen, dass man nah am Limit war, sind peinlich. Das bedeutet, dass man keinen Einblick in seinen API-Verbrauch hat, und das ist ein Problem, das ich Wochen früher hätte lösen sollen.
Wo Ratenlimits beißen
Die meisten AI-API-Anbieter setzen mehrere Limits durch, und das, welches einen trifft, ist nie das, was man erwartet hat:
Anfragen pro Minute. Das Offensichtliche. Wenn man in kurzer Zeit zu viele Anfragen sendet, wird man gedrosselt. Batch-Operationen sind der übliche Übeltäter – die Bearbeitung von 50 Elementen führt zu 50 Anfragen in schneller Folge.
Tokens pro Minute. Weniger offensichtlich. Selbst wenn man nur wenige Anfragen sendet, könnte jede von ihnen ein großes Kontextfenster verarbeiten. Drei Anfragen mit je 50.000 Tokens = 150.000 Tokens pro Minute, was viele Standardtierlimits überschreitet.
Tokens pro Tag. Der heimliche Killer. Man könnte sich innerhalb seiner pro-Minute-Limits bewegen, aber über den Tag hinweg allmählich ansammeln. Lange Gespräche, schwere Cron-Jobs und Hintergrundaufgaben tragen alle dazu bei.
Gleichzeitige Verbindungen. Der frustrierendste Faktor. Selbst wenn man noch Budget übrig hat, führt zu viele gleichzeitig offene Verbindungen zur Drosselung.
Meine Ratenlimit-Strategie
Nachdem ich auf die Nase gefallen bin, habe ich einen dreischichtigen Ansatz entwickelt:
Schicht 1: Bewusstsein. Ein einfaches Dashboard-Widget, das die aktuelle Nutzung als Prozentsatz jedes Limits anzeigt. Alle 60 Sekunden aktualisiert. Wenn die Nutzung 70 % überschreitet, wird das Widget gelb. Bei 90 % wird es rot. Das dauert 10 Minuten zur Implementierung und spart Stunden an Überraschungen.
Schicht 2: Automatische Drosselung. Wenn die Nutzung 80 % eines Limits erreicht, verlangsamt das System automatisch nicht-kritische Anfragen. Interaktive Nutzer-Nachrichten werden weiterhin sofort durchgestellt. Hintergrundaufgaben (Cron-Jobs, Batch-Verarbeitung) werden in eine Warteschlange gestellt und über einen längeren Zeitraum verteilt.
Die Implementierung: ein Token-Bucket-Ratenbegrenzer, der zwischen OpenClaw und der API sitzt. Er verfolgt die Nutzung gegen alle vier Limittypen und steuert die Anfragen entsprechend.
Schicht 3: Sanfte Degradation. Wenn ein Limit tatsächlich erreicht wird (429-Antwort), das System:
1. Verlangsamt mit exponentiellem Delay (1s, 4s, 16s)
2. Wechselt nicht-kritische Aufgaben auf ein günstigeres/langsame Modell, wenn verfügbar
3. Benachrichtigt mich, dass ein Limit erreicht wurde (damit ich untersuchen kann, ob es unerwartet war)
4. Wartet alle Anfragen, die warten können
Der entscheidende Einblick: Nicht alle Anfragen sind gleich. Ein Benutzer, der auf eine Antwort in Slack wartet, ist ganz anders als ein Hintergrund-Analytik-Job. Der Ratenbegrenzer sollte entsprechend priorisieren.
API-Verbrauch reduzieren
Die beste Strategie zum Ratenlimit ist, weniger API-Tokens zu verbrauchen:
Prompt-Caching. Wenn derselbe Systemprompt mit jeder Anfrage gesendet wird (und das ist normalerweise der Fall), fragen Sie Ihren Anbieter nach dem Prompt-Caching. Anthropic speichert den ersten Teil des Prompts und berechnet weniger für zwischengespeicherte Tokens. Dies kann die Kosten um 30-50 % für sich wiederholende Arbeitslasten senken.
Antwort-Caching. Für Fragen, die Ihr Agent ständig gestellt bekommt, speichern Sie die Antwort und liefern sie, ohne einen neuen API-Aufruf zu machen. „Was ist unsere Rückerstattungspolitik?“ muss nicht bei jedem Mal vom AI-Modell verarbeitet werden.
Kontext-Kürzung. Die größte einzelne Quelle für unnötigen Tokenverbrauch ist der aufgeblähte Gesprächskontext. Alte Nachrichten, die für die aktuelle Frage nicht relevant sind, werden weiterhin an die API gesendet und verbrauchen Tokens. Aktivieren Sie die Verdichtung. Kürzen Sie die Historie. Seien Sie aggressiv beim Entfernen irrelevanten Kontexts.
Intelligente Modellroutinen. Einfache Aufgaben (Klassifizierung, Formatierung, Ja/Nein-Fragen) benötigen nicht Ihr teuerstes Modell. Leiten Sie sie an ein günstigeres Modell weiter, das für die Aufgabe geeignet ist. Bewahren Sie das Premium-Modell für komplexe Überlegungen auf.
Überwachung von Wichtigem
Die Metriken, die ich täglich verfolge:
– Gesamtverbrauchte Tokens (Eingabe und Ausgabe, getrennt)
– Tokens pro Interaktion (Durchschnitt und p95)
– Wiederholrate (welcher Prozentsatz der Anfragen musste wiederholt werden)
– Warteschlangentiefe (wie viele Hintergrundanfragen warten)
– Kosten pro Interaktion (für das Budgetieren)
Die Metrik, die für die Optimierung am nützlichsten ist: Tokens pro Interaktion. Wenn diese Zahl im Laufe der Zeit ansteigt, wächst mein Kontext oder meine Prompts werden aufgebläht. Wenn sie plötzlich ansteigt, hat sich etwas geändert, das ich untersuchen sollte.
Das praktische Ergebnis
Nachdem ich all das implementiert habe:
– Null unerwartete Ratenlimit-Ereignisse in den letzten 4 Monaten
– Tokenverbrauch um etwa 35 % gesenkt (durch Kontextkürzung und intelligente Routinen)
– API-Kosten um etwa 40 % gesenkt (durch Prompt-Caching und günstigere Modellroutinen)
– Keine Auswirkungen auf die Antwortqualität bei benutzerorientierten Interaktionen
Die Ratenlimit-E-Mail, die all dies ausgelöst hat, war tatsächlich ein Geschenk. Sie hat mich gezwungen, Sichtbarkeit und Kontrolle über meinen API-Verbrauch aufzubauen. Ohne sie würde ich weiterhin im Dunkeln fliegen, mehr als nötig bezahlen und gelegentlich überrascht werden.
🕒 Published: