Codex über Responses mit Drittanbieter-Modellen verbinden
Aktuelles Codex unterstützt nur das Responses-Protokoll. Hier stehen Provider-Konfiguration, API-Key und Endpunkttest sowie die Optionen für Gateways, die nur Chat Completions anbieten.
Kurz gefasst
Aktuelles Codex unterstützt für wire_api nur "responses". "chat" wurde entfernt und führt beim Start zu einem Konfigurationsfehler. KimiSeek bietet /v1/responses; die folgende Konfiguration verbindet Codex direkt damit.
Entscheidungstabelle in 30 Sekunden
| Gateway-Funktion | Vorgehen |
|---|---|
Bietet /v1/responses | "responses" verwenden |
Nur /v1/chat/completions | Ein kompatibles Gateway oder eine Übersetzungsschicht mit Responses-Endpunkt verwenden |
| Unbekannt | Pfad und Antworttext mit dem folgenden Befehl prüfen |
Warum Codex standardmäßig responses nutzt
Codex sendet Anfragen an /responses und verarbeitet dessen Tool-Aufrufe und Streaming-Ereignisse. Chat Completions verwendet andere Anfrage- und Ereignisstrukturen; eine Änderung von wire_api macht es für aktuelles Codex nicht nutzbar. Die Fähigkeiten hängen auch vom Modell und Gateway ab. Ein erfolgreicher Endpunkttest bestätigt nicht sämtliche Tool-Funktionen.
Voraussetzungen
- Node.js 20 oder neuer
- Codex CLI:
npm install -g @openai/codex - ein KimiSeek API Key (beginnt mit
ks-), im Dashboard erstellt
Schritt 1 · Konfigurationsdatei schreiben
Die Konfigurationsdatei liegt in ~/.codex/config.toml; legen Sie sie an, falls sie fehlt:
model = "deepseek-v4-pro-0813"
model_provider = "kimiseek"
[model_providers.kimiseek]
name = "KimiSeek"
base_url = "https://api.kimiseek.app/v1"
env_key = "KIMISEEK_API_KEY"
wire_api = "responses"Drei Stellen, an denen man leicht hängen bleibt:
base_urlmuss/v1enthalten. Codex hängt/responsesdirekt anbase_url; fehlt/v1, landet die Anfrage aufhttps://api.kimiseek.app/responsesund Sie bekommen einen 404.env_keyist ein Variablenname, nicht der Key selbst. Hier steht der VariablennameKIMISEEK_API_KEY, der eigentliche Wert liegt in der Umgebungsvariable.modelmuss eine id sein, die im Katalog wirklich existiert. Ein Tippfehler liefertmodel not found, und ein bereits abgeschaltetes Modell meldet denselben Fehler.
Schritt 2 · Umgebungsvariable setzen und starten
export KIMISEEK_API_KEY="ks-your-key"
codexWollen Sie das Modell vorübergehend wechseln, ändern Sie model in config.toml oder überschreiben es mit codex --model <id>.
Schritt 3 · Prüfen, ob der Key gültig ist
curl https://api.kimiseek.app/v1/models \
-H "Authorization: Bearer ${KIMISEEK_API_KEY:?Set KIMISEEK_API_KEY before running this command}"Wenn die Antwort eine Modellliste enthält, sind Key und Netzwerk in Ordnung. Der Sinn dieses Schritts ist, „Authentifizierungsproblem“ und „Protokollproblem“ voneinander zu trennen – sonst können Sie bei einem 404 nicht sagen, ob der Key oder der Pfad falsch ist.
Schritt 4 · responses in 30 Sekunden testen
curl https://api.kimiseek.app/v1/responses \
-H "Authorization: Bearer ${KIMISEEK_API_KEY:?Set KIMISEEK_API_KEY before running this command}" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro-0813",
"input": "Explain what a base URL is in one sentence.",
"max_output_tokens": 256,
"stream": false
}'- HTTP 200 mit einem JSON-Array
output→ die Responses-Route funktioniert; anschließend eine echte Aufgabe und Tool-Aufrufe testen. - HTTP 404 →
/v1inbase_urlprüfen und im Antworttext zwischen fehlender Route und fehlendem Modell unterscheiden. Der Status allein reicht nicht. - HTTP 401 → zu Schritt 3 zurückgehen und die Zugangsdaten prüfen.
Wenn das Gateway nur Chat Completions bietet
Bei wire_api = "responses" bleiben. Ein Gateway mit /v1/responses wählen oder eine kompatible Übersetzungsschicht einrichten. Nicht auf den entfernten Wert "chat" wechseln.
Häufige Fehler
| Fehler | Ursache | Behebung |
|---|---|---|
unexpected status 401 Unauthorized: Missing bearer | Die von env_key benannte Umgebungsvariable ist nicht gesetzt oder falsch geschrieben | Prüfen, ob KIMISEEK_API_KEY in der aktuellen Shell sichtbar ist |
unexpected status 404 Not Found | base_url fehlt /v1, oder das Gateway hat kein /v1/responses | /v1 ergänzen und Fehlertext prüfen; fehlt Responses, ein kompatibles Gateway oder eine Übersetzungsschicht verwenden |
stream disconnected before completion | Die Streaming-Antwort wurde mittendrin abgeschnitten: lokaler Proxy, Firmen-Gateway oder Timeout | HTTP-Proxy-Einstellungen prüfen, in einem anderen Netz erneut versuchen |
model not found | model ist ein falscher Name außerhalb der Aliase, oder eine abgeschaltete id | Die vollständige id aus dem Katalog verwenden, z. B. deepseek-v4-pro-0813 |
Weitere Fehler auf Protokollebene stehen in der Fehlertabelle.
Kosten
Die Nutzung von Codex ist input-lastig: Jede Ausführung schickt den Kontext erneut. DeepSeek V4 Pro wird in zwei Stufen, peak und off-peak, in Renminbi pro Million tokens abgerechnet:
| Stufe | Input | Gecachter Input | Output |
|---|---|---|---|
| off-peak | ¥4.5 | ¥0.45 | ¥13.5 |
| peak | ¥9 | ¥0.9 | ¥27 |
Der Unterschied zwischen peak und off-peak beträgt genau Faktor zwei. Große Refactoring-Läufe in die off-peak-Zeit zu legen, spart die Hälfte. Maßgeblich für die konkreten Modelle und aktuellen Preise ist die Preisseite, die direkt die Konfiguration des Modellkatalogs liest.
Geeignete Versionen und Prüfung
Konfiguration mit Codex CLI 0.154.0 am 2026-10-26 geprüft. Die unterstützten Protokolle stehen in der offiziellen Konfigurationsreferenz.
Häufige Fragen
Brauche ich mit einem solchen Gateway noch eine Brücke wie Codex-Bridge?
Nein. Eine Brücke hat die Aufgabe, Responses-Anfragen lokal in Chat Completions zu übersetzen und dann hinauszuschicken – für Gateways, die nur Chat Completions implementiert haben. KimiSeek implementiert /v1/responses selbst, eine Brückenschicht wäre ein zusätzlicher Sprung und eine zusätzliche Fehlerquelle.
Warum muss base_url unbedingt /v1 enthalten?
Weil Codex die Route direkt aus base_url baut: base_url + "/responses". Mit https://api.kimiseek.app landet die Anfrage auf https://api.kimiseek.app/responses, und das ist eine Seite der Website, keine API.
Kann aktuelles Codex noch wire_api = "chat" verwenden?
Nein. Aktuelle Versionen lehnen diesen Wert beim Start ab. Responses verwenden; ein reiner Chat-Completions-Upstream braucht ein kompatibles Gateway oder eine Übersetzungsschicht.
Kann derselbe Key gleichzeitig Claude Code und Codex bedienen?
Ja. Der Key gilt auf Kontoebene, die beiden Clients rufen denselben Key nur über unterschiedliche Protokollpfade auf. Die Konfiguration steht im Claude-Code-Tutorial.