Dokumentation
Qwen Code
Qwen Code speichert seine Endpunkte in einer einzigen Datei. Deklarieren Sie Kunavo einmal unter modelProviders, setzen Sie selectedType auf openai, und über die /model-Auswahl wechseln Sie mit einem Schlüssel zwischen Claude und GPT.
Qwen Code liest seine Endpunkte aus modelProviders in ~/.qwen/settings.json — ein Eintrag mit baseUrl und envKey bringt Claude und GPT in die /model-Auswahl.
{
"modelProviders": {
"openai": [
{
"id": "claude-sonnet-5",
"name": "Claude Sonnet 5 (Kunavo)",
"baseUrl": "https://api.kunavo.com/v1",
"description": "Kunavo, OpenAI-compatible",
"envKey": "KUNAVO_API_KEY"
}
]
},
"env": {
"KUNAVO_API_KEY": "sk-kn-..."
},
"security": {
"auth": {
"selectedType": "openai"
}
},
"model": {
"name": "claude-sonnet-5"
}
}/v1. Die Referenz zu den Modellanbietern erklärt es in einem Satz: Wenn ein Eintrag auf ein gehostetes OpenAI-kompatibles Gateway verweist, muss baseUrl auf den „/v1-Stamm“ der API zeigen und darf nicht den vollständigen /v1/chat/completions-Pfad enthalten, denn „das SDK fügt den Anfragepfad selbst an“. Jedes OPENAI_BASE_URL-Beispiel auf der Authentifizierungsseite endet auf dieselbe Weise. Enthält die Base URL die Route bereits, erhalten Sie einen 404 statt eines Authentifizierungsfehlers.realtimeOnly-Route ein DashScope-Endpunkt sein. Deshalb bleibt diese Funktion bei ihrem eigenen Schlüssel, unabhängig davon, wohin Sie das Chat-Modell leiten./auth genannt.sk-kn-) und füge ab $10 Guthaben hinzu – Aufrufe werden aus diesem Guthaben bezahlt, fehlgeschlagene Aufrufe werden nicht berechnet. Das Dashboard öffnet anschließend die Qwen Code-Einrichtung.Schritt für Schritt
- Erstellen Sie unter
/app/keyseinen Schlüssel und kopieren Sie ihn — er wird nur einmal angezeigt. - Öffnen Sie
~/.qwen/settings.json(legen Sie die Datei an, falls sie nicht vorhanden ist) und übernehmen Sie die vier obigen Blöcke. Die Dokumentation empfiehlt,modelProvidersin der Datei für den Benutzerbereich zu deklarieren, „um Merge-Konflikte zwischen Projekt- und Benutzereinstellungen zu vermeiden“. - Hinterlegen Sie den Schlüssel nach Möglichkeit an einer sichereren Stelle als
env. Qwen Code liest ihn ausprocess.env[envKey], und die Dokumentation ordnet die Quellen absteigend nach Priorität: zuerst eine Shell-export, dann eine.env-Datei und schließlich derenv-Block insettings.json– den sie als Speicherung im Klartext kennzeichnet. Der obigeenv-Block ist die kleinste funktionierende Konfiguration, aber nicht die beste dauerhafte Lösung. - Führen Sie
qwenaus. Wennsecurity.auth.selectedTypeaufopenaigesetzt ist undmodel.namemit einem von Ihnen deklariertenidübereinstimmt, ist kein interaktiver Schritt/autherforderlich – genau das sagt die Dokumentation ausdrücklich nach dem Beispiel mit einer Datei. - Geben Sie ihm eine Aufgabe, bei der eine Datei gelesen und bearbeitet werden muss, statt einer Begrüßung. Qwen Code ist ein Agent: Tool-Aufrufe und Streaming sollten beim ersten Lauf geprüft werden, denn sie würden bei einem Endpunkt, der nur teilweise kompatibel ist, als Erstes fehlschlagen.
- Fügen Sie weitere Einträge unter
modelProviders.openaihinzu, um Modelle zur Laufzeit mit/modelzu wechseln. Änderungen daran werden in einer laufenden Sitzung sofort neu geladen;providerProtocolwird beim Start einmal eingelesen und erfordert einen Neustart.
Abgeglichen mit Authentifizierungsseite von Qwen Code, Option 4: API-Schlüssel (flexibel) am 21. September 2026. Einstellungen von Drittanbietern können sich ändern; wenn ein Feldname hier nicht mehr mit deiner Ansicht übereinstimmt, ist diese Seite maßgeblich, nicht diese hier.
Vor dem Debugging des Clients prüfen
Eine Anfrage klärt, ob der Fehler am Endpunkt, am Schlüssel oder an der Konfigurationsdatei liegt. Wenn diese Anfrage JSON zurückgibt, funktionieren dieselbe Basis-URL und derselbe Schlüssel in Qwen Code.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."Welche Modell-ID in das Feld gehört
Jedes Textmodell ist über eine Modell-ID erreichbar – die aktuelle Liste findest du unter GET /v1/models, den Katalog mit Preisen auf der Modellseite. Die Tarife sind USD pro 1 Mio. Token, Eingabe / Ausgabe.
| Modell-ID | Kunavo: Ein- und Ausgabe | Wo es in Qwen Code hineinpasst |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | das standardmäßig verwendete Modell – legen Sie es als model.name fest |
claude-opus-5 | $3.50 / $17.50 | ein Plan, bei dem ein Fehler teuer wäre |
claude-haiku-4-5 | $0.70 / $3.50 | günstige Durchläufe: Triage, Zusammenfassungen und der Ablauf, der den ganzen Tag läuft |
gpt-5-6-sol | $2.00 / $12.00 | eine zweite Meinung aus einer anderen Modellfamilie, mit demselben Schlüssel und derselben baseUrl |
gpt-5-6-terra | $0.70 / $4.20 | Lesen langer Kontexte, weiterhin über den openai-Protokollschlüssel |
Drei Punkte, die in der Dokumentation geklärt werden und bei denen viele falsch liegen
Diese Angaben stammen von der oben verlinkten Authentifizierungsseite und der Referenz zu den Modellanbietern. Jede davon kostet echte Zeit bei der Fehlersuche, wenn man sie nur annimmt, statt nachzulesen.
- Ein Eintrag unter
modelProvidershat Vorrang vor den CLI-Flags. Die dokumentierte Reihenfolge, absteigend nach Priorität: zuerst die in der laufenden Sitzung über/authvorgenommenen Überschreibungen, dann dieenvKeydes ausgewählten Modellanbieters, danach CLI-Argumente wie--openai-api-key, anschließend Umgebungsvariablen und zuletztsecurity.auth.apiKeyin den Einstellungen. Die meisten erwarten, dass das Flag Vorrang hat. Das ist nicht der Fall – deshalb kann es so aussehen, als würde--openai-base-urlignoriert. security.auth.apiKeyundsecurity.auth.baseUrlsind veraltet. Die Referenz bestätigt das und empfiehlt die Migration zumodelProviders. Wenn ein älteres Tutorial Sie auffordert, diese beiden Schlüssel zu bearbeiten, führt es Sie über einen Weg, der ausläuft.wireApilegt das Anforderungsformat fest; eine Abweichung wird nicht erkannt. Ohne diese Angabe wird Chat Completions verwendet, wie im obigen Block. Für"wireApi": "responses"ist ein tatsächlich Responses-kompatibler Endpunkt erforderlich, und laut Dokumentation gibt es weder eine Erkennung des Endpunkts noch einen automatischen Fallback, wenn eine Anfrage fehlschlägt. Kunavo unterstützt sowohl/v1/responsesals auch/v1/chat/completions, aber keine der beiden Kombinationen wurde auf dieser Seite getestet. Beginnen Sie daher mit der Standardeinstellung.
Wenn Sie wegen des kostenlosen Tarifs hier sind
Ein Großteil der Informationen über Qwen Code beschreibt weiterhin eine Qwen-OAuth-Anmeldung mit einem kostenlosen Tageskontingent. Diese Option gibt es nicht mehr: Laut Dokumentation wurde der kostenlose Tarif am 15. April 2026 eingestellt, und Qwen OAuth ist im Dialogfeld /auth nicht mehr als Option auswählbar. Aktuell werden dort drei Optionen aufgeführt: Alibaba ModelStudio – mit Coding Plan, Token Plan und Standard API Key im Untermenü –, Drittanbieter und Benutzerdefinierter Anbieter, beschrieben als Verbindung mit „einem lokalen Server, Proxy oder nicht unterstützten Anbieter“. Kunavo ist die dritte dieser Optionen. Beachten Sie außerdem, dass die Elemente im ModelStudio-Untermenü keine drei Zahlungsmöglichkeiten für dieselbe Rechnung sind: Jedes hat seinen eigenen Host und Schlüssel, und ein Coding-Plan-Schlüssel funktioniert nicht mit einem Token-Plan-Host.
Häufig gestellte Fragen
Wie richte ich Qwen Code auf einen benutzerdefinierten API-Endpunkt aus?
Deklarieren Sie den Endpunkt unter modelProviders in ~/.qwen/settings.json. Verwenden Sie den Schlüssel "openai" für jeden OpenAI-kompatiblen Host, geben Sie dem Modelleinstieg eine id, eine baseUrl und einen envKey, der die Umgebungsvariable mit Ihrem API-Schlüssel benennt, und setzen Sie dann security.auth.selectedType auf "openai" sowie model.name auf diese id. Führen Sie qwen aus; es startet über diese Route, ohne dass ein interaktiver /auth-Schritt nötig ist. Alternativ können Sie die Umgebungsvariablen OPENAI_API_KEY, OPENAI_BASE_URL und OPENAI_MODEL verwenden. Die Dokumentation empfiehlt jedoch die Einstellungsdatei, weil sie Shells überdauert und mehrere Endpunkte gleichzeitig unterstützt.
Muss Qwen Code bei baseUrl am Ende /v1 enthalten?
Ja, bei einem OpenAI-kompatiblen Endpunkt. In der Referenz zu den Modellanbietern von Qwen Code wird empfohlen, baseUrl auf die /v1-Wurzel der API zu setzen, zum Beispiel https://gateway.example.com/v1, und nicht auf den vollständigen Pfad /v1/chat/completions, da das SDK den Anfragepfad selbst anhängt. Für Kunavo lautet der Wert https://api.kunavo.com/v1. Wenn Sie den Pfad am Ende stehen lassen, erhalten Sie einen 404- statt eines Authentifizierungsfehlers – so äußert sich dieses Problem üblicherweise.
Ist der kostenlose Qwen-Code-Tarif noch verfügbar?
Nein. In der eigenen Dokumentation von Qwen Code ist vermerkt, dass der kostenlose Qwen-OAuth-Tarif am 15. April 2026 eingestellt wurde. Qwen OAuth ist außerdem im Dialogfeld /auth nicht mehr als Option auswählbar. In der Dokumentation steht auch, dass Qwen-OAuth-Modelle fest codiert sind und nicht über modelProviders überschrieben werden können. Daher lässt sich der alte Weg nicht einfach auf einen anderen Endpunkt umleiten. Verfügbar sind weiterhin Alibaba ModelStudio, ein integrierter Drittanbieter oder ein selbst konfigurierter benutzerdefinierter Endpunkt.
Kann Qwen Code anstelle von Qwen auch Claude- oder GPT-Modelle ausführen?
Ja. In der Protokolltabelle von Qwen Code ist der Anbieterschlüssel openai für jeden OpenAI-kompatiblen Endpunkt vorgesehen. Die Modell-ID in einem modelProviders-Eintrag wird direkt an die konfigurierte baseUrl weitergegeben und daher an diesem Endpunkt aufgelöst, nicht im Client. Eine Claude- oder GPT-ID funktioniert also, sofern der Endpunkt sie bereitstellt. Kunavo stellt Claude- und GPT-IDs über seine OpenAI-kompatible Schnittstelle bereit. Diese Konfiguration wurde anhand der Dokumentation des Anbieters veröffentlicht, nicht aufgrund eines Testlaufs.
Warum ignoriert Qwen Code --openai-base-url?
Weil ein modelProviders-Eintrag Vorrang hat. Laut dokumentierter Rangfolge der Anmeldedaten stehen zuerst Überschreibungen, die über /auth in der laufenden Sitzung eingegeben wurden, an zweiter Stelle baseUrl und envKey des ausgewählten Modellanbieters und an dritter Stelle CLI-Argumente; danach folgen Umgebungsvariablen und Einstellungen. Wenn ein Anbietereintrag ausgewählt ist, hat dessen baseUrl Vorrang vor dem Flag. Bearbeiten Sie entweder diesen Eintrag – Änderungen an modelProviders werden in einer laufenden Sitzung sofort neu geladen – oder entfernen Sie ihn, wenn das Flag greifen soll.