Einführung
OpenAI-kompatibler Chat für Grok 4.5, das Coding-Modell in xAIs Grok-Reihe. Ein Zug trägt Text- und image_url-Teile, der Denkaufwand reicht bis xhigh, und eine einzelne Antwort darf 450.000 Token erreichen.
xAI veröffentlicht Grok 4.5 für agentische Softwarearbeit, Engineering und Workflow-Aufgaben, hat es mit zusätzlichen Daten aus Naturwissenschaft, Technik und Mathematik trainiert und bietet es auch unter den Aliassen grok-4.5-latest und grok-build-latest an. Hier ist es ein Endpunkt unter /v1/chat/completions, der bis zu 500.000 Token über höchstens 256 geordnete Nachrichten liest und bis zu 450.000 in einer Antwort zurückgibt. Eingabe, gecachte Eingabe und Ausgabe werden getrennt voneinander gemessen – und genau dafür zahlt eine Agenten-Schleife, die einen langen Anfang immer wieder sendet.
Wichtige Funktionen und Highlights
Der Anfang, den Sie erneut senden, hat seinen eigenen Zähler
Eine Agenten-Schleife sendet in jedem Schritt denselben System-Prompt, dieselben Werkzeugdefinitionen und dieselbe Dateiübersicht; neu ist immer nur das Ende des Gesprächs. Eingabe, die aus dem Cache bedient wird, wird im usage-Block getrennt gezählt und zu einem eigenen, günstigeren Tarif gemessen. Einschalten müssen Sie nichts. Die führenden Nachrichten zwischen den Schritten unverändert zu lassen ist die ganze Technik, und wie viel davon tatsächlich im Cache gelandet ist, sagt Ihnen die Antwort, statt dass Sie es annehmen müssen.
Text und Bilder hinein, Text heraus
Der Inhalt darf eine einfache Zeichenkette oder ein Array aus Teilen sein, und dieses Modell deklariert zwei davon: {"type": "text", "text": "..."} und {"type": "image_url", "image_url": {"url": "...", "detail": "auto|low|high"}}. Ein Screenshot und die Frage dazu kommen im selben Zug an, und Bildinhalt zählt innerhalb des Fensters von 500.000 Token, nicht zusätzlich dazu. Datei- oder PDF-Teile gibt es an diesem Endpunkt nicht, eine Spezifikation, ein Log oder ein Diff muss also als eingefügter Text ankommen. Der Denkaufwand kennt die Stufen low, medium, high und xhigh und steht standardmäßig auf high; er wird in Ausgabe-Token bezahlt und zählt damit gegen die Antwortgrenze ebenso wie gegen die Rechnung.
Request-Parameter
| Parameter | Pflicht | Beschreibung |
|---|---|---|
messages | Ja | Höchstens 256 Züge. Der Inhalt darf Text- und image_url-Teile in einer Nutzernachricht mischen; Datei- oder PDF-Teile gibt es an diesem Endpunkt nicht. mindestens 1 Einträge · höchstens 256 Einträge |
reasoning_effort | Nein | low, medium, high oder xhigh. high ist die Vorgabe; der Denkaufwand wird in Ausgabe-Token bezahlt, xhigh erhöht die Rechnung also auch bei kurzer Antwort. |
max_tokens | Nein | Begrenzt die sichtbare Antwort auf 450.000 Token; die Vorgabe von 4.096 schneidet lange Antworten stillschweigend ab. |
temperature | Nein | 0 bis 2, Vorgabe 0,7. Nehmen Sie 0, wenn Sie zwei Patches oder zwei Läufe derselben Aufgabe vergleichen. |
top_p | Nein | 0,01 bis 1. Ändern Sie entweder diesen Wert oder temperature, nicht beide. |
tools | Nein | Bis zu 128 Funktionsdefinitionen pro Anfrage. Bleibt ihre Reihenfolge zwischen den Schritten gleich, bleibt der Anfang eher cachefähig. höchstens 128 Einträge |
parallel_tool_calls | Nein | true oder false, Standard true: Das Modell darf in einem Zug mehrere Tool-Aufrufe anfordern. Standardwert: |
tool_choice | Nein | auto, none, required – oder ein Objekt, das die aufzurufende Funktion benennt. |
response_format | Nein | Verlangen Sie ein JSON-Objekt, wenn die Antwort vom nächsten Schritt eines Agenten geparst und nicht von einem Menschen gelesen wird. |
Preis
Eingabe $2 / Ausgabe $6 je 1 Mio. Token; Prompts ab 200K Token: Eingabe $4 / Ausgabe $12
Die gesamte Eingabe umfasst auch gecachte Token. Ab 200.000 Eingabe-Token gelten die Langkontexttarife für die gesamte Eingabe, gecachte Eingabe und Ausgabe der Anfrage; darunter gelten die Standardtarife. Gecachte Eingabe wird getrennt von frischer Eingabe gemessen und günstiger bepreist. Die Ausgabe enthält Reasoning-Token, eine höhere Denkstufe kostet also mehr, selbst wenn die sichtbare Antwort gleich lang ist. Prüfen Sie das Budget vor dem Absenden. Die anfängliche Reservierung rechnet ohne Cache-Ersparnis; bei der Abrechnung wird die Differenz zur gemessenen Nutzung freigegeben.
Anwendungsfälle
Die ganze Schleife im Kontext behalten
Ein Coding-Agent sendet in jedem Schritt seine Anweisungen, seine Werkzeugdefinitionen und seine Dateiübersicht erneut und legt jedes Mal ein paar hundert neue Token dazu. Alles davon passt in das Fenster von 500.000 Token, der wiederholte Teil wird als gecachte Eingabe gemessen, und erst bei 200.000 kombinierten Eingabe- und Cache-Token wechselt die Anfrage auf den Langkontexttarif – was die Schätzung vor dem Absenden Ihnen sagt, bevor Sie dafür zahlen.
Refactoring mit Modul, Tests und Fehlschlag in einem Zug
Fügen Sie das Modul, die Testdatei und die fehlgeschlagene Ausgabe zusammen ein und fordern Sie den Patch samt Begründung an. Stellen Sie reasoning_effort auf xhigh, wenn die Änderung durchdacht sein muss, bevor sie geschrieben wird: Das verbraucht mehr Ausgabe-Token, bevor die erste Codezeile erscheint, und ist bei einer Änderung, die Sie Zeile für Zeile prüfen, der richtige Tausch.
Screenshot und Stacktrace gemeinsam lesen lassen
Hängen Sie ein fehlerhaftes Dashboard als image_url-Teil mit detail high an, fügen Sie den Stacktrace als Text in dieselbe Nachricht und fragen Sie nach Ursachen in der Reihenfolge ihrer Wahrscheinlichkeit. Bild und Log kommen in einem Zug an, das Modell liest also das Panel selbst statt Ihrer Beschreibung davon.
Ein Migrationsdokument in einer Antwort zurückbekommen
450.000 Ausgabe-Token reichen für einen vollständigen Migrationsplan, ein neu geschriebenes Modul oder ein übersetztes Handbuch in einer einzigen Antwort statt in einer Kapitelschleife. Setzen Sie max_tokens ausdrücklich herauf: Die Vorgabe von 4.096 schneidet eine lange Erzeugung ab, ohne einen Fehler zu melden – und eine abgeschnittene Antwort ist der Fehler, der einer fertigen am ähnlichsten sieht.
Prompt-Leitfaden und Praxistipps
Die Denkstufe pro Aufgabe wählen, nicht pro Projekt
reasoning_effort steht standardmäßig auf high; wer das Feld weglässt, bekommt also bereits gründliche Arbeit – und die Ausgabe-Token, die dazugehören. Entscheiden Sie pro Aufruf: xhigh für eine Migration oder einen Beweis, high für die gewöhnliche Durchsicht, low für einen mechanischen Zug wie das Einsortieren einer Logzeile. Weil der Aufwand in Ausgabe-Token bezahlt wird, kann eine kurze Antwort bei xhigh mehr kosten als eine lange bei low.
Das Artefakt verlangen, mit einem Rumpf zum Einfügen
Legen Sie die Form der Ausgabe in der System-Nachricht fest und lassen Sie die Nutzernachricht die Belege tragen – die Datei, das Log, den Screenshot –, damit das Modell nicht nebenbei das Format erraten muss, während es die Aufgabe durchdenkt.
curl https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "xai/grok-4.5",
"messages": [
{"role": "system", "content": "Return the patched file in full. No diffs, no commentary, no omitted regions."},
{"role": "user", "content": [
{"type": "text", "text": "Both panels are the same service before and after the deploy. Which one regressed, and what in the diff explains it?"},
{"type": "image_url", "image_url": {"url": "https://cdn.spicyapi.ai/models/examples/inputs/c681580c3c6a0b63.jpeg", "detail": "high"}}
]}
],
"reasoning_effort": "high",
"max_tokens": 32000
}'
Erst den usage-Block lesen, dann nachjustieren
Die Antwort meldet Eingabe-, Cache- und Ausgabe-Token getrennt, und das ist die einzige ehrliche Auskunft darauf, ob Ihr Anfang im Cache lag. Justieren Sie danach statt nach der Form des Gesprächs: Bleibt der Cache-Anteil über die Schritte hinweg bei null, ändert sich etwas in den führenden Nachrichten – ein Zeitstempel im System-Prompt, eine umsortierte Werkzeugliste –, und dieses Stück ans Ende der Anfrage zu verschieben ist meist die ganze Lösung. Lange Antworten streamen Sie mit stream: true, das chat.completion.chunk-Ereignisse bis data: [DONE] liefert.
API-Schnellstart
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "xai/grok-4.5/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
Authentifizierung, vollständiges Schema, Polling und Fehlerbehandlung stehen in der API-Referenz.










