KI-Coding-Agenten und Harnesses

Richten Sie Claude Code, Codex CLI, OpenClaw, Cline, Cursor und 25+ weitere Coding-Agenten in denselben drei Schritten auf das Gateway — jeweils mit exaktem Konfigurationsziel und Schlüsselnamen.

Jeder KI-Coding-Agent liest eine Basis-URL und einen API-Schlüssel von irgendwoher — eine Umgebungsvariable, eine Konfigurationsdatei oder ein Einstellungsfeld. Diese Seite listet auf, wo jeder Harness sie liest, welches Protokoll er spricht und den einen Gotcha, über den Menschen tatsächlich stolpern. Vollständige Copy-Paste-Konfigurationen stehen in der Dokumentation.

1

base_url auf das Gateway richten

Standard ist https://your-gateway.gatellm.io — ob /v1 enthalten ist, hängt vom SDK ab (jedes Beispiel nennt den genauen Wert).

2

Gateway-Zugriffsschlüssel einsetzen

Kein Upstream-sk-…-Schlüssel — derselbe Zugriffsschlüssel wird in den Header eingetragen, den Ihr SDK erwartet.

3

Den Gateway-Modellnamen verwenden

Was Sie in der Konsole konfiguriert haben — nicht der offizielle Name des Anbieters.

Authorization: Bearer <key>
OpenAI · DashScope · generisch
Bearer-Präfix ist groß-/kleinschreibungsunabhängig
x-api-key: <key>
Anthropic SDK
Authorization wird ebenfalls akzeptiert
x-goog-api-key: <key>
Gemini SDK
Authorization wird ebenfalls akzeptiert

Harness-Kompatibilitätsmatrix

HarnessProtokollUnterstützungKonfigurationszielSchlüsselnamen / EinstellungenDokumentation
Terminal-Agenten
Claude CodeAnthropicNativenv varsANTHROPIC_BASE_URL, ANTHROPIC_API_KEY, ANTHROPIC_MODELGitHub-Konfiguration ↗ · Dokumentation
Codex CLIOpenAI ResponsesNativ~/.codex/config.tomlbase_url, env_key, wire_apiGitHub-Konfiguration ↗ · Dokumentation
Gemini CLIGeminiNativenv varsGOOGLE_GEMINI_BASE_URL, GEMINI_API_KEYGitHub-Konfiguration ↗ · Dokumentation
OpenClawOpenAI / Anthropic-compatibleOpenAI-kompatibelopenclaw.jsonmodels.providers.<id>.baseUrl, models.providers.<id>.apiKeyDokumentation
opencodeOpenAI-compatibleOpenAI-kompatibelopencode.jsonprovider.<id>.options.baseURLDokumentation
CrushOpenAI / Anthropic-compatibleOpenAI-kompatibelcrush.jsonproviders.<id>.base_url, providers.<id>.typeDokumentation
Factory DroidOpenAI / Anthropic-compatibleOpenAI-kompatibel~/.factory/settings.jsoncustomModels[].baseUrl, customModels[].providerDokumentation
GooseOpenAI-compatibleOpenAI-kompatibelenv varsOPENAI_HOST, OPENAI_BASE_PATH, OPENAI_API_KEYDokumentation
AiderOpenAI-compatible (LiteLLM)OpenAI-kompatibelenv varsOPENAI_API_BASEDokumentation
Qwen CodeOpenAI-compatibleOpenAI-kompatibelenv varsOPENAI_BASE_URL, OPENAI_API_KEY, OPENAI_MODELDokumentation
OpenHandsOpenAI-compatible (LiteLLM)OpenAI-kompatibel~/.openhands/settings.jsonbase_url, model openai/ prefixDokumentation
Kimi Code CLIOpenAI / AnthropicOpenAI-kompatibelconfig.tomlprovidersDokumentation
PlandexOpenAI-compatibleOpenAI-kompatibelcustom models JSONbaseUrlDokumentation
SWE-agentOpenAI-compatible (LiteLLM)OpenAI-kompatibelenv varsOPENAI_BASE_URLDokumentation
Grok BuildOpenAI-compatibleOpenAI-kompatibelconfig.tomlcustom modelsDokumentation
Mistral VibeOpenAI-compatibleOpenAI-kompatibel~/.vibe/config.tomlprovidersDokumentation
MiMo CodeOpenAI-compatibleOpenAI-kompatibel/connect custom providerbase URL, API keyDokumentation
ForgeCodeOpenAI / AnthropicOpenAI-kompatibelsetup wizardbase URLDokumentation
CodebuffOpenAI-compatibleOpenAI-kompatibelsettingsbase URL, API keyDokumentation
IDEs und Erweiterungen
ClineOpenAI-compatibleOpenAI-kompatibelSettings → OpenAI CompatibleBase URL, API Key, Model IDDokumentation
Roo CodeOpenAI-compatibleOpenAI-kompatibelSettings → OpenAI CompatibleBase URL, API Key, Model IDDokumentation
Kilo CodeOpenAI-compatibleOpenAI-kompatibelSettings → OpenAI CompatibleBase URL, API Key, Model IDDokumentation
ContinueOpenAI-compatibleOpenAI-kompatibelconfig.yamlmodels[].apiBaseDokumentation
ZedOpenAI-compatibleOpenAI-kompatibelsettings.jsonlanguage_models.openai_compatible.<id>.api_urlDokumentation
CursorOpenAITeilweiseSettings → Models → Override OpenAI Base URLOverride OpenAI Base URLDokumentation
WindsurfOpenAI-compatibleOpenAI-kompatibelSettings → Models → BYOK / customBase URL, API KeyDokumentation
GitHub Copilot (BYOK)OpenAI-compatibleOpenAI-kompatibelManage Models → OpenAI-compatibleBase URL, API KeyDokumentation
Verwaltete Plattformen
WarpOpenAI / Anthropic / Gemini (BYOK)TeilweiseSettings → BYOKBYOK API keysDokumentation
Amazon Q Developer CLIMCPKein benutzerdefinierter EndpunktMCP server—Dokumentation
Devin—Kein benutzerdefinierter Endpunkt——Dokumentation

Wie das Gateway-Modell heißen sollte

Einige Harnesses pinnen ihre eigene Modell-ID und senden sie wortgetreu. Hat Ihr Gateway-Modell einen anderen Namen, liefert der erste Aufruf 404. Zwei Wege zur Angleichung:

Claude Code
①

Benennen Sie das Gateway-Modell genau so, wie der Harness es anfragt — ohne zusätzliche Konfiguration.

②

Oder überschreiben Sie den Harness, sodass er Ihren Gateway-Namen über seine Modell-Umgebungsvariable verwendet (z. B. ANTHROPIC_MODEL).

Gotchas

Der Harness pinnt seine eigene Modell-ID

Claude Code sendet seinen konfigurierten Standard (z. B. claude-opus-5 oder claude-sonnet-5) — nicht Ihren Gateway-Namen. Benennen Sie das Gateway-Modell entweder genau so, wie der Harness es anfragt, oder setzen Sie seine Modell-Umgebungsvariable (z. B. ANTHROPIC_MODEL) auf Ihren Gateway-Namen. Bei Abweichung → 404 model_not_found bei der ersten Nachricht.

Anthropic-Protokoll-Harnesses erwarten die Wurzel, nicht /v1

Die Basis-URL für Anthropic-artige Clients zeigt auf die Gateway-Wurzel (ohne /v1) — der Client hängt /v1/messages selbst an. Mit /v1 verdoppelt sich hier das Pfadsegment.

Benutzerdefinierte Codex-Provider benötigen wire_api="responses"

Die Codex CLI verlangt wire_api = "responses" für einen benutzerdefinierten [model_providers.*]-Block. Das Gateway implementiert /v1/responses nativ — richten Sie base_url darauf und setzen Sie env_key auf einen Gateway-Zugriffsschlüssel.

LiteLLM-basierte Harnesses wollen ein openai/-Modellpräfix

Aider, OpenHands und SWE-agent nutzen LiteLLM: Setzen Sie OPENAI_API_BASE auf das Gateway und geben Sie dem Modell ein openai/-Präfix (z. B. openai/gateway-model-name), damit LiteLLM es als OpenAI-kompatiblen Endpunkt routet.

Standard ist Abo-OAuth, nicht Ihr Schlüssel

Codex, Gemini CLI und Qwen Code verwenden standardmäßig den OAuth-/Abo-Login des Anbieters. Um über das Gateway zu routen, müssen Sie auf API-Schlüssel-Authentifizierung umstellen (Schlüssel + Basis-URL explizit setzen) — sonst umgeht der Agent das Gateway vollständig.

IDEs leiten Tool-/Vision-Unterstützung aus der Modell-ID ab

Cline / Roo / Kilo und andere entscheiden anhand des Modellnamens über Tool-Calling und Vision. Ein benutzerdefinierter Gateway-Name kann Function Calling deaktivieren — wenn Tool-Aufrufe fehlschlagen, prüfen Sie die Capability-Erkennungsregeln des Clients oder benennen Sie das Modell passend zu einer bekannten Familie.

Lange Inferenz fügt :keep-alive und _gateway_warning hinzu

Während langer Upstream-Inferenz gibt das Gateway SSE-Kommentarzeilen :keep-alive aus (harmlos — überspringen Sie Zeilen, die mit : beginnen), und bei einem Abbruch mitten im Stream fügt es ein Feld _gateway_warning ein, statt einen Fehler zu erzeugen, damit Harnesses wie Claude Code nicht die ganze Unterhaltung abbrechen.

Claude Code Auto-Modus: entscheiden Sie, wer das Sicherheitsurteil abgibt

Im Auto-Modus wartet Claude Code vor einer potenziell gefährlichen Aktion auf ein serverseitiges Urteil (ein safeguards-Feld in der Anfrage). Ist der Upstream das offizielle Anthropic, entsteht das Urteil innerhalb derselben Anfrage und das Gateway reicht es unverändert durch. Ist der Upstream ein Drittanbieter, der das Feld ignoriert, antwortet stattdessen das Gateway — und der ausgelieferte Standard (allow_all) gibt jede Aktion frei, was permissiver ist, als den Aufruf gar nicht zu beeinflussen. Geben Sie eine Route an ihren Upstream zurück, indem Sie "anthropic_server_safeguards": "upstream" in die extra_config dieses Upstreams schreiben; die Konsoleneinstellung ist nur für Administratoren.

# Every agent is one base_url + one access key away
export ANTHROPIC_BASE_URL="https://your-gateway.gatellm.io"   # Anthropic agents: root (no /v1)
export ANTHROPIC_API_KEY="<gateway access key>"

export OPENAI_API_BASE="https://your-gateway.gatellm.io/v1"   # OpenAI-compatible agents: /v1
export OPENAI_API_KEY="<gateway access key>"

# Codex CLI (~/.codex/config.toml) speaks the Responses protocol
# [model_providers.gatellm]
# base_url = "https://your-gateway.gatellm.io/v1"
# wire_api = "responses"

FAQ