CLI-Agent

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.

Geprüft am 2026-10-26Gilt für
Codex CLI 0.154.0

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-FunktionVorgehen
Bietet /v1/responses"responses" verwenden
Nur /v1/chat/completionsEin kompatibles Gateway oder eine Übersetzungsschicht mit Responses-Endpunkt verwenden
UnbekanntPfad 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:

TOML · ~/.codex/config.toml
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:

  1. base_url muss /v1 enthalten. Codex hängt /responses direkt an base_url; fehlt /v1, landet die Anfrage auf https://api.kimiseek.app/responses und Sie bekommen einen 404.
  2. env_key ist ein Variablenname, nicht der Key selbst. Hier steht der Variablenname KIMISEEK_API_KEY, der eigentliche Wert liegt in der Umgebungsvariable.
  3. model muss eine id sein, die im Katalog wirklich existiert. Ein Tippfehler liefert model not found, und ein bereits abgeschaltetes Modell meldet denselben Fehler.

Schritt 2 · Umgebungsvariable setzen und starten

Shell
export KIMISEEK_API_KEY="ks-your-key"

codex

Wollen 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

Shell
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

Shell · OpenAI Responses
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 → /v1 in base_url prü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

FehlerUrsacheBehebung
unexpected status 401 Unauthorized: Missing bearerDie von env_key benannte Umgebungsvariable ist nicht gesetzt oder falsch geschriebenPrüfen, ob KIMISEEK_API_KEY in der aktuellen Shell sichtbar ist
unexpected status 404 Not Foundbase_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 completionDie Streaming-Antwort wurde mittendrin abgeschnitten: lokaler Proxy, Firmen-Gateway oder TimeoutHTTP-Proxy-Einstellungen prüfen, in einem anderen Netz erneut versuchen
model not foundmodel ist ein falscher Name außerhalb der Aliase, oder eine abgeschaltete idDie 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:

StufeInputGecachter InputOutput
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.