Um zwei Uhr vierzig nachts begann die Monitoring-Alarmgruppe mit Nachrichten überzulaufen. Wir betreuten technisch ein Team, das ein Kundenservice-System für grenzüberschreitenden E-Commerce betreibt. Deren Timeout-Rate der intelligenten Kundenservice-API war von üblichen 0,3 % auf 27 % hochgeschossen und blieb fast eine Stunde lang so. Auf der Nutzerseite zeigte sich das so: Der Kundenservice-Bot antwortete minutenlang nicht, und die Agenten mussten vorübergehend auf manuelle Bearbeitung zurückschalten.
Bei der anschließenden Analyse lag das Problem nicht in unserem Code, sondern upstream – der Inferenz-Cluster eines einzelnen Modellanbieters hatte in diesem Zeitfenster eine regionale Ratenbegrenzung erfahren. Alle unsere Anfragen gingen an denselben Anbieter, es gab keinen Ausweichweg. Dieser Artikel legt jenen Vorfall und die spätere Umgestaltung vollständig offen dar, als Referenz für Kollegen, die gerade an der Enterprise-KI-Anbindung arbeiten.
Drei Fallstricke der Single-Point-Abhängigkeit, in die wir alle getappt sind
Viele denken, die Anbindung einer LLM-API bestehe nur darin, einen Key einzutragen und eine HTTP-Anfrage zu senden. Im echten Produktivbetrieb konzentrieren sich die Fallstricke an drei Stellen.
Erstens die Ratenbegrenzung. Das QPS-Kontingent der Anbieter wird pro Account vergeben. Während der großen Werbeaktionen verdreifachte sich das Gesprächsvolumen im Kundenservice, das Kontingent war sofort ausgeschöpft, und es kamen 429 zurück. Damals hatten wir weder Request-Queuing noch Backoff implementiert, und die Retry-Logik war zu aggressiv geschrieben, was den Druck sogar noch verstärkte.
Zweitens die Timeouts. Sobald bei der Streaming-Schnittstelle (SSE) das Upstream hängt, bleibt die Verbindung lange offen, ohne dass etwas zurückkommt, und der Client kann nur warten. Bei jenem Vorfall war ein erheblicher Teil der Anfragen nicht fehlgeschlagen, sondern „scheinbar am Leben" – die TCP-Verbindung bestand noch, aber es wurde kein einziges Token ausgeliefert.
Drittens die Protokollunterschiede. Verschiedene Anbieter unterscheiden sich beim Streaming-Rückgabeformat, bei den Endmarkern und bei der Definition der Fehlercodes. Die SSE-Event-Struktur der GPT-4o API und der Claude API ist unterschiedlich, und die heimischen Qwen API und DeepSeek API haben jeweils ihre eigenen Felder. Wenn der Geschäftscode direkt mehrere Anbieter anbindet, legt man sich damit einen Haufen if-else ins eigene Nest.
Multi-Model-Routing-Lösung: Klassifizierung, Degradierung, Normalisierung, Aggregation
Nach dem Vorfall haben wir eine Runde Umgestaltung durchgeführt. Der Kerngedanke war, eine Model-Gateway-Schicht einzuführen und die Frage „welches Modell wird aufgerufen" aus dem Geschäftscode herauszuziehen.
Request-Klassifizierung ist der erste Schritt. Wir haben die Anfragen nach geschäftlicher Wichtigkeit in drei Stufen eingeteilt: Echtzeit-Dialogklasse (Kundenservice, Agenten-Assistent) erfordert eine P99-Latenz unter 2 Sekunden; Batch-Generierungsklasse (Produktbeschreibungen, E-Mail-Entwürfe) kann Minutenebene tolerieren; Offline-Aufgabenklasse (Datenannotation, Berichtszusammenfassungen) ist vollständig asynchron. Erst nach der Klassifizierung gibt es eine Grundlage für die Routing-Strategie.
Automatische Fehlerdegradierung ist der zweite Schritt. Für jedes Modell wird ein Health-Check konfiguriert. Bei aufeinanderfolgenden Fehlern oder Timeouts über einem Schwellenwert wird es automatisch herausgenommen und der Traffic auf ein Backup-Modell umgeleitet. Unser Schwellenwert ist: Fehlerrate im gleitenden Fenster über 5 % löst aus, Wiederherstellungs-Probeintervall 30 Sekunden. Hier ein Hinweis: Degradierung bedeutet nicht, blind umzuschalten – man muss den Aufgabentyp betrachten. Im Kundenservice-Szenario ist ein Wechsel auf ein Modell mit ähnlichen Fähigkeiten akzeptabel, aber bei Aufgaben mit komplexem Reasoning muss die Degradierung markiert und später manuell überprüft werden.
SSE-Protokollnormalisierung ist der dritte Schritt und der aufwendigste. Wir haben auf der Gateway-Schicht das Streaming-Ausgabeformat vereinheitlicht. Die Geschäftsseite kennt nur eine Event-Struktur, und welcher Anbieter darunter angebunden ist, übersetzt das Gateway. So muss beim Modellwechsel kein Geschäftscode geändert werden.
Nutzungsaggregation ist der vierte Schritt. Nach Multi-Model-Aufrufen müssen Token-Abrechnung und Nutzungsstatistik zwingend auf einen einheitlichen Nenner gebracht werden, sonst wird die Monatsabstimmung zum Albtraum. Das Gateway aggregiert nach drei Dimensionen – Mandant, Modell und Aufgabentyp – und gibt eine einheitliche Abrechnung aus.
Später haben wir die Routing-Strategie zu „automatische Auswahl des optimalen Modells je Aufgabe" hochgestuft – einfache Frage-Antwort läuft über ein günstiges kleines Modell, komplexes Reasoning über ein leistungsstarkes Modell, Code-Generierung über ein spezialisiertes Modell. Mit dieser Logik im Betrieb sanken die Gesamtaufrufkosten, und die Antworten wurden stabiler. Dahinter steht letztlich die Scheduling-Fähigkeit auf der Rechenleistungsseite – Mechanismen wie Green-Computing-Scheduling und bedarfsgesteuerte GPU-Elastizität sorgen dafür, dass Inferenzressourcen zu Spitzenzeiten nicht endlos in der Warteschlange hängen.
Zur Grenze der Routing-Strategie – mal ganz ehrlich
Nicht jedes Team braucht Multi-Model-Multi-Active. Wenn dein tägliches Aufrufvolumen nur einige Zehntausend beträgt, das Geschäft nicht latenzempfindlich ist und das Budget großzügig, dann reicht es, ehrlich einen Anbieter anzubinden und Retry sowie Timeout sauber umzusetzen. Die durch Multi-Active entstehende Komplexität bremst dann eher die Iterationsgeschwindigkeit.
Das echte Wert-Szenario für Multi-Model-Routing ist: das Aufrufvolumen so groß, dass Ratenbegrenzung droht; das Geschäft hat harte Anforderungen an die Verfügbarkeit; oder es muss ein dynamisches Gleichgewicht zwischen Kosten und Qualität gefunden werden. Das Beurteilungskriterium ist einfach – hat deine API-Timeout-Rate jemals die Endnutzer beeinträchtigt? Wenn ja, dann lohnt es sich, diese Gateway-Schicht zu bauen.
In unserem Projekt haben wir auch die token8341-LLM-API-Aggregationsplattform für die einheitliche Multi-Model-Anbindung genutzt. Mit einem Key lassen sich gängige Modelle wie GPT-4o, Claude, Gemini, DeepSeek, Qwen, ERNIE und Doubao aufrufen, kompatibel mit dem OpenAI SDK, ein Wechsel der base_url genügt zum Umschalten. Gelöst werden genau die oben genannten Probleme der Protokollnormalisierung und Nutzungsaggregation, was den Aufwand für die eigene Pflege mehrerer SDKs erspart. Für Teams, die kein Gateway von Grund auf bauen wollen, ist eine KI-API-Aggregationslösung wie token8341 eine Option.
Zum Schluss noch eine Anmerkung: Die token8341-LLM-API-Aggregationsplattform ist bei der Abdeckung heimischer Modelle recht vollständig – Pangu, DeepSeek, Qwen, ERNIE, Doubao und Spark sind alle dabei, was Projekte zur Xinchuang-Compliance etwas entspannter macht. Aber ein Werkzeug bleibt ein Werkzeug: Wie die Routing-Strategie zu designen und wie die Degradierungs-Schwellenwerte zu setzen sind, muss man immer noch anhand der eigenen Geschäftsdaten justieren. Die praktischste Lektion, die uns jener nächtliche Vorfall gelehrt hat, ist: Verfügbarkeit kann man nicht kaufen, man muss sie sich Schicht für Schicht erdesignen.
Autor: Sun Haoran
Veröffentlichungsdatum: 12. November 2026