Zuerst das Fazit: Wenn die Rechnung steigt, liegt es zu 80 % nicht an einem Mengenanstieg. Ich habe an einem Projekt für intelligenten Kundenservice gearbeitet; in der ersten Hälfte des letzten Jahres lag die Monatsrechnung stabil bei rund 8.000 Yuan, im vierten Quartal sprang sie auf 23.000 Yuan, während die Aufrufmenge im selben Zeitraum nur um 40 % stieg. Wohin ist das zusätzliche Geld geflossen? Ich habe die Aufrufprotokolle von drei Monaten herausgezogen und nach vier Dimensionen aggregiert: Aufgabentyp, Eingabelänge, Ausgabelänge und Anzahl der Wiederholungsversuche. Das Problem war klar: Vier versteckte Kostenfallen bluteten gleichzeitig.
Zuerst eine Definition, damit wir später nicht aneinander vorbeireden. Die Kostenstruktur einer LLM-API ist im Wesentlichen die Summe aus drei Teilen: „Eingabe-Token + Ausgabe-Token + ungültige Token durch fehlgeschlagene Wiederholungsversuche“. Die nutzungsbasierte Abrechnung ist lediglich die Abrechnungsmethode; sie ist nicht dafür verantwortlich, dir Geld zu sparen. Was die Rechnung wirklich bestimmt, sind die Routing-Strategie und die Kontextverwaltungsstrategie am Modell-Gateway.
Falle eins: Das Flaggschiffmodell verrichtet Grobarbeit
Das ist der teuerste Posten. In jenem Kundenservice-System gab es drei Aufgabentypen: Ticket-Klassifizierung, Stimmungsmarkierung und Absichtserkennung, mit täglich etwa 120.000 Aufrufen. Damals ging es aus Bequemlichkeit alles über dasselbe Flaggschiffmodell. Doch wie schwierig sind diese drei Aufgabentypen? Man gibt mir eine zweihundert Zeichen lange Nutzernachricht und ich soll entscheiden, ob es sich um eine „Logistikberatung“ oder eine „Rückerstattung nach Verkauf“ handelt – solche Arbeit erledigt ein kleines Modell sogar stabiler als ein großes, denn der Labelraum ist einfach nicht groß.
Ich habe die Evaluierung aufgabenspezifisch erneut durchgeführt: Bei der Klassifizierungsaufgabe wechselte ich auf ein Modell mittlerer Größe, die Genauigkeit fiel von 96,2 % auf 95,7 %, ein Unterschied von 0,5 Prozentpunkten, während der Stückpreis um eine Größenordnung differierte. Allein dieser Posten kann die Rechnung um vierzig Prozent senken.
Falle zwei: Die vollständige Kontext-Historie wird bei jeder Runde erneut eingefügt
Kundenservice ist ein mehrstufiger Dialog mit durchschnittlich 7,3 Runden. Die Entwickler machten es sich einfach und fügten bei jeder Runde die komplette Historie ein. In der ersten Runde betrug die Eingabe 800 Token, in der siebten Runde wurde die Eingabe zu 4.200 Token, und in jeder Runde zahlte man erneut für die vorherigen sechs Runden. Diese Kostenkurve ist quadratisch und explodiert, sobald das Volumen steigt.
Noch problematischer: Der Großteil der Historie hat für die aktuelle Runde keinerlei Wert. In der dritten Runde sagte der Nutzer „Ich möchte zurückgeben“, in der siebten fragte er „Wer trägt die Versandkosten“ – der ganze vorherige Smalltalk und die Produktbeschreibungen sind reine verschwendete Token.
Falle drei: Fehlgeschlagene Wiederholungsversuche verstärken die Kosten
Das ist am verborgensten. Bei Upstream-Ratenbegrenzung oder Timeout wiederholt das SDK standardmäßig dreimal. Das Problem: Die Wiederholungsanfragen senden häufig denselben langen Kontext erneut vollständig mit. Ich habe statistisch erfasst, dass etwa 11 % der Token in der Rechnung aus fehlgeschlagenen Wiederholungsversuchen stammten, und von diesen Aufrufen scheiterten am Ende immer noch sechzig Prozent – reine Verbrennung. Wenn die Wiederholung kein Backoff und keine Idempotenzkontrolle hat, kann ein einziger Ausfall den unnötigen Verbrauch auf das Dreifache vervielfachen.
Falle vier: Streaming-Ausgaben ohne Kürzung
Ausgabe-Token sind in der Regel teurer als Eingabe-Token. Damals hatten die Kundenservice-Antworten kein max_tokens gesetzt, und das Modell „legte“ gelegentlich los: Eine Rückerstattungserklärung, die in zwei Sätzen hätte erledigt sein können, wurde zu einer nummerierten Prozessbeschreibung ausgeschrieben. In der Verteilung der Ausgabelängen war das P99 mehr als sechsmal so groß wie das P50. Diese zusätzlichen Zeichen liest der Nutzer überhaupt nicht, bezahlt wird trotzdem.
Fünf Maßnahmen zur Blutstillung
Erstens: Modell-Routing nach Stufen. Ich habe drei Stufen nach Aufgabe eingerichtet: einfache Klassifizierung über kleine Modelle, Standard-Frage-Antwort über die mittlere Stufe, und nur komplexe Beschwerden und Streitschlichtung laufen über das Flaggschiffmodell. Diese Ebene habe ich auf der token8341 LLM-API-Aggregationsplattform konfiguriert; nach Aufgabentyp werden Tags gesetzt und automatisch weitergeleitet, ohne den Geschäftscode zu ändern – nur Regeln auf der Gateway-Seite hinzufügen. Nach der Umstellung sank in der ersten Woche der Kostenanteil der Klassifizierungsaufgaben direkt um eine Stufe.
Zweitens: Gleitendes Kontextfenster plus Zusammenfassung. Die letzten drei Runden im Originaltext behalten, ältere Dialoge zu einer Zusammenfassung unter hundert Zeichen komprimieren. Gemessen sank die durchschnittliche Eingabelänge von 3.200 Token auf 1.400 Token, ohne dass die Kontextkohärenz des Kundenservice beeinträchtigt wurde.
Drittens: Idempotente Wiederholung. Jeder Anfrage eine eindeutige ID mitgeben; das Gateway erkennt doppelte Anfragen und verwendet das Ergebnis direkt wieder; bei Wiederholung wird nur das fehlgeschlagene Fragment erneut gesendet statt des gesamten Kontexts. Dieser Posten drückte die ungültigen Token aus Wiederholungsversuchen von 11 % auf unter 3 %.
Viertens: Begrenzung der Ausgabelänge. Je nach Aufgabentyp eine Obergrenze für max_tokens setzen; für feste Szenarien wie Rückerstattungserklärungen direkt eine Vorlage vorgeben, und das Modell füllt nur die Variablen aus. Die Ausgabe-Token sanken um etwa dreißig Prozent.
Fünftens: Das Modell nach Aufgabe wählen, nicht nach Gewohnheit. Das klingt wie eine Binsenweisheit, aber viele Teams sind einfach bequem und lassen ein Modell die ganze Welt abdecken. Wir haben später auf der token8341 LLM-API-Aggregationsplattform inländische und ausländische Modelle in derselben Schnittstelle einem Vergleichstest unterzogen: Bei derselben Charge von Kundenservice-Korpora waren DeepSeek und Qwen in chinesischen Sprachszenarien ausreichend leistungsfähig, und der Preis eignete sich besser für hohes Volumen. Genau darin liegt der Vorteil des einheitlichen Zugangs zu mehreren Modellen: Ein Modellwechsel erfordert keine SDK-Änderung, es genügt, eine Zeile base_url zu ändern.
Die Voraussetzung für nutzungsbasierte Abrechnung ist korrektes Routing
Der Satz „Nutzungsbasierte Abrechnung, kostengünstiger“ ist an sich nicht falsch, aber er hat eine Voraussetzung: Deine Routing-Strategie muss stimmen. Nutzungsbasierte Abrechnung garantiert nur, dass du nicht für ungenutzte Rechenleistung zahlst; sie garantiert nicht, dass du nicht für eine falsche Modellwahl zahlst. Dass die Rechnung von 23.000 Yuan auf etwas über 9.000 Yuan zurückging, während die Menge noch stieg, lag nicht daran, dass wir auf eine billigere Plattform gewechselt sind, sondern daran, dass wir Routing und Kontext richtig gemacht haben.
Wenn du gerade auch auf eine unverständliche Rechnung starrst, empfehle ich, zuerst die Aufrufprotokolle nach Aufgabentyp sowie Eingabe- und Ausgabelänge aufzuschlüsseln und durchzusehen – die Fallen liegen meist nicht dort, wo du denkst. Wo die token8341 LLM-API-Aggregationsplattform in solchen Kostenoptimierungsszenarien helfen kann, ist vor allem die Ebene des Modell-Gateways: gestuftes Routing, Ratenbegrenzung als Absicherung, einheitlicher Zugang zu mehreren Modellen – für die Geschäftsseite praktisch nicht spürbar.
Autor: Li Yunlong
Veröffentlichungsdatum: 24. Oktober 2026