Skip to Content
BenutzerhandbuchKonfigurationEinstellungen

Qwen Code Konfiguration

Tip

Authentifizierung / API-Schlüssel: Authentifizierung (API-Key, Alibaba Cloud Coding Plan) und authentifizierungsbezogene Umgebungsvariablen (wie OPENAI_API_KEY) sind in Authentifizierung dokumentiert.

Note

Hinweis zum neuen Konfigurationsformat: Das Format der settings.json-Datei wurde auf ein neues, übersichtlicheres Format aktualisiert. Das alte Format wird automatisch migriert. Qwen Code bietet mehrere Möglichkeiten, sein Verhalten zu konfigurieren, darunter Umgebungsvariablen, Kommandozeilenargumente und Einstellungsdateien. Dieses Dokument beschreibt die verschiedenen Konfigurationsmethoden und verfügbaren Einstellungen.

Konfigurationsebenen

Die Konfiguration wird in der folgenden Prioritätsreihenfolge angewendet (niedrigere Nummern werden von höheren Nummern überschrieben):

EbeneKonfigurationsquelleBeschreibung
1StandardwerteIm Programm fest codierte Standardwerte
2System-StandarddateiSystemweite Standardeinstellungen, die durch andere Einstellungsdateien überschrieben werden können
3BenutzereinstellungsdateiGlobale Einstellungen für den aktuellen Benutzer
4ProjekteinstellungsdateiProjektspezifische Einstellungen
5SystemeinstellungsdateiSystemweite Einstellungen, die alle anderen Einstellungsdateien überschreiben
6UmgebungsvariablenSystemweite oder sitzungsspezifische Variablen, möglicherweise aus .env-Dateien geladen
7KommandozeilenargumenteWerte, die beim Start der CLI übergeben werden

Einstellungsdateien

Qwen Code verwendet JSON-Einstellungsdateien für die dauerhafte Konfiguration. Es gibt vier Speicherorte für diese Dateien:

DateitypSpeicherortGültigkeitsbereich
System-StandarddateiLinux: /etc/qwen-code/system-defaults.json
Windows: C:\ProgramData\qwen-code\system-defaults.json
macOS: /Library/Application Support/QwenCode/system-defaults.json
Der Pfad kann mit der Umgebungsvariablen QWEN_CODE_SYSTEM_DEFAULTS_PATH überschrieben werden.
Bietet eine Basisebene systemweiter Standardeinstellungen. Diese Einstellungen haben die niedrigste Priorität und sollen von Benutzer-, Projekt- oder System-Override-Einstellungen überschrieben werden.
Benutzereinstellungsdatei~/.qwen/settings.json (wobei ~ Ihr Benutzerverzeichnis ist).Gilt für alle Qwen Code-Sitzungen des aktuellen Benutzers.
Projekteinstellungsdatei.qwen/settings.json im Stammverzeichnis Ihres Projekts.Gilt nur, wenn Qwen Code von diesem bestimmten Projekt aus ausgeführt wird. Projekteinstellungen überschreiben Benutzereinstellungen.
SystemeinstellungsdateiLinux: /etc/qwen-code/settings.json
Windows: C:\ProgramData\qwen-code\settings.json
macOS: /Library/Application Support/QwenCode/settings.json
Der Pfad kann mit der Umgebungsvariablen QWEN_CODE_SYSTEM_SETTINGS_PATH überschrieben werden.
Gilt für alle Qwen Code-Sitzungen auf dem System, für alle Benutzer. Systemeinstellungen überschreiben Benutzer- und Projekteinstellungen. Kann für Systemadministratoren in Unternehmen nützlich sein, um Kontrolle über die Qwen Code-Konfigurationen der Benutzer zu haben.
Note

Hinweis zu Umgebungsvariablen in Einstellungen: Zeichenfolgenwerte in Ihren settings.json-Dateien können mittels $VAR_NAME- oder ${VAR_NAME}-Syntax auf Umgebungsvariablen verweisen. Diese Variablen werden beim Laden der Einstellungen automatisch aufgelöst. Wenn Sie z. B. eine Umgebungsvariable MY_API_TOKEN haben, können Sie sie in settings.json wie folgt verwenden: "apiKey": "$MY_API_TOKEN".

Das .qwen-Verzeichnis in Ihrem Projekt

Zusätzlich zu einer Projekteinstellungsdatei kann das .qwen-Verzeichnis eines Projekts andere projektspezifische Dateien enthalten, die für den Betrieb von Qwen Code relevant sind, z. B.:

Migrationskonfiguration

Qwen Code migriert automatisch alte Konfigurationseinstellungen in das neue Format. Alte Einstellungsdateien werden vor der Migration gesichert. Die folgenden Einstellungen wurden von negativer (disable*) zu positiver (enable*) Benennung umbenannt:

Alte EinstellungNeue EinstellungAnmerkungen
disableAutoUpdate + disableUpdateNaggeneral.enableAutoUpdateIn einer einzigen Einstellung zusammengefasst
disableLoadingPhrasesui.accessibility.enableLoadingPhrases
disableFuzzySearchcontext.fileFiltering.enableFuzzySearch
disableCacheControlmodel.generationConfig.enableCacheControl
Note

Invertierung von booleschen Werten: Bei der Migration werden boolesche Werte invertiert (z. B. wird disableAutoUpdate: true zu enableAutoUpdate: false).

Konsolidierungsrichtlinie für disableAutoUpdate und disableUpdateNag

Wenn beide alten Einstellungen mit unterschiedlichen Werten vorhanden sind, folgt die Migration dieser Richtlinie: Wenn entweder disableAutoUpdate oder disableUpdateNag true ist, dann wird enableAutoUpdate zu false:

disableAutoUpdatedisableUpdateNagMigrierter enableAutoUpdate
falsefalsetrue
falsetruefalse
truefalsefalse
truetruefalse

Verfügbare Einstellungen in settings.json

Die Einstellungen sind in Kategorien organisiert. Die meisten Einstellungen sollten in das entsprechende Objekt der obersten Kategorie in Ihrer settings.json-Datei eingefügt werden. Einige wenige Einstellungen der obersten Ebene wie proxy und plansDirectory bleiben aus Kompatibilitätsgründen direkte Stammschlüssel.

general

EinstellungTypBeschreibungStandard
general.preferredEditorstringDer bevorzugte Editor zum Öffnen von Dateien.undefined
general.vimModebooleanVim-Tastenkombinationen aktivieren.false
general.enableAutoUpdatebooleanAutomatische Update-Prüfungen und -Installationen beim Start aktivieren.true
general.showSessionRecapbooleanBeim Zurückkehren in das Terminal nach einer Abwesenheit automatisch eine einzeilige Zusammenfassung („wo Sie aufgehört haben“) anzeigen. Standardmäßig deaktiviert. Verwenden Sie /recap, um die Zusammenfassung unabhängig von dieser Einstellung manuell auszulösen.false
general.sessionRecapAwayThresholdMinutesnumberMinuten, die das Terminal abgedunkelt sein muss, bevor beim Fokussieren eine automatische Zusammenfassung ausgelöst wird. Wird nur verwendet, wenn showSessionRecap aktiviert ist.5
general.gitCoAuthor.commitbooleanFügt einen Co-authored-by-Trailer zu Git-Commit-Nachrichten hinzu UND hängt eine pro-Datei-KI-Zuschreibungs-Git-Notiz (refs/notes/ai-attribution) für Commits an, die über Qwen Code getätigt wurden. Deaktivieren überspringt beides.true
general.gitCoAuthor.prbooleanFügt eine Qwen-Code-Zuschreibungszeile an Pull-Request-Beschreibungen an, wenn gh pr create ausgeführt wird.true
general.defaultFileEncodingstringStandardcodierung für neue Dateien. Verwenden Sie "utf-8" (Standard) für UTF-8 ohne BOM oder "utf-8-bom" für UTF-8 mit BOM. Ändern Sie dies nur, wenn Ihr Projekt explizit eine BOM erfordert."utf-8"
general.cleanupPeriodDaysnumberTage, die ~/.qwen/file-history/-Sitzungssicherungen für /rewind aufbewahrt werden sollen. Ältere Sicherungen werden durch einen Hintergrundprozess entfernt, der höchstens einmal pro Tag läuft. 0 = minimale Aufbewahrungsdauer (~1 Stunde): hält Sitzungen, die in der letzten Stunde berührt wurden, sowie die aktuell aktive. Änderungen werden nach einem Neustart wirksam.30
general.languageenumSprache für die Benutzeroberfläche. Verwenden Sie "auto", um die Sprache aus den Systemeinstellungen zu ermitteln, oder einen Sprachcode (z. B. "zh-CN", "fr"). Benutzerdefinierte Codes können hinzugefügt werden, indem JS-Gebietsschemadateien in ~/.qwen/locales/ abgelegt werden. Siehe i18n. Erfordert Neustart."auto"
general.outputLanguagestringSprache für die Modellausgabe. Verwenden Sie "auto", um die Sprache aus den Systemeinstellungen zu ermitteln, oder legen Sie eine bestimmte Sprache fest. Erfordert Neustart."auto"
general.dynamicCommandTranslationbooleanKI-Übersetzung von Beschreibungen dynamischer Schrägstrichbefehle aktivieren. Wenn deaktiviert, behalten dynamische Befehle ihre ursprünglichen Beschreibungen und überspringen Übersetzungsmodellaufrufe.false

output

EinstellungTypBeschreibungStandardMögliche Werte
output.formatstringDas Format der CLI-Ausgabe."text""text", "json"
output.showTimestampsbooleanZeigt vor jeder Assistentenantwort einen [HH:MM:SS]-Zeitstempel an.false

ui

EinstellungTypBeschreibungStandard
ui.themestringDas Farbthema für die Benutzeroberfläche. Siehe Themes für verfügbare Optionen."Qwen Dark"
ui.customThemesobjectBenutzerdefinierte Themen-Definitionen.{}
ui.statusLineobjectBenutzerdefinierte Statuszeilen-Konfiguration. Unterstützt die Optionen command, refreshInterval, respectUserColors und hideContextIndicator. Siehe Status Line.undefined
ui.hideWindowTitlebooleanTitelzeile des Fensters ausblenden.false
ui.hideTipsbooleanAlle Tipps (Start- und Nach-Antwort-Tipps) in der Benutzeroberfläche ausblenden. Siehe Contextual Tips.false
ui.hideBannerbooleanDas ASCII-Logo und das Info-Panel beim Start ausblenden. Tipps und Chat-Eingabe werden weiterhin angezeigt, sofern nicht auch ui.hideTips gesetzt ist.false
ui.customBannerTitlestringErsetzt den Standardtitel >_ Qwen Code im Banner-Info-Panel. Das Versions-Suffix (vX.Y.Z) wird immer angehängt; Authentifizierungs-, Modell- und Pfadzeilen sind nicht betroffen. Bereinigt; auf 80 Zeichen begrenzt.""
ui.customBannerSubtitlestringOptionale Untertitelzeile, die zwischen dem Bannertitel und der Authentifizierungs-/Modellzeile anstelle der leeren Abstandszeile eingefügt wird. Bereinigt; auf 160 Zeichen begrenzt. Leer (Standard) behält die ursprüngliche leere Abstandszeile bei.""
ui.customAsciiArtstring | objectErsetzt das QWEN-ASCII-Logo im Banner. Akzeptiert einen Inline-String (für beide Breitenstufen verwendet), { "path": "./brand.txt" } (relative Pfade werden relativ zum Verzeichnis der zugehörigen Einstellungsdatei aufgelöst; einmal beim Start mit O_NOFOLLOW auf POSIX gelesen, auf 64 KB begrenzt) oder { "small": ..., "large": ... } für eine breitenabhängige Auswahl. Bereinigt; auf 200 Zeilen × 200 Spalten pro Stufe begrenzt.undefined
ui.showLineNumbersbooleanZeilennummern in Codeblöcken in der CLI-Ausgabe anzeigen.true
ui.renderModestringStandard-Markdown-Anzeigemodus. Verwenden Sie "render" für reichhaltige visuelle Vorschauen oder "raw", um standardmäßig quellorientiertes Markdown anzuzeigen. Umschalten während einer Sitzung mit Alt/Option+M; unter macOS muss das Terminal Option als Meta senden. Siehe Markdown Rendering."render"
ui.showCitationsbooleanZitate für generierten Text im Chat anzeigen.false
ui.history.collapseOnResumebooleanGibt an, ob der Verlauf beim Fortsetzen einer Sitzung standardmäßig eingeklappt werden soll. Kann über /history collapse-on-resume und /history expand-on-resume umgeschaltet werden.false
ui.compactModebooleanTool-Ausgabe und Gedankengänge ausblenden, um eine übersichtlichere Ansicht zu erhalten. Umschalten mit Strg+O während einer Sitzung oder über das Einstellungsdialogfeld. Tool-Genehmigungsaufforderungen werden auch im kompakten Modus nie ausgeblendet. Die Einstellung bleibt über Sitzungen hinweg erhalten.false
ui.shellOutputMaxLinesnumberMaximale Anzahl von Shell-Ausgabezeilen, die inline angezeigt werden. Auf 0 setzen, um die Begrenzung zu deaktivieren und die vollständige Ausgabe anzuzeigen. Ausgeblendete Zeilen werden über den Indikator +N lines sichtbar gemacht. Fehler, von Benutzern initiierte Befehle mit !-Präfix, bestätigende Tools und fokussierte eingebettete Shells zeigen immer die vollständige Ausgabe an.5
ui.enableWelcomeBackbooleanZeigt das „Willkommen zurück“-Dialogfeld an, wenn Sie zu einem Projekt mit Gesprächsverlauf zurückkehren. Wenn aktiviert, erkennt Qwen Code automatisch, ob Sie zu einem Projekt mit einer zuvor generierten Projektzusammenfassung (.qwen/PROJECT_SUMMARY.md) zurückkehren, und zeigt ein Dialogfeld an, in dem Sie entweder das vorherige Gespräch fortsetzen oder von vorne beginnen können. Wenn Sie Neue Chat-Sitzung starten wählen, wird diese Auswahl für das aktuelle Projekt gespeichert, bis sich die Projektzusammenfassung ändert. Diese Funktion arbeitet mit dem Befehl /summary und dem Bestätigungsdialog zum Beenden zusammen.true
ui.accessibility.enableLoadingPhrasesbooleanLade-Sprüche aktivieren (für Barrierefreiheit deaktivieren).true
ui.accessibility.screenReaderbooleanAktiviert den Bildschirmlesemodus, der die TUI für eine bessere Kompatibilität mit Bildschirmlesegeräten anpasst.false
ui.customWittyPhrasesarray of stringsEine Liste benutzerdefinierter Sprüche, die während Ladezuständen angezeigt werden. Wenn angegeben, durchläuft die CLI diese Sprüche anstelle der Standard-Sprüche.[]
ui.showResponseTokensPerSecondbooleanZeigt eine Live-Schätzung der Tokens pro Sekunde neben dem Antwort-Token-Zähler an, während das Modell streamt. Dies ist ein Hinweis auf die Generierungsgeschwindigkeit, keine ETA oder ein Fertigstellungsprozentsatz. Wirkt in der nächsten Sitzung.false
ui.enableFollowupSuggestionsbooleanAktiviert Follow-up-Vorschläge, die vorhersagen, was Sie als Nächstes eingeben möchten, nachdem das Modell geantwortet hat. Vorschläge erscheinen als Platzhaltertext und werden mit Tabulator, Eingabetaste oder Rechtspfeil akzeptiert (die den Eingabebereich füllen – sie senden nicht automatisch ab). Standardmäßig aktiviert; setzen Sie auf false, um zu deaktivieren.true
ui.enableCacheSharingbooleanVerwendet cache-bewusste gegabelte Abfragen für die Vorschlagsgenerierung. Reduziert Kosten bei Anbietern, die Präfix-Caching unterstützen (experimentell).true
ui.enableSpeculationbooleanFührt akzeptierte Vorschläge spekulativ aus, bevor sie abgeschickt werden. Ergebnisse erscheinen sofort beim Akzeptieren (experimentell).false

ide

EinstellungTypBeschreibungStandard
ide.enabledbooleanAktiviert den IDE-Integrationsmodus.false
ide.hasSeenNudgebooleanGibt an, ob der Nutzer den IDE-Integrationshinweis gesehen hat.false

privacy

EinstellungTypBeschreibungStandard
privacy.usageStatisticsEnabledbooleanAktiviert die Erfassung von Nutzungsstatistiken.true

model

EinstellungTypBeschreibungStandard
model.namestringDas Qwen-Modell, das für Unterhaltungen verwendet werden soll.undefined
model.maxSessionTurnsnumberMaximale Anzahl von Benutzer-/Modell-/Tool-Durchgängen, die in einer Sitzung behalten werden. -1 bedeutet unbegrenzt.-1
model.maxWallTimeSecondsnumberWanduhr-Budget für unbeaufsichtigte / automatisierte Ausführungen in Sekunden. -1 bedeutet unbegrenzt. Kann pro Aufruf überschrieben werden mit --max-wall-time, das eine positive Dauer erfordert (90, 30s, 5m, 1h, 1.5h); das Minimum beträgt 1 Sekunde – Werte unter einer Sekunde (500ms, 0.5) werden als Tippfehler abgelehnt. Weglassen des Flags führt zur Verwendung dieser Einstellung. Bricht mit Exit-Code 55 ab, wenn das Budget überschritten wird.-1
model.maxToolCallsnumberKumuliertes Tool-Aufruf-Budget für eine Ausführung (zählt jedes ausgeführte Tool, Erfolg oder Fehlschlag; structured_output unter --json-schema ist ausgenommen). -1 bedeutet unbegrenzt; 0 bedeutet „keine Tool-Aufrufe erlaubt“. Gedeckelt auf 1.000.000, um Tippfehler abzufangen. Kann überschrieben werden mit --max-tool-calls. Bricht mit Exit-Code 55 ab, wenn das Budget überschritten wird.-1
model.generationConfigobjectErweiterte Überschreibungen, die an den zugrunde liegenden Inhaltsgenerator weitergegeben werden. Unterstützt Anforderungssteuerungen wie timeout, maxRetries, enableCacheControl, splitToolMedia (Standard true; teilt von Tools zurückgegebene Medien – einschließlich der von der integrierten Funktion read_file gelesenen Bilder – in eine nachfolgende Benutzernachricht auf, anstatt in die protokollverletzende role: "tool"-Nachricht, sodass strenge OpenAI-kompatible Server wie doubao / new-api / LM Studio sie sehen können; setzen Sie auf false, um das alte Einbetten im Tool wiederherzustellen), toolResultContentFormat (Standard "parts"; setzen Sie "string" nur für alte OpenAI-kompatible Laufzeiten, deren Tool-Vorlagen Textinhalte ignorieren), contextWindowSize (überschreibt die Kontextfenstergröße des Modells), modalities (überschreibt automatisch erkannte Eingabemodalitäten), customHeaders (benutzerdefinierte HTTP-Header für API-Anfragen) und extra_body (zusätzliche Körperparameter nur für OpenAI-kompatible API-Anfragen), zusammen mit Feineinstellungsoptionen unter samplingParams (z. B. temperature, top_p, max_tokens). Lassen Sie die Einstellung ungesetzt, um sich auf die Standardwerte des Anbieters zu verlassen.undefined
model.chatCompression.contextPercentageThresholdnumberENTFERNT. Die automatische Verdichtung verwendet jetzt eine dreistufige Schweillenleiter (Warnung / automatisch / hart), die intern aus dem Kontextfenster des Modells über die Funktion computeThresholds() berechnet wird – nicht mehr benutzerkonfigurierbar. Das Setzen dieses Feldes in settings.json wird stillschweigend ignoriert (keine Startwarnung). Derzeit gibt es keinen Ersatz für „Komprimierung vollständig deaktivieren“ – die reaktive Überlaufwiederherstellung bleibt das Sicherheitsnetz auf der API-Ebene, falls die Komprimierung selbst fehlschlägt. (Siehe PR #4345 / docs/design/auto-compaction-threshold-redesign.md für die Begründung des Redesigns.)N/A
model.chatCompression.maxRecentFilesToRetainnumberAnzahl der zuletzt bearbeiteten Dateien, deren aktueller Inhalt nach der automatischen Verdichtung wiederhergestellt wird (eingebettet, wenn klein, sonst durch Pfad referenziert). 0 stellt keine wiederher. Umgebungsüberschreibung: QWEN_COMPACT_MAX_RECENT_FILES.5
model.chatCompression.maxRecentImagesToRetainnumberAnzahl der zuletzt verwendeten Bilder (Tool-Screenshots / Benutzereinfügungen), die nach der automatischen Verdichtung wiederhergestellt werden. 0 stellt keine wiederher. Umgebungsüberschreibung: QWEN_COMPACT_MAX_RECENT_IMAGES.3
model.chatCompression.enableScreenshotTriggerbooleanWenn true, wird die automatische Verdichtung auch ausgelöst, sobald die Anzahl der von Tools zurückgegebenen Bilder im Verlauf den Schwellenwert screenshotTriggerThreshold erreicht, unabhängig von der Token-Nutzung – gedacht für Computer-Nutzungssitzungen, bei denen häufige Screenshots die Modellaufmerksamkeit verwässern. Zählt nur Bilder, die in Tool-Ergebnissen zurückgegeben werden, nicht vom Benutzer eingefügte Bilder. Umgebungsüberschreibung: QWEN_COMPACT_SCREENSHOT_TRIGGER (1/true/0/false).true
model.chatCompression.screenshotTriggerThresholdnumberAnzahl der von Tools zurückgegebenen Bilder, bei deren Erreichen oder Überschreiten der Screenshot-Trigger ausgelöst wird (nur wenn enableScreenshotTrigger aktiviert ist). Die Verdichtung setzt den Zähler zurück – überlebende Bilder werden als Top-Level-Teile wieder eingebettet, die der Trigger nicht zählt – sodass er nicht sofort erneut auslöst. Umgebungsüberschreibung: QWEN_COMPACT_SCREENSHOT_THRESHOLD.50
model.skipNextSpeakerCheckbooleanÜberspringt die Überprüfung des nächsten Sprechers.true
model.skipLoopDetectionbooleanDeaktiviert die Erkennung von Streaming-Schleifen. Standardmäßig true (Schleifenerkennung wird übersprungen), um Fehlalarme zu vermeiden, die legitime Workflows unterbrechen. Setzen Sie auf false, um die Streaming-Schleifenerkennung zu aktivieren – nützlich als Sicherheitsmaßnahme in unbeaufsichtigten / nicht-interaktiven Ausführungen, bei denen wiederholte Blockaden sonst das Budget verschwenden können.true
model.skipStartupContextbooleanÜberspringt das Senden des Start-Arbeitsbereichskontexts (Umgebungszusammenfassung und Bestätigung) zu Beginn jeder Sitzung. Aktivieren Sie diese Option, wenn Sie Kontext lieber manuell bereitstellen oder Token beim Start sparen möchten.false
model.enableOpenAILoggingbooleanAktiviert die Protokollierung von OpenAI-API-Aufrufen zur Fehlersuche und Analyse. Wenn aktiviert, werden API-Anfragen und -Antworten in JSON-Dateien protokolliert.false
model.openAILoggingDirstringBenutzerdefinierter Verzeichnispfad für OpenAI-API-Protokolle. Falls nicht angegeben, wird standardmäßig logs/openai im aktuellen Arbeitsverzeichnis verwendet. Unterstützt absolute Pfade, relative Pfade (vom aktuellen Arbeitsverzeichnis aus aufgelöst) und ~-Expansion (Home-Verzeichnis).undefined
Beispiel model.generationConfig:
{ "model": { "generationConfig": { "timeout": 60000, "contextWindowSize": 128000, "modalities": { "image": true }, "enableCacheControl": true, "toolResultContentFormat": "parts", "customHeaders": { "X-Client-Request-ID": "req-123" }, "extra_body": { "enable_thinking": true }, "samplingParams": { "temperature": 0.2, "top_p": 0.8, "max_tokens": 1024 } } } }

max_tokens (adaptive Output-Token):

Wenn samplingParams.max_tokens nicht gesetzt ist, verwendet Qwen Code eine adaptive Output-Token-Strategie, um die GPU-Ressourcennutzung zu optimieren:

  1. Anfragen beginnen mit einem Standard-Limit von 8K Output-Token
  2. Wenn die Antwort abgeschnitten wird (das Modell erreicht das Limit), wiederholt Qwen Code automatisch mit 64K Token
  3. Die partielle Ausgabe wird verworfen und durch die vollständige Antwort des Wiederholungsversuchs ersetzt

Dies ist für Benutzer transparent – Sie können kurzzeitig einen Wiederholungsindikator sehen, falls eine Eskalation auftritt. Da 99 % der Antworten unter 5K Token liegen, kommt der Wiederholungsversuch selten vor (<1 % der Anfragen).

Um dieses Verhalten zu überschreiben, setzen Sie entweder samplingParams.max_tokens in Ihren Einstellungen oder verwenden Sie die Umgebungsvariable QWEN_CODE_MAX_OUTPUT_TOKENS.

toolResultContentFormat:

Steuert, wie reine Text-Tool-Ergebnisse in OpenAI-kompatiblen Anfragen serialisiert werden. Der Standardwert "parts"" behält die übliche Content-Part-Array-Struktur bei. Setzen Sie "string" nur für Legacy-OpenAI-kompatible Laufzeiten, deren Tool-Vorlagen Text-Content-Parts ignorieren, wie z. B. ältere GLM-5.1 vLLM/SGLang-Vorlagen. Von Tools zurückgegebene Medien werden weiterhin von splitToolMedia gesteuert.

contextWindowSize:

Überschreibt die Standard-Kontextfenstergröße für das ausgewählte Modell. Qwen Code bestimmt das Kontextfenster anhand integrierter Standardwerte basierend auf dem Modellnamen-Matching, mit einem konstanten Fallback-Wert. Verwenden Sie diese Einstellung, wenn das effektive Kontextlimit eines Anbieters von Qwen Codes Standard abweicht. Dieser Wert definiert die angenommene maximale Kontextkapazität des Modells, nicht ein Token-Limit pro Anfrage.

Wenn das ausgewählte Modell in modelProviders definiert ist, setzen Sie contextWindowSize in den generationConfig dieses Anbietereintrags, nicht im übergeordneten model.generationConfig. Provider-Modell-Einträge sind versiegelt, sodass übergeordnete Generierungseinstellungen fehlende Provider-Felder nicht auffüllen.

modalities:

Überschreibt die automatisch erkannten Eingabemodalitäten für das ausgewählte Modell. Qwen Code erkennt automatisch unterstützte Modalitäten (Bild, PDF, Audio, Video) basierend auf Mustervergleichen des Modellnamens. Verwenden Sie diese Einstellung, wenn die automatische Erkennung falsch ist – z. B. um pdf für ein Modell zu aktivieren, das es unterstützt, aber nicht erkannt wird. Format: { "image": true, "pdf": true, "audio": true, "video": true }. Lassen Sie einen Schlüssel weg oder setzen Sie ihn auf false für nicht unterstützte Typen.

customHeaders:

Ermöglicht das Hinzufügen benutzerdefinierter HTTP-Header zu allen API-Anfragen. Dies ist nützlich für Anfrageverfolgung, Überwachung, API-Gateway-Routing oder wenn verschiedene Modelle unterschiedliche Header benötigen. Für Provider-Modelle definieren Sie customHeaders in modelProviders[].generationConfig.customHeaders. Für Laufzeitmodelle ohne passenden Provider-Eintrag definieren Sie es in model.generationConfig.customHeaders. Es findet kein Merging zwischen den beiden Ebenen statt.

Das Feld extra_body ermöglicht das Hinzufügen benutzerdefinierter Parameter zum Anfragebody, der an die API gesendet wird. Dies ist nützlich für anbieterspezifische Optionen, die nicht von den Standardkonfigurationsfeldern abgedeckt werden. Hinweis: Dieses Feld wird nur für OpenAI-kompatible Provider (openai, qwen-oauth) unterstützt. Für Anthropic- und Gemini-Provider wird es ignoriert. Für Provider-Modelle definieren Sie extra_body in modelProviders[].generationConfig.extra_body. Für Laufzeitmodelle ohne passenden Provider-Eintrag definieren Sie es in model.generationConfig.extra_body.

model.openAILoggingDir Beispiele:

  • "~/qwen-logs" - Protokolliert im Verzeichnis ~/qwen-logs
  • "./custom-logs" - Protokolliert in ./custom-logs relativ zum aktuellen Verzeichnis
  • "/tmp/openai-logs" - Protokolliert im absoluten Pfad /tmp/openai-logs

fastModel

EinstellungTypBeschreibungStandard
fastModelstringModell zur Generierung von Prompt-Vorschlägen und spekulativer Ausführung. Leer lassen, um das Hauptmodell zu verwenden. Ein kleineres/schnelleres Modell (z. B. qwen3-coder-flash) reduziert Latenz und Kosten. Kann auch über /model --fast gesetzt werden.""

context

EinstellungTypBeschreibungStandard
context.fileNamestring oder Array von StringsDer Name der Kontextdatei(en).undefined
context.importFormatstringDas Format, das beim Importieren des Speichers verwendet werden soll.undefined
context.includeDirectoriesarrayZusätzliche Verzeichnisse, die in den Arbeitsbereichskontext aufgenommen werden sollen. Gibt ein Array zusätzlicher absoluter oder relativer Pfade an, die in den Arbeitsbereichskontext aufgenommen werden sollen. Fehlende Verzeichnisse werden standardmäßig mit einer Warnung übersprungen. Pfade können ~ verwenden, um auf das Home-Verzeichnis des Benutzers zu verweisen. Diese Einstellung kann mit dem Befehlszeilenflag --include-directories kombiniert werden.[]
context.loadFromIncludeDirectoriesbooleanSteuert das Verhalten des Befehls /memory refresh. Wenn auf true gesetzt, sollen QWEN.md-Dateien aus allen hinzugefügten Verzeichnissen geladen werden. Wenn auf false gesetzt, soll QWEN.md nur aus dem aktuellen Verzeichnis geladen werden.false
context.fileFiltering.respectGitIgnoreboolean.gitignore-Dateien bei der Suche respektieren.true
context.fileFiltering.respectQwenIgnoreboolean.qwenignore und konfigurierte benutzerdefinierte Ignore-Dateien bei der Suche respektieren.true
context.fileFiltering.customIgnoreFilesarrayIgnore-Dateien relativ zum Projektstamm, die anstelle der Standard-Kompatibilitätsdateien (.agentignore, .aiignore) verwendet werden, wenn respectQwenIgnore aktiviert ist. .qwenignore ist immer enthalten.[".agentignore", ".aiignore"]
context.fileFiltering.enableRecursiveFileSearchbooleanOb die rekursive Suche nach Dateinamen unter dem aktuellen Verzeichnisbaum aktiviert werden soll, wenn @-Präfixe in der Eingabeaufforderung vervollständigt werden.true
context.fileFiltering.enableFuzzySearchbooleanWenn true, aktiviert es Fuzzy-Suchfunktionen bei der Dateisuche. Setzen Sie auf false, um die Leistung bei Projekten mit vielen Dateien zu verbessern.true
context.clearContextOnIdle.toolResultsThresholdMinutesnumberMinuten der Inaktivität, bevor alte Tool-Ergebnisinhalte gelöscht werden. Verwenden Sie -1, um den Inaktivitäts-Trigger zu deaktivieren.60
context.clearContextOnIdle.toolResultsNumToKeepintegerGanzzahl der zuletzt komprimierbaren Tool-Ergebnisse, die beim Löschen erhalten bleiben sollen. Werte unter 1 werden auf 1 abgerundet.5
context.clearContextOnIdle.toolResultsTotalCharsThresholdnumberGesamtanzahl der komprimierbaren Tool-Ergebniszeichen, die im Verlauf erlaubt sind, bevor die ältesten Ergebnisse gelöscht werden. Verwenden Sie -1, um den Größen-Trigger zu deaktivieren. Dies ist ein weicher Schwellenwert: Geschützte aktuelle Tool-Ergebnisse können die Gesamtzahl darüber halten.500000

Fehlerbehebung für die Dateisuchleistung

Wenn Sie Leistungsprobleme bei der Dateisuche (z. B. mit @-Vervollständigungen) haben, insbesondere in Projekten mit einer sehr großen Anzahl von Dateien, können Sie die folgenden Maßnahmen in der empfohlenen Reihenfolge ausprobieren:

  1. Eine Ignorieren-Datei verwenden: Erstellen Sie eine .qwenignore oder eine konfigurierte benutzerdefinierte Ignorieren-Datei im Stammverzeichnis Ihres Projekts, um Verzeichnisse auszuschließen, die eine große Anzahl von Dateien enthalten, auf die Sie nicht verweisen müssen (z. B. Build-Artefakte, Logs, node_modules). Die Reduzierung der Gesamtzahl der durchsuchten Dateien ist der effektivste Weg, um die Leistung zu verbessern.
  2. Fuzzy-Suche deaktivieren: Falls das Ignorieren von Dateien nicht ausreicht, können Sie die Fuzzy-Suche deaktivieren, indem Sie enableFuzzySearch in Ihrer settings.json-Datei auf false setzen. Dadurch wird ein einfacherer, nicht-fuzzy Matching-Algorithmus verwendet, der schneller sein kann.
  3. Rekursive Dateisuche deaktivieren: Als letzte Möglichkeit können Sie die rekursive Dateisuche vollständig deaktivieren, indem Sie enableRecursiveFileSearch auf false setzen. Dies ist die schnellste Option, da eine rekursive Durchsuchung Ihres Projekts vermieden wird. Dies bedeutet jedoch, dass Sie den vollständigen Pfad zu Dateien eingeben müssen, wenn Sie @-Vervollständigungen verwenden.

tools

EinstellungTypBeschreibungStandardAnmerkungen
tools.sandboxboolean oder stringSandbox-Ausführungsumgebung (kann ein boolescher Wert oder ein Pfad-String sein).undefined
tools.sandboxImagestringSandbox-Image-URI, die von Docker/Podman verwendet wird, wenn --sandbox-image und QWEN_SANDBOX_IMAGE nicht gesetzt sind.undefined
tools.shell.enableInteractiveShellbooleanVerwenden Sie node-pty für eine interaktive Shell-Erfahrung. Fallback auf child_process wird weiterhin angewendet.true
tools.corearray of stringsVeraltet. Wird in der nächsten Version entfernt. Verwenden Sie stattdessen permissions.allow + permissions.deny. Beschränkt integrierte Tools auf eine Positivliste. Alle nicht in der Liste enthaltenen Tools sind deaktiviert.undefined
tools.excludearray of stringsVeraltet. Verwenden Sie stattdessen permissions.deny. Namen von Tools, die von der Erkennung ausgeschlossen werden sollen. Wird beim ersten Laden automatisch in das permissions-Format migriert.undefined
tools.allowedarray of stringsVeraltet. Verwenden Sie stattdessen permissions.allow. Toolnamen, die den Bestätigungsdialog umgehen. Wird beim ersten Laden automatisch in das permissions-Format migriert.undefined
tools.approvalModestringLegt den Standard-Freigabemodus für die Toolnutzung fest.defaultMögliche Werte: plan (nur analysieren, keine Dateien ändern oder Befehle ausführen), default (Freigabe vor Dateibearbeitungen oder Shell-Befehlsausführung erforderlich), auto-edit (Dateibearbeitungen automatisch freigeben), auto (LLM-Klassifikator genehmigt sichere Aktionen automatisch, blockiert riskante), yolo (alle Tool-Aufrufe automatisch freigeben)
tools.discoveryCommandstringBefehl, der für die Tool-Erkennung ausgeführt werden soll.undefined
tools.callCommandstringDefiniert einen benutzerdefinierten Shell-Befehl zum Aufrufen eines bestimmten Tools, das mit tools.discoveryCommand erkannt wurde. Der Shell-Befehl muss die folgenden Kriterien erfüllen: Er muss den Funktionsnamen (genau wie in der Funktionsdeklaration ) als erstes Befehlszeilenargument entgegennehmen. Er muss die Funktionsargumente als JSON von stdin lesen, analog zu functionCall.args. Er muss die Funktionsausgabe als JSON auf stdout zurückgeben, analog zu functionResponse.response.content.undefined
tools.useRipgrepbooleanVerwenden Sie ripgrep für die Dateiinhaltsuche anstelle der Fallback-Implementierung. Bietet eine schnellere Suchleistung.true
tools.useBuiltinRipgrepbooleanVerwenden Sie die gebündelte ripgrep-Binärdatei. Wenn auf false gesetzt, wird stattdessen der systemeigene rg-Befehl verwendet. Diese Einstellung ist nur wirksam, wenn tools.useRipgrep auf true gesetzt ist.true
tools.truncateToolOutputThresholdnumberKürzt die Tool-Ausgabe, wenn sie größer als diese Zeichenanzahl ist. Gilt für die Tools Shell, Grep, Glob, ReadFile und ReadManyFiles.25000Erfordert Neustart: Ja
tools.truncateToolOutputLinesnumberMaximale Anzahl von Zeilen oder Einträgen, die beim Kürzen der Tool-Ausgabe beibehalten werden. Gilt für die Tools Shell, Grep, Glob, ReadFile und ReadManyFiles.1000Erfordert Neustart: Ja
tools.computerUse.enabledbooleanAktivieren Sie die integrierten Computer Use Tools (cua-driver native Desktop-Automatisierung). Wenn true (Standard), werden die computer_use__* Tools als zurückgestellte integrierte Tools registriert; der erste Aufruf lädt die signierte cua-driver-Binärdatei herunter und führt die macOS-Berechtigungen für Bedienungshilfen / Bildschirmaufnahme durch.trueErfordert Neustart: Ja
tools.computerUse.maxImageDimensionnumberMaximale Pixelzahl der längsten Kante für cua-driver-Screenshots (via set_config’s max_image_dimension). -1 (Standard) behält den eingebauten Standard von cua-driver (1568); 0 deaktiviert die Größenänderung (volle Auflösung); ein positiver Wert begrenzt die längste Kante. Niedrigere Grenzwerte senken die Kosten für Vision-Token auf Kosten feiner Details.-1Erfordert Neustart: Ja. Umgebungsüberschreibung: QWEN_COMPUTER_USE_MAX_IMAGE_DIMENSION (eine nicht-negative Ganzzahl; hat Vorrang vor dieser Einstellung)
Note

Migration von tools.core / tools.exclude / tools.allowed: Diese Legacy-Einstellungen sind veraltet und werden beim ersten Laden automatisch in das neue permissions-Format migriert. Bevorzugen Sie die direkte Konfiguration von permissions.allow / permissions.deny. Verwenden Sie /permissions, um Regeln interaktiv zu verwalten.

memory

EinstellungTypBeschreibungStandard
memory.enableManagedAutoMemorybooleanAktiviert die Hintergrundextraktion von Erinnerungen aus Gesprächen.true
memory.enableManagedAutoDreambooleanAktiviert die automatische Konsolidierung (Deduplizierung und Bereinigung) gesammelter Erinnerungen.true
memory.enableAutoSkillbooleanAktiviert die Hintergrundprüfung auf wiederverwendbare Projektfähigkeiten nach werkzeugintensiven Sitzungen.true
memory.autoSkillConfirmbooleanNachfragen, ob Bestätigung erforderlich ist, bevor automatisch generierte Fähigkeiten zur Fähigkeitsbibliothek hinzugefügt werden. Wenn aus, werden Auto-Fähigkeiten sofort gespeichert.true

Siehe Speicher für Details zur Funktionsweise des automatischen Speichers und zur Verwendung der Befehle /memory, /remember und /dream.

permissions

Das Berechtigungssystem bietet eine feinkörnige Kontrolle darüber, welche Tools ausgeführt werden dürfen, welche eine Bestätigung erfordern und welche blockiert sind.

Entscheidungspriorität (höchste zuerst): deny > ask > allow > (Standard/Interaktivmodus)

Die erste passende Regel gewinnt. Regeln verwenden das Format "ToolName" oder "ToolName(spezifizierer)".

EinstellungTypBeschreibungStandard
permissions.allowarray of stringsRegeln für automatisch genehmigte Tool-Aufrufe (keine Bestätigung erforderlich). Werden über alle Bereiche (Benutzer + Projekt + System) hinweg zusammengeführt.undefined
permissions.askarray of stringsRegeln für Tool-Aufrufe, die immer eine Benutzerbestätigung erfordern. Haben Vorrang vor allow.undefined
permissions.denyarray of stringsRegeln für blockierte Tool-Aufrufe. Höchste Priorität – überschreibt sowohl allow als auch ask.undefined

Toolname-Aliase (alle funktionieren in Regeln):

AliasKanonisches ToolAnmerkungen
Bash, Shellrun_shell_command
Read, ReadFileread_fileMeta-Kategorie – siehe unten
Edit, EditFileeditMeta-Kategorie – siehe unten
Write, WriteFilewrite_file
NotebookEditnotebook_edit
NotebookEditToolnotebook_edit
Grep, SearchFilesgrep_search
Glob, FindFilesglob
ListFileslist_directory
WebFetchweb_fetch
Agenttask
Skillskill

Meta-Kategorien:

Einige Regelnamen decken automatisch mehrere Tools ab:

RegelnameAbgedeckte Tools
Readread_file, grep_search, glob, list_directory
Editedit, write_file, notebook_edit

[!important] Read(/path/**) passt auf alle vier Lese-Tools (Dateilesen, grep, glob und Verzeichnisliste). Um nur das Dateilesen einzuschränken, verwenden Sie ReadFile(/path/**) oder read_file(/path/**).

Beispiele für Regelsyntax:

RegelBedeutung
"Bash"Alle Shell-Befehle
"Bash(git *)"Shell-Befehle, die mit git beginnen (Wortgrenze: NICHT gitk)
"Bash(git push *)"Shell-Befehle wie git push origin main
"Bash(npm run *)"Jedes npm run-Skript
"Read"Alle Datei-Lesevorgänge (read, grep, glob, list)
"Read(./secrets/**)"Jede Datei unter ./secrets/ rekursiv lesen
"Edit(/src/**/*.ts)"TypeScript-Dateien unter dem Projektstamm /src/ bearbeiten
"WebFetch(api.example.com)"Abruf von api.example.com und allen Subdomains
"mcp__puppeteer"Alle Tools des Puppeteer-MCP-Servers
Präfix für Pfadmuster:
PräfixBedeutungBeispiel
//Absoluter Pfad ab Dateisystemstamm//etc/passwd
~/Relativ zum Benutzerverzeichnis~/Documents/*.pdf
/Relativ zum Projektstamm/src/**/*.ts
./Relativ zum aktuellen Arbeitsverzeichnis./secrets/**
(keines)Gleich wie ./secrets/**

Umgehung von Shell-Befehlen verhindern:

Die Berechtigungsregeln für Read, Edit und WebFetch werden auch durchgesetzt, wenn der Agent entsprechende Shell-Befehle ausführt. Wenn beispielsweise Read(./.env) in deny enthalten ist, kann der Agent dies nicht über cat .env in einem Shell-Befehl umgehen. Unterstützte Shell-Befehle umfassen cat, grep, curl, wget, cp, mv, rm, chmod und viele weitere. Unbekannte/sichere Befehle (z.B. git) sind von den Datei-/Netzwerkregeln nicht betroffen.

Migration von alten Einstellungen:

Alte EinstellungEntsprechende permissions-RegelHinweise
tools.allowedpermissions.allowWird beim ersten Laden automatisch migriert
tools.excludepermissions.denyWird beim ersten Laden automatisch migriert
tools.corepermissions.allow (Zulassungsliste)Automatisch migriert; nicht aufgeführte Tools werden auf Registry-Ebene deaktiviert

Beispielkonfiguration:

{ "permissions": { "allow": ["Bash(git *)", "Bash(npm run *)", "Read(//Users/alice/code/**)"], "ask": ["Bash(git push *)", "Edit"], "deny": ["Bash(rm -rf *)", "Read(.env)", "WebFetch(malicious.com)"] } }

[!tip] Verwenden Sie /permissions in der interaktiven CLI, um Regeln anzuzeigen, hinzuzufügen und zu entfernen, ohne settings.json direkt zu bearbeiten.

slashCommands

Steuert, welche Slash-Befehle in der CLI verfügbar sind. Nützlich, um die Befehlsoberfläche in Multi-Tenant- oder Unternehmensumgebungen einzuschränken.

EinstellungTypBeschreibungStandard
slashCommands.disabledArray von ZeichenkettenNamen von Slash-Befehlen, die ausgeblendet und nicht ausgeführt werden sollen. Groß-/Kleinschreibung wird beim Abgleich mit dem endgültigen Befehlsnamen nicht beachtet (bei Erweiterungsbefehlen ist dies die disambiguierte Form, z.B. myext.deploy). Als Vereinigung über verschiedene Bereiche hinweg zusammengeführt, sodass Arbeitsbereichseinstellungen Einträge hinzufügen, aber nicht entfernen können, die in Benutzer- oder Systemeinstellungen definiert sind.undefined

Die gleiche Sperrliste kann auch über das CLI-Flag --disabled-slash-commands (durch Kommas getrennt oder wiederholt) und die Umgebungsvariable QWEN_DISABLED_SLASH_COMMANDS bereitgestellt werden; Werte aus allen drei Quellen werden vereinigt.

Beispiel – integrierte Befehle für eine Sandbox-Umgebung sperren:

{ "slashCommands": { "disabled": ["auth", "mcp", "extensions", "ide", "quit"] } }

Mit diesen Werten in einer systemweiten settings.json (/etc/qwen-code/settings.json oder QWEN_CODE_SYSTEM_SETTINGS_PATH) können Benutzer die Sperrliste aus ihrem eigenen Bereich nicht verkleinern, und die deaktivierten Befehle werden weder in der Autovervollständigung angezeigt noch bei Eingabe ausgeführt.

[!note] Diese Einstellung steuert nur Slash-Befehle (z.B. /auth, /mcp). Sie hat keine Auswirkungen auf Tool-Berechtigungen – siehe dazu permissions.deny. Sie fängt auch keine Tastaturkürzel wie Strg+C oder Esc ab.

mcp

EinstellungTypBeschreibungStandard
mcp.serverCommandZeichenketteBefehl zum Starten eines MCP-Servers.undefined
mcp.allowedArray von ZeichenkettenEine Zulassungsliste von MCP-Servern, die erlaubt sind. Ermöglicht die Angabe einer Liste von MCP-Servernamen, die dem Modell zur Verfügung gestellt werden sollen. Dies kann verwendet werden, um die Menge der zu verbindenden MCP-Server einzuschränken. Beachten Sie, dass dies ignoriert wird, wenn --allowed-mcp-server-names gesetzt ist.undefined
mcp.excludedArray von ZeichenkettenEine Sperrliste von MCP-Servern, die ausgeschlossen werden sollen. Ein Server, der sowohl in mcp.excluded als auch in mcp.allowed aufgeführt ist, wird ausgeschlossen. Beachten Sie, dass dies ignoriert wird, wenn --allowed-mcp-server-names gesetzt ist.undefined

[!note] Sicherheitshinweis für MCP-Server: Diese Einstellungen verwenden einfachen String-Abgleich auf MCP-Servernamen, der geändert werden kann. Wenn Sie als Systemadministrator verhindern möchten, dass Benutzer dies umgehen, sollten Sie die mcpServers auf Systemebene so konfigurieren, dass der Benutzer keine eigenen MCP-Server konfigurieren kann. Dies sollte nicht als abgesicherter Sicherheitsmechanismus betrachtet werden.

lsp

[!warning] Experimentelle Funktion: Die LSP-Unterstützung ist derzeit experimentell und standardmäßig deaktiviert. Aktivieren Sie sie mit dem Befehlszeilen-Flag --experimental-lsp.

Das Language Server Protocol (LSP) bietet Code-Intelligence-Funktionen wie Gehe-zu-Definition, Referenzen finden und Diagnosen.

Die Konfiguration des LSP-Servers erfolgt über .lsp.json-Dateien im Stammverzeichnis Ihres Projekts, nicht über settings.json. Weitere Konfigurationsdetails und Beispiele finden Sie in der LSP-Dokumentation.

security

EinstellungTypBeschreibungStandard
security.folderTrust.enabledbooleanEinstellung, um zu verfolgen, ob Ordnervertrauensstellung aktiviert ist.false
security.auth.selectedTypestringDer aktuell ausgewählte Authentifizierungstyp.undefined
security.auth.enforcedTypestringDer erforderliche Authentifizierungstyp (nützlich für Unternehmen).undefined
security.auth.useExternalbooleanOb ein externer Authentifizierungsablauf verwendet werden soll.undefined

advanced

EinstellungTypBeschreibungStandard
advanced.autoConfigureMemorybooleanNode.js-Speichergrenzen automatisch konfigurieren.false
advanced.dnsResolutionOrderstringDie DNS-Auflösungsreihenfolge.undefined
advanced.excludedEnvVarsarray of stringsUmgebungsvariablen, die aus dem Projektkontext ausgeschlossen werden sollen. Legt Umgebungsvariablen fest, die nicht aus den .env-Dateien des Projekts geladen werden sollen. Dadurch wird verhindert, dass projektspezifische Umgebungsvariablen (wie DEBUG=true) das CLI-Verhalten beeinträchtigen. Variablen aus .qwen/.env-Dateien werden niemals ausgeschlossen.["DEBUG","DEBUG_MODE"]
advanced.bugCommandobjectKonfiguration für den Fehlerbericht-Befehl. Überschreibt die Standard-URL für den /bug-Befehl. Eigenschaften: urlTemplate (string): Eine URL, die die Platzhalter {title} und {info} enthalten kann. Beispiel: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" }undefined
plansDirectorystringBenutzerdefiniertes Verzeichnis für genehmigte Plan-Modus-Dateien. Relative Pfade werden ausgehend vom Projektstammverzeichnis aufgelöst, und der aufgelöste Pfad muss innerhalb des Projektstammverzeichnisses bleiben. Wenn nicht gesetzt, werden Plan-Dateien in ~/.qwen/plans gespeichert. Erfordert Neustart. Wenn sich das Verzeichnis innerhalb des Projektstammverzeichnisses befindet, fügen Sie es zur .gitignore hinzu, um ein Einchecken von Plan-Dateien zu vermeiden.undefined

experimental

Warning

Experimentelle Funktionen. Diese Schalter aktivieren Funktionen in der Entwicklung und können sich in zukünftigen Versionen ändern oder entfernt werden.

EinstellungTypBeschreibungStandard
experimental.cronbooleanAktiviert Sitzungs-interne Cron-/Loop-Tools (cron_create, cron_list, cron_delete), damit das Modell wiederkehrende Eingabeaufforderungen erstellen kann. Kann über die Umgebungsvariable QWEN_CODE_DISABLE_CRON=1 deaktiviert werden. Erfordert Neustart.true
experimental.agentTeambooleanAktiviert Tools für die Zusammenarbeit im Agententeam (team_create, task_create, task_update, send_message usw.) für die Koordination mehrerer Agenten. Kann auch über QWEN_CODE_ENABLE_AGENT_TEAM=1 aktiviert werden. Erfordert Neustart.false
experimental.artifactbooleanAktiviert das Artifact-Tool, mit dem das Modell eine eigenständige HTML-Seite veröffentlichen und im Browser öffnen kann. Nur interaktive, nicht-SDK-Sitzungen. Umschaltbar über QWEN_CODE_ENABLE_ARTIFACT=1 / QWEN_CODE_DISABLE_ARTIFACT=1. Erfordert Neustart.false
experimental.emitToolUseSummariesbooleanErzeugt nach jedem abgeschlossenen Tool-Aufruf-Batch ein kurzes LLM-basiertes Label. Siehe Tool-Use Summaries. Erfordert ein konfiguriertes schnelles Modell (fastModel); wird ansonsten stillschweigend übersprungen. Kann sitzungsweise mit QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0 oder =1 überschrieben werden.true

mcpServers

Konfiguriert Verbindungen zu einem oder mehreren Model‑Context‑Protocol (MCP)‑Servern zum Auffinden und Verwenden benutzerdefinierter Tools. Qwen Code versucht, eine Verbindung zu jedem konfigurierten MCP‑Server herzustellen, um verfügbare Tools zu erkennen. Wenn mehrere MCP‑Server ein Tool mit demselben Namen bereitstellen, werden die Toolnamen mit dem von Ihnen in der Konfiguration definierten Server‑Alias versehen (z. B. serverAlias__actualToolName), um Konflikte zu vermeiden. Beachten Sie, dass das System aus Kompatibilitätsgründen bestimmte Schemaeigenschaften aus MCP‑Tooldefinitionen entfernen kann. Mindestens eines von command, url oder httpUrl muss angegeben werden. Wenn mehrere angegeben werden, gilt folgende Prioritätsreihenfolge: httpUrl, dann url, dann command.

EigenschaftTypBeschreibungOptional
mcpServers.<SERVER_NAME>.commandZeichenketteDer auszuführende Befehl zum Starten des MCP‑Servers über Standard‑I/O.Ja
mcpServers.<SERVER_NAME>.argsArray von ZeichenkettenArgumente, die an den Befehl übergeben werden.Ja
mcpServers.<SERVER_NAME>.envObjektUmgebungsvariablen, die für den Serverprozess gesetzt werden.Ja
mcpServers.<SERVER_NAME>.cwdZeichenketteDas Arbeitsverzeichnis, in dem der Server gestartet wird.Ja
mcpServers.<SERVER_NAME>.urlZeichenketteDie URL eines MCP‑Servers, der Server‑Sent Events (SSE) zur Kommunikation verwendet.Ja
mcpServers.<SERVER_NAME>.httpUrlZeichenketteDie URL eines MCP‑Servers, der streamable HTTP zur Kommunikation verwendet.Ja
mcpServers.<SERVER_NAME>.headersObjektEine Map von HTTP‑Headern, die mit Anfragen an url oder httpUrl gesendet werden.Ja
mcpServers.<SERVER_NAME>.timeoutZahlTimeout in Millisekunden für Anfragen an diesen MCP‑Server.Ja
mcpServers.<SERVER_NAME>.trustBooleschVertraue diesem Server und umgehe alle Bestätigungen von Tool‑Aufrufen.Ja
mcpServers.<SERVER_NAME>.descriptionZeichenketteEine kurze Beschreibung des Servers, die zu Anzeigezwecken verwendet werden kann.Ja
mcpServers.<SERVER_NAME>.includeToolsArray von ZeichenkettenListe der Toolnamen, die von diesem MCP‑Server eingeschlossen werden sollen. Wenn angegeben, sind nur die hier aufgeführten Tools von diesem Server verfügbar (Allowlist‑Verhalten). Falls nicht angegeben, sind standardmäßig alle Tools des Servers aktiviert.Ja
mcpServers.<SERVER_NAME>.excludeToolsArray von ZeichenkettenListe der Toolnamen, die von diesem MCP‑Server ausgeschlossen werden sollen. Die hier aufgeführten Tools sind für das Modell nicht verfügbar, selbst wenn sie vom Server bereitgestellt werden. Hinweis: excludeTools hat Vorrang vor includeTools – wenn ein Tool in beiden Listen steht, wird es ausgeschlossen.Ja

Telemetrie

Konfiguriert die Protokollierung und Metriksammlung für Qwen Code. Weitere Informationen finden Sie unter Telemetrie.

EinstellungTypBeschreibungStandard
telemetry.enabledbooleanOb Telemetrie aktiviert ist oder nicht.
telemetry.targetstringInformationsbezeichnung für das Telemetrieziel (local oder gcp). Steuert nicht das Export-Routing; setzen Sie telemetry.otlpEndpoint oder telemetry.outfile, um zu konfigurieren, wohin Daten gesendet werden.
telemetry.otlpEndpointstringDer Endpunkt für den OTLP-Exporter.
telemetry.otlpProtocolstringDas Protokoll für den OTLP-Exporter (grpc oder http).
telemetry.logPromptsbooleanOb der Inhalt von Benutzer-Prompts in die Protokolle aufgenommen werden soll oder nicht.
telemetry.includeSensitiveSpanAttributesbooleanWenn aktiviert, fügt es wortgetreue Benutzer-Prompts, System-Prompts, Tool-Eingaben/-Ausgaben und Modellantworten zu nativen OTel-Span-Attributen hinzu (zusätzlich zu Log-to-Span-Bridge-Spans). ⚠️ Streamt sensible Daten – Dateiinhalte, Shell-Befehle, Gesprächsverlauf – an Ihr OTLP-Backend.false
telemetry.outfilestringPfad zum Schreiben der Telemetrie in eine Datei. Wenn gesetzt, überschreibt es den OTLP-Export.

Beispiel settings.json

Hier ist ein Beispiel einer settings.json-Datei mit der verschachtelten Struktur, neu seit v0.3.0:

{ "proxy": "http://localhost:7890", "plansDirectory": "./.qwen/plans", "general": { "vimMode": true, "preferredEditor": "code" }, "ui": { "theme": "GitHub", "hideTips": false, "customWittyPhrases": [ "You forget a thousand things every day. Make sure this is one of 'em", "Connecting to AGI" ] }, "tools": { "approvalMode": "yolo", "sandbox": "docker", "sandboxImage": "ghcr.io/qwenlm/qwen-code:0.14.1", "discoveryCommand": "bin/get_tools", "callCommand": "bin/call_tool", "exclude": ["write_file"] }, "mcpServers": { "mainServer": { "command": "bin/mcp_server.py" }, "anotherServer": { "command": "node", "args": ["mcp_server.js", "--verbose"] } }, "telemetry": { "enabled": true, "target": "local", "otlpEndpoint": "http://localhost:4317", "logPrompts": true, "includeSensitiveSpanAttributes": false }, "privacy": { "usageStatisticsEnabled": true }, "model": { "name": "qwen3-coder-plus", "maxSessionTurns": 10, "enableOpenAILogging": false, "openAILoggingDir": "~/qwen-logs", }, "context": { "fileName": ["CONTEXT.md", "QWEN.md"], "includeDirectories": ["path/to/dir1", "~/path/to/dir2", "../path/to/dir3"], "loadFromIncludeDirectories": true, "fileFiltering": { "respectGitIgnore": false } }, "advanced": { "excludedEnvVars": ["DEBUG", "DEBUG_MODE", "NODE_ENV"] } }

Shell-Verlauf

Die CLI führt einen Verlauf der von Ihnen ausgeführten Shell-Befehle. Um Konflikte zwischen verschiedenen Projekten zu vermeiden, wird dieser Verlauf in einem projektspezifischen Verzeichnis innerhalb Ihres Benutzer-Home-Ordners gespeichert.

  • Ort: ~/.qwen/tmp/<project_hash>/shell_history
    • <project_hash> ist ein eindeutiger Bezeichner, der aus dem Stammverzeichnis Ihres Projekts generiert wird.
    • Der Verlauf wird in einer Datei namens shell_history gespeichert.

Umgebungsvariablen & .env-Dateien

Umgebungsvariablen sind eine gängige Methode zur Konfiguration von Anwendungen, insbesondere für sensible Informationen (wie Tokens) oder für Einstellungen, die sich zwischen verschiedenen Umgebungen ändern können.

Qwen Code kann Umgebungsvariablen automatisch aus .env-Dateien laden. Für authentifizierungsbezogene Variablen (wie OPENAI_*) und den empfohlenen Ansatz mit .qwen/.env siehe Authentifizierung.

Tip

Ausschluss von Umgebungsvariablen: Einige Umgebungsvariablen (wie DEBUG und DEBUG_MODE) werden standardmäßig automatisch aus Projekt-.env-Dateien ausgeschlossen, um Beeinträchtigungen des CLI-Verhaltens zu verhindern. Variablen aus .qwen/.env-Dateien werden niemals ausgeschlossen. Sie können dieses Verhalten mit der Einstellung advanced.excludedEnvVars in Ihrer settings.json-Datei anpassen.

Tabelle der Umgebungsvariablen

VariableBeschreibungHinweise
QWEN_HOMEPasst das globale Konfigurationsverzeichnis an (Standard: ~/.qwen). Akzeptiert einen absoluten oder relativen Pfad (relative Pfade werden vom aktuellen Arbeitsverzeichnis aus aufgelöst). Ein führendes ~ wird zum Home-Verzeichnis des Benutzers erweitert.Speichert Anmeldedaten, Einstellungen, Speicher, Fähigkeiten und andere globale Zustände. Wenn gesetzt, sind projektbezogene .qwen/-Verzeichnisse davon nicht betroffen. Ein leerer String wird als nicht gesetzt behandelt.
QWEN_RUNTIME_DIRÜberschreibt das Laufzeit-Ausgabeverzeichnis (Konversationen, Logs, Todos). Wenn nicht gesetzt, wird standardmäßig das QWEN_HOME-Verzeichnis verwendet.Verwenden Sie dies, um flüchtige Laufzeitdaten von der persistenten Konfiguration zu trennen. Nützlich, wenn QWEN_HOME auf einem gemeinsamen/langsamen Dateisystem liegt.
QWEN_TELEMETRY_ENABLEDSetzen Sie auf true oder 1, um Telemetrie zu aktivieren. Jeder andere Wert wird als Deaktivierung behandelt.Überschreibt die Einstellung telemetry.enabled.
QWEN_TELEMETRY_TARGETSetzt ein informatives Label für das Telemetrieziel (local oder gcp). Steuert nicht das Routing; verwenden Sie QWEN_TELEMETRY_OTLP_ENDPOINT oder QWEN_TELEMETRY_OUTFILE, um zu konfigurieren, wohin die Daten gesendet werden.Überschreibt die Einstellung telemetry.target.
QWEN_TELEMETRY_OTLP_ENDPOINTSetzt den OTLP-Endpunkt für die Telemetrie.Überschreibt die Einstellung telemetry.otlpEndpoint.
QWEN_TELEMETRY_OTLP_PROTOCOLSetzt das OTLP-Protokoll (grpc oder http).Überschreibt die Einstellung telemetry.otlpProtocol.
QWEN_TELEMETRY_LOG_PROMPTSSetzen Sie auf true oder 1, um das Protokollieren von Benutzereingabeaufforderungen zu aktivieren oder zu deaktivieren. Jeder andere Wert wird als Deaktivierung behandelt.Überschreibt die Einstellung telemetry.logPrompts.
QWEN_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTESSetzen Sie auf true oder 1, um wörtliche Benutzereingabeaufforderungen, Systemanweisungen, Werkzeug-E/A und Modellantworten an native OTel-Span-Attribute anzuhängen (und prompt/function_args/response_text auf Log-to-Span-Bridge-Spans zu belassen). Jeder andere Wert deaktiviert dies.Überschreibt die Einstellung telemetry.includeSensitiveSpanAttributes-Einstellung. ⚠️ Streamt sensible Daten an Ihr OTLP-Backend.
QWEN_TELEMETRY_OUTFILELegt den Dateipfad fest, in den die Telemetrie geschrieben werden soll. Wenn gesetzt, überschreibt dies den OTLP-Export.Überschreibt die Einstellung telemetry.outfile.
QWEN_SANDBOXAlternative zur sandbox-Einstellung in der settings.json.Akzeptiert true, false, docker, podman oder einen benutzerdefinierten Befehl als Zeichenkette.
QWEN_SANDBOX_IMAGEÜberschreibt die Auswahl des Sandbox-Images für Docker/Podman.Hat Vorrang vor tools.sandboxImage.
SEATBELT_PROFILE(macOS-spezifisch) Wechselt das Seatbelt-Profil (sandbox-exec) auf macOS.permissive-open: (Standard) Schränkt Schreibvorgänge auf den Projektordner (und einige andere Ordner, siehe packages/cli/src/utils/sandbox-macos-permissive-open.sb) ein, erlaubt aber andere Operationen. strict: Verwendet ein striktes Profil, das Operationen standardmäßig ablehnt. <profile_name>: Verwendet ein benutzerdefiniertes Profil. Um ein benutzerdefiniertes Profil zu definieren, erstellen Sie eine Datei namens sandbox-macos-<profile_name>.sb in Ihrem Projektverzeichnis .qwen/ (z. B. my-project/.qwen/sandbox-macos-custom.sb).
DEBUG oder DEBUG_MODE(häufig von zugrunde liegenden Bibliotheken oder der CLI selbst verwendet) Setzen Sie auf true oder 1, um ausführliches Debug-Logging zu aktivieren, das bei der Fehlerbehebung hilfreich sein kann.Hinweis: Diese Variablen werden standardmäßig automatisch aus Projekt-.env-Dateien ausgeschlossen, um Beeinträchtigungen des CLI-Verhaltens zu verhindern. Verwenden Sie .qwen/.env-Dateien, wenn Sie diese speziell für Qwen Code setzen müssen.
NO_COLORSetzen Sie auf einen beliebigen Wert, um die gesamte Farbausgabe in der CLI zu deaktivieren.
FORCE_HYPERLINKÜberschreibt die OSC-8-Erkennung von klickbaren Links im Markdown-Renderer. Setzen Sie auf 1 (oder eine beliebige ganze Zahl ungleich Null oder einen leeren String), um die Erzwingung zu aktivieren; setzen Sie auf 0 oder einen nicht-numerischen Wert wie false/off, um die Deaktivierung zu erzwingen. Beachtet NO_COLOR/QWEN_DISABLE_HYPERLINKS-Opt-outs, die darüber liegen.Verwenden Sie dies, um OSC 8 in tmux/GNU screen zu aktivieren (die Autoerkennung lehnt standardmäßig ab, da die Fähigkeiten des Host-Terminals hinter dem Multiplexer verborgen sind). Erfordert set -g allow-passthrough on in tmux 3.3+. Aktiviert auch Hyper, das nicht automatisch erkannt wird.
QWEN_DISABLE_HYPERLINKSSetzen Sie auf 1, um OSC-8-klickbare Hyperlinks im Markdown-Renderer hart zu deaktivieren, selbst auf Terminals, die automatisch als fähig erkannt werden.Nützlich, wenn ein Terminal Unterstützung anmeldet, aber bei langen URLs Probleme macht, oder wenn die Ausgabe durch eine Zwischenstation geleitet wird, die Escape-Sequenzen beschädigt. Der Renderer fällt dann auf die einfache label (url)-Darstellung zurück.
CLI_TITLESetzen Sie auf eine Zeichenkette, um den Titel der CLI anzupassen.
CODE_ASSIST_ENDPOINTGibt den Endpunkt für den Code-Assist-Server an.Dies ist nützlich für Entwicklung und Tests.
QWEN_CODE_MAX_OUTPUT_TOKENSÜberschreibt die Standard-Maximalzahl der Ausgabetokens pro Antwort. Wenn nicht gesetzt, verwendet Qwen Code eine adaptive Strategie: Beginnt mit 8K Tokens und wiederholt automatisch mit 64K, wenn die Antwort abgeschnitten ist. Setzen Sie einen bestimmten Wert (z. B. 16000), um stattdessen eine feste Grenze zu verwenden.Hat Vorrang vor dem gedeckelten Standardwert (8K), wird aber durch samplingParams.max_tokens in den Einstellungen überschrieben. Deaktiviert die automatische Eskalation, wenn gesetzt. Beispiel: export QWEN_CODE_MAX_OUTPUT_TOKENS=16000
QWEN_CODE_UNATTENDED_RETRYSetzen Sie auf true oder 1, um den persistenten Wiederholungsmodus zu aktivieren. Wenn aktiviert, werden vorübergehende API-Kapazitätsfehler (HTTP 429 Rate Limit und 529 Overloaded) unbegrenzt mit exponentiellem Backoff (maximal 5 Minuten pro Wiederholung) und Heartbeat-Keepalives alle 30 Sekunden auf stderr wiederholt.Entwickelt für CI/CD-Pipelines und Hintergrundautomatisierung, bei denen langlebige Aufgaben vorübergehende API-Ausfälle überstehen sollen. Muss explizit gesetzt werden – CI=true allein aktiviert diesen Modus nicht. Siehe Headless Mode für Details. Beispiel: export QWEN_CODE_UNATTENDED_RETRY=1
QWEN_CODE_PROFILE_STARTUPSetzen Sie auf 1, um das Startzeit-Leistungsprofil zu aktivieren. Schreibt einen JSON-Zeitbericht in ~/.qwen/startup-perf/ mit Zeitangaben pro Phase.Nur aktiv innerhalb des Sandbox-Kindprozesses (oder mit QWEN_CODE_PROFILE_STARTUP_OUTER=1). Kein Overhead, wenn nicht gesetzt. Beispiel: export QWEN_CODE_PROFILE_STARTUP=1
QWEN_CODE_PROFILE_STARTUP_OUTERSetzen Sie auf 1 zusammen mit QWEN_CODE_PROFILE_STARTUP=1, um auch ein Startprofil im äußeren (vor der Sandbox) Prozess zu sammeln. Berichte des äußeren Prozesses erhalten ein outer--Dateinamenspräfix, um sie vom Bericht des Sandbox-Kindprozesses zu unterscheiden.Standardmäßig ausgeschaltet – nur der Sandbox-Kindprozess sammelt, um doppelte Berichte zu vermeiden. Nützlich für lokale Entwicklung, bei der die CLI nicht erneut in eine Sandbox gestartet wird.
QWEN_CODE_PROFILE_STARTUP_NO_HEAPSetzen Sie auf 1 zusammen mit QWEN_CODE_PROFILE_STARTUP=1, um die process.memoryUsage()-Schnappschüsse pro Prüfpunkt zu überspringen. Nützlich, wenn Sie den eigenen Heisenberg-Overhead des Profilers messen möchten.Standardmäßig ausgeschaltet. Heap-Schnappschüsse kosten jeweils etwa 50 µs (deutlich unter 1 % der gesamten Startzeit), daher sollten die meisten Benutzer dies unverändert lassen.
QWEN_CODE_LEGACY_MCP_BLOCKINGSetzen Sie auf 1, um das alte Verhalten vor dem progressiven MCP wiederherzustellen, bei dem Config.initialize() synchron auf den Discovery-Handshake jedes konfigurierten MCP-Servers wartet, bevor es zurückkehrt.Standardmäßig ausgeschaltet. Modernes qwen-code lässt MCP-Server im Hintergrund online gehen, während die Benutzeroberfläche bereits interaktiv ist; das Modell sieht jede Charge neuer Tools innerhalb von etwa 16 ms, nachdem der Server bereit ist. Dieses Flag wird als Rollback-Notausstieg für mindestens eine Version beibehalten. Beispiel: export QWEN_CODE_LEGACY_MCP_BLOCKING=1
Wenn beide .env-Dateien auf Benutzerebene dieselbe Variable definieren, gewinnt die Qwen-spezifische Datei: <QWEN_HOME>/.env (oder ~/.qwen/.env, wenn QWEN_HOME nicht gesetzt ist) wird vor ~/.env geladen, und bestehende Umgebungsvariablen werden nicht überschrieben.

Befehlszeilenargumente

Direkt beim Ausführen der CLI übergebene Argumente können andere Konfigurationen für diese Sitzung überschreiben.

Für die Auswahl des Sandbox-Images gilt die folgende Rangfolge: --sandbox-image > QWEN_SANDBOX_IMAGE > tools.sandboxImage > integriertes Standard-Image.

Tabelle der Befehlszeilenargumente

ArgumentAliasBeschreibungMögliche WerteAnmerkungen
--model-mGibt das Qwen-Modell an, das für diese Sitzung verwendet werden soll.ModellnameBeispiel: npm start -- --model qwen3-coder-plus
--prompt-pWird verwendet, um einen Prompt direkt an den Befehl zu übergeben. Dies ruft Qwen Code im nicht-interaktiven Modus auf.Ihr PrompttextVerwenden Sie für Skriptbeispiele das Flag --output-format json, um strukturierte Ausgaben zu erhalten.
--prompt-interactive-iStartet eine interaktive Sitzung mit dem angegebenen Prompt als anfängliche Eingabe.Ihr PrompttextDer Prompt wird innerhalb der interaktiven Sitzung verarbeitet, nicht davor. Kann nicht verwendet werden, wenn Eingaben von stdin weitergeleitet werden. Beispiel: qwen -i "explain this code"
--system-promptÜberschreibt den integrierten System-Prompt der Hauptsitzung für diesen Durchlauf.Ihr PrompttextGeladene Kontextdateien wie QWEN.md werden nach dieser Überschreibung weiterhin angehängt. Kann mit --append-system-prompt kombiniert werden.
--append-system-promptHängt zusätzliche Anweisungen an den System-Prompt der Hauptsitzung für diesen Durchlauf an.Ihr PrompttextWird nach dem integrierten Prompt und den geladenen Kontextdateien angewendet. Kann mit --system-prompt kombiniert werden. Siehe Headless Mode für Beispiele.
--output-format-oGibt das Format der CLI-Ausgabe für den nicht-interaktiven Modus an.text, json, stream-jsontext: (Standard) Die standardmäßige menschenlesbare Ausgabe. json: Eine maschinenlesbare JSON-Ausgabe, die am Ende der Ausführung ausgegeben wird. stream-json: Streaming von JSON-Nachrichten, die während der Ausführung ausgegeben werden. Für strukturierte Ausgaben und Skripterstellung verwenden Sie das Flag --output-format json oder --output-format stream-json. Siehe Headless Mode für detaillierte Informationen.
--input-formatGibt das Format an, das von der Standardeingabe gelesen wird.text, stream-jsontext: (Standard) Standardtexteingabe von stdin oder Befehlszeilenargumenten. stream-json: JSON-Nachrichtenprotokoll über stdin für bidirektionale Kommunikation. Voraussetzung: --input-format stream-json erfordert, dass --output-format stream-json gesetzt ist. Bei Verwendung von stream-json ist stdin für Protokollnachrichten reserviert. Siehe Headless Mode für detaillierte Informationen.
--include-partial-messagesSchließt partielle Assistant-Nachrichten bei Verwendung des Ausgabeformats stream-json ein. Wenn aktiviert, werden Stream-Ereignisse (message_start, content_block_delta usw.) ausgegeben, sobald sie während des Streamings auftreten.Standard: false. Voraussetzung: Erfordert, dass --output-format stream-json gesetzt ist. Siehe Headless Mode für detaillierte Informationen zu Stream-Ereignissen.
--sandbox-sAktiviert den Sandbox-Modus für diese Sitzung.
--sandbox-imageSetzt die URI des Sandbox-Images.
--debug-dAktiviert den Debug-Modus für diese Sitzung, der eine ausführlichere Ausgabe bietet.
--all-files-aWenn gesetzt, werden rekursiv alle Dateien im aktuellen Verzeichnis als Kontext für den Prompt eingeschlossen.
--help-hZeigt Hilfeinformationen zu Befehlszeilenargumenten an.
--show-memory-usageZeigt die aktuelle Speichernutzung an.
--yoloAktiviert den YOLO-Modus, der alle Tool-Aufrufe automatisch genehmigt.
--approval-modeLegt den Genehmigungsmodus für Tool-Aufrufe fest.plan, default, auto-edit, auto, yoloUnterstützte Modi: plan: Nur analysieren – keine Dateien ändern oder Befehle ausführen. default: Genehmigung für Dateibearbeitungen oder Shell-Befehle erforderlich (Standardverhalten). auto-edit: Bearbeitungstools (edit, write_file, notebook_edit) automatisch genehmigen, bei anderen nachfragen. auto: Der LLM-Klassifikator genehmigt sichere Aktionen automatisch und blockiert riskante. yolo: Alle Tool-Aufrufe automatisch genehmigen (entspricht --yolo). Kann nicht zusammen mit --yolo verwendet werden. Verwenden Sie --approval-mode=yolo anstelle von --yolo für den neuen einheitlichen Ansatz. Beispiel: qwen --approval-mode auto-edit
Weitere Informationen zum Genehmigungsmodus.
--allowed-toolsEine durch Kommas getrennte Liste von Toolnamen, die den Bestätigungsdialog umgehen.ToolnamenBeispiel: qwen --allowed-tools "Shell(git status)"
--disabled-slash-commandsSlash-Befehlsnamen, die ausgeblendet/deaktiviert werden sollen (kommagetrennt oder wiederholt). Vereinigt mit der Einstellung slashCommands.disabled und der Umgebungsvariable QWEN_DISABLED_SLASH_COMMANDS. Groß-/Kleinschreibung wird beim Abgleich mit dem endgültigen Befehlsnamen nicht beachtet.BefehlsnamenBeispiel: qwen --disabled-slash-commands "auth,mcp,extensions"
--telemetryAktiviert Telemetrie.
--telemetry-targetSetzt das Telemetrieziel.Siehe Telemetrie für weitere Informationen.
--telemetry-otlp-endpointSetzt den OTLP-Endpunkt für Telemetrie.Siehe Telemetrie für weitere Informationen.
--telemetry-otlp-protocolSetzt das OTLP-Protokoll für Telemetrie (grpc oder http).Standardmäßig grpc. Siehe Telemetrie für weitere Informationen.
--telemetry-log-promptsAktiviert die Protokollierung von Prompts für Telemetrie.Siehe Telemetrie für weitere Informationen.
--acpAktiviert den ACP-Modus (Agent Client Protocol). Nützlich für IDE/Editor-Integrationen wie Zed.Stabil. Ersetzt das veraltete Flag --experimental-acp.
--experimental-lspAktiviert die experimentelle LSP (Language Server Protocol)-Funktion für Code-Intelligenz (Gehe-zu-Definition, Referenzen finden, Diagnose usw.).Experimentell. Erfordert installierte Sprachserver.
--extensions-eGibt eine Liste der für die Sitzung zu verwendenden Erweiterungen an.ErweiterungsnamenWenn nicht angegeben, werden alle verfügbaren Erweiterungen verwendet. Verwenden Sie den speziellen Begriff qwen -e none, um alle Erweiterungen zu deaktivieren. Beispiel: qwen -e my-extension -e my-other-extension
--list-extensions-lListet alle verfügbaren Erweiterungen auf und beendet sich.
--proxySetzt den Proxy für die CLI.Proxy-URLBeispiel: --proxy http://localhost:7890.
--include-directoriesSchließt zusätzliche Verzeichnisse in den Arbeitsbereich für die Unterstützung mehrerer Verzeichnisse ein.VerzeichnispfadeKann mehrfach oder als durch Kommas getrennte Werte angegeben werden. Maximal 5 Verzeichnisse können hinzugefügt werden. Beispiel: --include-directories /path/to/project1,/path/to/project2 oder --include-directories /path/to/project1 --include-directories /path/to/project2
--screen-readerAktiviert den Screenreader-Modus, der die TUI für eine bessere Kompatibilität mit Screenreadern anpasst.
--versionZeigt die Version der CLI an.
--openai-loggingAktiviert die Protokollierung von OpenAI-API-Aufrufen für Debugging und Analyse.Dieses Flag überschreibt die Einstellung enableOpenAILogging in settings.json.
--openai-logging-dirSetzt einen benutzerdefinierten Verzeichnispfad für OpenAI-API-Protokolle.VerzeichnispfadDieses Flag überschreibt die Einstellung openAILoggingDir in settings.json. Unterstützt absolute Pfade, relative Pfade und ~-Erweiterung. Beispiel: qwen --openai-logging-dir "~/qwen-logs" --openai-logging

Kontextdateien (Hierarchischer Anweisungskontext)

Obwohl sie nicht streng zur Konfiguration des Verhaltens der CLI gehören, sind Kontextdateien (standardmäßig QWEN.md, aber über die Einstellung context.fileName konfigurierbar) entscheidend für die Konfiguration des Anweisungskontexts (auch als “Speicher” bezeichnet). Diese leistungsstarke Funktion ermöglicht es Ihnen, projektspezifische Anweisungen, Codierungsstilrichtlinien oder andere relevante Hintergrundinformationen an die KI zu geben, wodurch ihre Antworten maßgeschneiderter und genauer auf Ihre Bedürfnisse zugeschnitten werden. Die CLI enthält UI-Elemente, wie z. B. einen Indikator in der Fußzeile, der die Anzahl der geladenen Kontextdateien anzeigt, um Sie über den aktiven Kontext zu informieren.

  • Zweck: Diese Markdown-Dateien enthalten Anweisungen, Richtlinien oder Kontext, den das Qwen-Modell während Ihrer Interaktionen kennen soll. Das System ist darauf ausgelegt, diesen Anweisungskontext hierarchisch zu verwalten.

Beispiel für den Inhalt einer Kontextdatei (z. B. QWEN.md)

Hier ist ein konzeptionelles Beispiel dafür, was eine Kontextdatei im Stammverzeichnis eines TypeScript-Projekts enthalten könnte:

# Projekt: Meine geniale TypeScript-Bibliothek ## Allgemeine Anweisungen: - Generiere neuen TypeScript-Code bitte gemäß dem bestehenden Codierungsstil. - Stelle sicher, dass alle neuen Funktionen und Klassen JSDoc-Kommentare haben. - Bevorzuge funktionale Programmierparadigmen, wo angemessen. - Der gesamte Code sollte mit TypeScript 5.0 und Node.js 22+ kompatibel sein. ## Codierungsstil: - Verwende 2 Leerzeichen für die Einrückung. - Schnittstellennamen sollten mit `I` beginnen (z. B. `IUserService`). - Private Klassenmitglieder sollten mit einem Unterstrich (`_`) beginnen. - Verwende immer strikte Gleichheit (`===` und `!==`). ## Spezifische Komponente: `src/api/client.ts` - Diese Datei verwaltet alle ausgehenden API-Anfragen. - Wenn neue API-Aufruffunktionen hinzugefügt werden, stelle sicher, dass sie robuste Fehlerbehandlung und Protokollierung enthalten. - Verwende das vorhandene `fetchWithRetry`-Dienstprogramm für alle GET-Anfragen. ## Bezüglich Abhängigkeiten: - Vermeide die Einführung neuer externer Abhängigkeiten, es sei denn, es ist unbedingt notwendig. - Wenn eine neue Abhängigkeit erforderlich ist, gib bitte den Grund an.

Dieses Beispiel zeigt, wie Sie allgemeinen Projektkontext, spezifische Codierungskonventionen und sogar Notizen zu bestimmten Dateien oder Komponenten bereitstellen können. Je relevanter und präziser Ihre Kontextdateien sind, desto besser kann die KI Sie unterstützen. Projektspezifische Kontextdateien werden dringend empfohlen, um Konventionen und Kontext festzulegen.

  • Hierarchisches Laden und Vorrang: Die CLI implementiert ein hierarchisches Speichersystem, indem sie Kontextdateien (z. B. QWEN.md) von mehreren Speicherorten lädt. Inhalte aus Dateien, die in dieser Liste weiter unten stehen (spezifischer), überschreiben oder ergänzen in der Regel Inhalte aus Dateien weiter oben (allgemeiner). Die genaue Verkettungsreihenfolge und der endgültige Kontext können über das /memory-Dialogfeld eingesehen werden. Die typische Ladereihenfolge ist:
    1. Globale Kontextdatei:
      • Speicherort: ~/.qwen/<konfigurierter-Kontextdateiname> (z. B. ~/.qwen/QWEN.md in Ihrem Benutzerhome-Verzeichnis).
      • Gültigkeitsbereich: Stellt Standardanweisungen für alle Ihre Projekte bereit.
    2. Projektstamm & übergeordnete Kontextdateien:
      • Speicherort: Die CLI sucht im aktuellen Arbeitsverzeichnis und dann in jedem übergeordneten Verzeichnis bis zum Projektstamm (identifiziert durch einen .git-Ordner) oder Ihrem Home-Verzeichnis nach der konfigurierten Kontextdatei.
      • Gültigkeitsbereich: Stellt Kontext bereit, der für das gesamte Projekt oder einen wesentlichen Teil davon relevant ist.
  • Verkettung & UI-Anzeige: Die Inhalte aller gefundenen Kontextdateien werden verkettet (mit Trennzeichen, die ihre Herkunft und den Pfad angeben) und als Teil des System-Prompts bereitgestellt. Die CLI-Fußzeile zeigt die Anzahl der geladenen Kontextdateien an und gibt Ihnen so einen schnellen visuellen Hinweis auf den aktiven Anweisungskontext.
  • Importieren von Inhalten: Sie können Ihre Kontextdateien modularisieren, indem Sie andere Markdown-Dateien mit der Syntax @pfad/zu/datei.md importieren. Weitere Details finden Sie in der Speicher-Dokumentation.
  • Befehle zur Speicherverwaltung:
    • Verwenden Sie /memory, um das Speicherverwaltungsdialogfeld zu öffnen.
    • Aktualisieren Sie den Speicher über das Dialogfeld, um Kontextdateien von allen konfigurierten Speicherorten erneut zu scannen und zu laden.
    • Die vollständigen Details zum Befehl /memory finden Sie in der Befehls-Dokumentation.

Durch das Verständnis und die Nutzung dieser Konfigurationsebenen und der hierarchischen Natur von Kontextdateien können Sie den Speicher der KI effektiv verwalten und die Antworten von Qwen Code auf Ihre spezifischen Anforderungen und Projekte zuschneiden.

Sandbox

Qwen Code kann potenziell unsichere Operationen (wie Shell-Befehle und Dateiänderungen) in einer Sandbox-Umgebung ausführen, um Ihr System zu schützen.

Sandbox ist standardmäßig deaktiviert, aber Sie können sie auf verschiedene Weise aktivieren:

  • Verwenden des Flags --sandbox oder -s.
  • Setzen der Umgebungsvariablen QWEN_SANDBOX.
  • Setzen von tools.sandbox in den Einstellungen.

⚠️ --yolo aktiviert nicht automatisch eine Sandbox. Der YOLO-Modus genehmigt nur Tool-Aufrufe automatisch; die Sandbox muss weiterhin über --sandbox, QWEN_SANDBOX oder tools.sandbox aktiviert werden. Bei headless / nicht-interaktiven Ausführungen mit --yolo (oder --approval-mode=yolo) und ohne Sandbox kann das Modell Shell-, Schreib- und Bearbeitungswerkzeuge mit den Berechtigungen des aktuellen Prozesses ausführen – Qwen Code gibt in diesem Fall eine Warnung auf stderr aus. Unterdrücken Sie diese mit QWEN_CODE_SUPPRESS_YOLO_WARNING=1, sobald Sie den Kompromiss geprüft haben. Standardmäßig verwendet es ein vorgefertigtes Docker-Image qwen-code-sandbox.

Für projektspezifische Sandbox-Anforderungen können Sie im Stammverzeichnis Ihres Projekts eine benutzerdefinierte Dockerdatei unter .qwen/sandbox.Dockerfile erstellen. Diese Dockerdatei kann auf dem Basis-Sandbox-Image basieren:

FROM qwen-code-sandbox # Add your custom dependencies or configurations here # For example: # RUN apt-get update && apt-get install -y some-package # COPY ./my-config /app/my-config

Wenn .qwen/sandbox.Dockerfile existiert, können Sie beim Ausführen von Qwen Code die Umgebungsvariable BUILD_SANDBOX verwenden, um automatisch das benutzerdefinierte Sandbox-Image zu erstellen:

BUILD_SANDBOX=1 qwen -s

Nutzungsstatistiken

Um Qwen Code zu verbessern, sammeln wir anonymisierte Nutzungsstatistiken. Diese Daten helfen uns zu verstehen, wie die CLI verwendet wird, häufige Probleme zu identifizieren und neue Funktionen zu priorisieren.

Was wir sammeln:

  • Tool-Aufrufe: Wir protokollieren die Namen der aufgerufenen Tools, ob sie erfolgreich sind oder fehlschlagen und wie lange sie zur Ausführung benötigen. Wir sammeln nicht die an die Tools übergebenen Argumente oder die von ihnen zurückgegebenen Daten.
  • API-Anfragen: Wir protokollieren das für jede Anfrage verwendete Modell, die Dauer der Anfrage und ob sie erfolgreich war. Wir sammeln nicht den Inhalt der Eingabeaufforderungen oder Antworten.
  • Sitzungsinformationen: Wir sammeln Informationen über die Konfiguration der CLI, wie die aktivierten Tools und den Genehmigungsmodus.

Was wir NICHT sammeln:

  • Personenbezogene Daten (PII): Wir sammeln keine persönlichen Informationen wie Ihren Namen, Ihre E-Mail-Adresse oder API-Schlüssel.
  • Inhalt von Eingabeaufforderungen und Antworten: Wir protokollieren nicht den Inhalt Ihrer Eingabeaufforderungen oder die Antworten des Modells.
  • Dateiinhalte: Wir protokollieren nicht den Inhalt von Dateien, die von der CLI gelesen oder geschrieben werden.

So deaktivieren Sie die Datenerfassung:

Sie können die Sammlung von Nutzungsstatistiken jederzeit deaktivieren, indem Sie die Eigenschaft usageStatisticsEnabled unter der Kategorie privacy in Ihrer settings.json-Datei auf false setzen:

{ "privacy": { "usageStatisticsEnabled": false } }
Note

Wenn Nutzungsstatistiken aktiviert sind, werden Ereignisse an einen Alibaba Cloud RUM-Erfassungsendpunkt gesendet.

Last updated on