max_completion_tokens und Token-Budget
Auf dieser Seite
Lektion am 3. November 2026 neu überarbeitet basierend auf der xAI API-Referenz (Chat Completions und Responses), dem Reasoning-Guide und den xAI-Best Practices:
max_completion_tokensundmax_output_tokensbegrenzen ausschließlich die sichtbare Antwort – Reasoning-Tokens und Function-Call-Tokens werden nicht auf dieses Limit angerechnet – und liegen standardmäßig bei 128.000. Die vorherige Version behauptete das Gegenteil und bemess das Limit nach dem Reasoning; zudem wurde fürgrok-4.20-0309-reasoningein Aufwand (effort) festgelegt, den dieses Modell nicht akzeptiert. Quellen: Chat Completions · Responses · Reasoning.
Was das Limit tatsächlich begrenzt
Bei einem Reasoning-Modell könnte man annehmen, dass das Ausgabe-Limit das Budget für Gedanken und Antwort gemeinsam teilt. Das ist bei xAI nicht der Fall. Die API-Referenz ist explizit: max_completion_tokens (Chat Completions) und max_output_tokens (Responses API) gelten ausschließlich für sichtbare Ausgabetokens. Reasoning-Tokens und Function-Call-Tokens werden nicht angerechnet.
max_completion_tokens → nur sichtbare Antwort
Reasoning-Tokens → außerhalb des Limits, gesteuert durch Aufwand (effort)
Fehlt ein Wert, liegt dieses Limit standardmäßig bei 128.000 Tokens. Bezüglich des alten max_tokens gilt: Es wurde zugunsten von max_completion_tokens eingestellt (deprecated).
Reasoning steuern: Aufwand, nicht das Limit
Da das Limit das Reasoning nicht berührt, regelt der Aufwand die Menge. Bei grok-4.7, grok-4.6 und grok-4.5 ist der Parameter in Chat Completions reasoning_effort und in der Responses API reasoning.effort. Der Standardwert ist high, es werden low und medium akzeptiert, und ab Grok 4.6 auch xhigh. Reasoning kann nicht deaktiviert werden.
grok-4.20-0309-reasoning nimmt diesen Parameter nicht an: Es reasoniert immer, und seine Variante grok-4.20-0309-non-reasoning antwortet ohne Reasoning. Bei grok-4.20-multi-agent stellt der Aufwand schließlich nicht die Tiefe des Reasonings ein, sondern die Anzahl der mobilisierten Agenten (4 oder 16).
response = client.chat.completions.create(
model="grok-4.7",
reasoning_effort="low", # einfache Aufgabe: wenig Reasoning
messages=[{"role": "user", "content": "Klassifizieren Sie diesen Ticket: Abrechnung, Zugriff oder Fehler?"}],
)
print(response.usage.completion_tokens_details.reasoning_tokens)
Die Anzahl der Reasoning-Tokens erscheint in der Antwortnutzung: usage.completion_tokens_details.reasoning_tokens bei Chat Completions und usage.output_tokens_details.reasoning_tokens bei der Responses API. Sie zählen zu den abgerechneten Tokens: Daher ist es der Aufwand, nicht das Ausgabelimit, das diese Position in der Abrechnung belastet.
Dimensionierung des Ausgabelimits
Das Limit dient lediglich dazu, die Länge der Antwort selbst zu begrenzen. Die xAI-Best Practices geben eine einfache Regel vor: Stellen Sie es über die längste erwartete Antwort oder lassen Sie den Standardwert von 128.000 Tokens. Ein zu enges Limit kürzt die sichtbare Antwort ab, unabhängig vom Reasoning-Aufwand.
| Erwartete Antwort | Angemessenes Ausgabelimit |
|---|---|
| Ein Label, eine Zahl | ein paar Dutzend Tokens |
| Ein Absatz | 500 bis 1.000 Tokens |
| Ein strukturierter Bericht | mehrere tausend Tokens |
| Keine genaue Vorstellung | der Standardwert |
Erkennung von Abkürzungen
Wenn die sichtbare Antwort das Limit erreicht, gibt Chat Completions "length" in finish_reason zurück statt "stop", und die Responses API gibt einen incomplete-Status zurück. Diese Situation kann erkannt und durch einen höheren Limit-Wert erneut versucht werden:
response = client.chat.completions.create(
model="grok-4.7",
messages=[{"role": "user", "content": question}],
max_completion_tokens=2000,
)
if response.choices[0].finish_reason == "length":
# Sichtbare Antwort wurde gekürzt: erneut versuchen mit höherem Limit
response = client.chat.completions.create(
model="grok-4.7",
messages=[{"role": "user", "content": question}],
max_completion_tokens=8000,
)
Nicht mit dem Kontextlimit verwechseln
Das Ausgabelimit ist unabhängig vom Kontextfenster des Modells – 500.000 Tokens für grok-4.7, 1 Million für grok-4.20-0309-reasoning –, das die gesamte Konversation begrenzt. Und eine tiefgehende Reasoning-Anfrage kann mehrere Minuten dauern: xAI empfiehlt, mindestens 900 Sekunden pro Anfrage vorzusehen und Streaming vorzuziehen.
Kernaussagen
max_completion_tokensundmax_output_tokensbegrenzen ausschließlich die sichtbare Antwort: Reasoning wird nicht auf dieses Limit angerechnet- Fehlt ein Wert, liegt das Ausgabelimit standardmäßig bei 128.000 Tokens;
max_tokensist deprecated - Die Menge des Reasonings wird durch den Aufwand (
reasoning_effortoderreasoning.effort) bei grok-4.5 bis 4.7 eingestellt;grok-4.20-0309-reasoningverfügt nicht über diese Option - Reasoning-Tokens erscheinen in der Nutzung und zählen zur Abrechnung
- Eine gekürzte Antwort wird durch
finish_reason: "length"oder denincomplete-Status erkannt