Skip to Content
BenutzerhandbuchKonfigurationEinstellungen

Qwen Code-Konfiguration

Tip

Authentifizierung / API-Schlüssel: Authentifizierung (Qwen OAuth vs OpenAI-kompatibles API) und authentifizierungsbezogene Umgebungsvariablen (wie OPENAI_API_KEY) sind in der Dokumentation unter Authentifizierung beschrieben.

Note

Hinweis zum neuen Konfigurationsformat: Das Format der Datei settings.json wurde auf eine neue, besser strukturierte Form aktualisiert. Das alte Format wird automatisch migriert. Qwen Code bietet verschiedene Möglichkeiten zur Konfiguration seines Verhaltens, einschließlich Umgebungsvariablen, Befehlszeilenargumenten und Einstellungsdateien. Dieses Dokument erläutert die verschiedenen Konfigurationsmethoden und verfügbaren Einstellungen.

Konfigurationsschichten

Die Konfiguration wird in der folgenden Reihenfolge der Priorität angewendet (niedrigere Zahlen werden durch höhere Zahlen überschrieben):

EbeneKonfigurationsquelleBeschreibung
1StandardwerteFest codierte Standardwerte innerhalb der Anwendung
2System-StandardeinstellungsdateiSystemweite 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
7BefehlszeilenargumenteWerte, die beim Starten der CLI übergeben werden

Einstellungsdateien

Qwen Code verwendet JSON-Einstellungsdateien für persistente Konfigurationen. Es gibt vier Orte für diese Dateien:

DateitypSpeicherortGültigkeitsbereich
System-StandardeinstellungenLinux: /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 über die Umgebungsvariable QWEN_CODE_SYSTEM_DEFAULTS_PATH überschrieben werden.
Stellt eine Basisschicht von systemweiten Standardeinstellungen bereit. Diese Einstellungen haben die niedrigste Priorität und sollen durch Benutzer-, Projekt- oder System-Überschreibungseinstellungen außer Kraft gesetzt werden.
Benutzereinstellungen~/.qwen/settings.json (wobei ~ Ihr Home-Verzeichnis ist).Gilt für alle Qwen Code-Sitzungen des aktuellen Benutzers.
Projekteinstellungen.qwen/settings.json innerhalb des Wurzelverzeichnisses Ihres Projekts.Gilt nur, wenn Qwen Code aus diesem spezifischen Projekt heraus ausgeführt wird. Projekteinstellungen überschreiben Benutzereinstellungen.
SystemeinstellungenLinux: /etc/qwen-code/settings.json
Windows: C:\ProgramData\qwen-code\settings.json
macOS: /Library/Application Support/QwenCode/settings.json
Der Pfad kann über die Umgebungsvariable 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: Zeichenkettenwerte innerhalb Ihrer settings.json-Dateien können Umgebungsvariablen entweder mit der Syntax $VAR_NAME oder ${VAR_NAME} referenzieren. Diese Variablen werden beim Laden der Einstellungen automatisch aufgelöst. Wenn Sie beispielsweise eine Umgebungsvariable MY_API_TOKEN haben, könnten 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 sich auf den Betrieb von Qwen Code beziehen, wie zum Beispiel:

Konfigurationsmigration

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

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

Boolesche Wertumkehrung: Bei der Migration werden boolesche Werte invertiert (z. B. wird aus disableAutoUpdate: true dann enableAutoUpdate: false).

Konsolidierungsrichtlinie für disableAutoUpdate und disableUpdateNag

Wenn beide Legacy-Einstellungen mit unterschiedlichen Werten vorhanden sind, folgt die Migration dieser Richtlinie: Wenn entweder disableAutoUpdate oder disableUpdateNag den Wert true hat, wird enableAutoUpdate auf false gesetzt:

disableAutoUpdatedisableUpdateNagMigriertes enableAutoUpdate
falsefalsetrue
falsetruefalse
truefalsefalse
truetruefalse

Verfügbare Einstellungen in settings.json

Einstellungen sind in Kategorien organisiert. Alle Einstellungen sollten innerhalb ihres entsprechenden Kategorie-Objekts der obersten Ebene in Ihrer settings.json-Datei platziert werden.

Allgemein

EinstellungTypBeschreibungStandard
general.preferredEditorstringDer bevorzugte Editor zum Öffnen von Dateien.undefined
general.vimModebooleanVim-Tastenkürzel aktivieren.false
general.enableAutoUpdatebooleanAutomatische Update-Prüfungen und Installationen beim Start aktivieren.true
general.gitCoAuthorbooleanAutomatisch einen Co-authored-by-Eintrag zu Git-Commit-Nachrichten hinzufügen, wenn Commits über Qwen Code erstellt werden.true
general.checkpointing.enabledbooleanSitzungs-Checkpointing zur Wiederherstellung aktivieren.false
general.defaultFileEncodingstringStandardkodierung 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 BOM erfordert."utf-8"

output

EinstellungTypBeschreibungStandardMögliche Werte
output.formatstringDas Format der CLI-Ausgabe."text""text", "json"

ui

EinstellungTypBeschreibungStandard
ui.themestringDas Farbthema für die Benutzeroberfläche. Siehe Themen für verfügbare Optionen.undefined
ui.customThemesobjectDefinitionen benutzerdefinierter Themen.{}
ui.hideWindowTitlebooleanDie Titelleiste des Fensters ausblenden.false
ui.hideTipsbooleanHilfreiche Tipps in der Benutzeroberfläche ausblenden.false
ui.hideBannerbooleanDen Anwendungsbanner ausblenden.false
ui.hideFooterbooleanDie Fußzeile aus der Benutzeroberfläche ausblenden.false
ui.showMemoryUsagebooleanSpeichernutzungsinformationen in der Benutzeroberfläche anzeigen.false
ui.showLineNumbersbooleanZeilennummern in Codeblöcken in der CLI-Ausgabe anzeigen.true
ui.showCitationsbooleanZitate für generierten Text im Chat anzeigen.true
enableWelcomeBackbooleanWillkommensdialog beim Zurückkehren zu einem Projekt mit Gesprächsverlauf anzeigen. Wenn aktiviert, erkennt Qwen Code automatisch, ob Sie zu einem Projekt mit einer zuvor generierten Projekts Zusammenfassung (.qwen/PROJECT_SUMMARY.md) zurückkehren, und zeigt einen Dialog an, der es Ihnen ermöglicht, Ihr vorheriges Gespräch fortzusetzen oder neu zu beginnen. Diese Funktion arbeitet zusammen mit dem Befehl /summary und dem Bestätigungsdialog beim Beenden.true
ui.accessibility.enableLoadingPhrasesbooleanLade Phrasen aktivieren (für Barrierefreiheit deaktivieren).true
ui.accessibility.screenReaderbooleanAktiviert den Screenreader-Modus, welcher die TUI für eine bessere Kompatibilität mit Screenreadern anpasst.false
ui.customWittyPhrasesarray of stringsEine Liste benutzerdefinierter Phrasen, die während Ladezuständen angezeigt werden sollen. Wenn angegeben, durchläuft die CLI diese Phrasen anstelle der Standardphrasen.[]

ide

EinstellungTypBeschreibungStandardwert
ide.enabledbooleanAktiviert den IDE-Integrationsmodus.false
ide.hasSeenNudgebooleanZeigt an, ob der Benutzer den Hinweis zur IDE-Integration bereits gesehen hat.false

privacy

EinstellungTypBeschreibungStandardwert
privacy.usageStatisticsEnabledbooleanAktiviert die Erfassung von Nutzungsstatistiken.true

model

EinstellungTypBeschreibungStandard
model.namestringDas Qwen-Modell, das für Gespräche verwendet werden soll.undefined
model.maxSessionTurnsnumberMaximale Anzahl von Benutzer/Modell/Werkzeug-Aufrufen, die in einer Sitzung gespeichert werden sollen. -1 bedeutet unbegrenzt.-1
model.summarizeToolOutputobjectAktiviert oder deaktiviert die Zusammenfassung der Werkzeugausgabe. Sie können das Token-Budget für die Zusammenfassung mit der Einstellung tokenBudget festlegen. Hinweis: Derzeit wird nur das Werkzeug run_shell_command unterstützt. Beispiel: {"run_shell_command": {"tokenBudget": 2000}}undefined
model.generationConfigobjectErweiterte Überschreibungen, die an den zugrunde liegenden Inhaltsgenerator übergeben werden. Unterstützt Anfragesteuerungen wie timeout, maxRetries, enableCacheControl, contextWindowSize (Überschreibt die Kontextfenstergröße des Modells), customHeaders (benutzerdefinierte HTTP-Header für API-Anfragen) und extra_body (zusätzliche Body-Parameter nur für OpenAI-kompatible API-Anfragen), zusammen mit Feinabstimmungsparametern unter samplingParams (z.B. temperature, top_p, max_tokens). Nicht festgelegt lassen, um auf die Standardwerte des Providers zurückzugreifen.undefined
model.chatCompression.contextPercentageThresholdnumberLegt den Schwellenwert für die Komprimierung des Chatverlaufs als Prozentsatz des Gesamttokenlimits des Modells fest. Dies ist ein Wert zwischen 0 und 1, der sowohl für die automatische Komprimierung als auch für den manuellen Befehl /compress gilt. Beispiel: Ein Wert von 0.6 löst die Komprimierung aus, wenn der Chatverlauf 60 % des Tokenlimits überschreitet. Verwenden Sie 0, um die Komprimierung vollständig zu deaktivieren.0.7
model.skipNextSpeakerCheckbooleanÜberspringt die nächste Sprecherprüfung.false
model.skipLoopDetectionbooleanDeaktiviert die Schleifenerkennung. Die Schleifenerkennung verhindert Endlosschleifen in KI-Antworten, kann jedoch Fehlalarme erzeugen, die legitime Workflows unterbrechen. Aktivieren Sie diese Option, wenn Sie häufige Fehlalarme bei der Schleifenerkennung erleben.false
model.skipStartupContextbooleanÜberspringt das Senden des Startarbeitsbereichskontexts (Umgebungszusammenfassung und Bestätigung) am Anfang jeder Sitzung. Aktivieren Sie dies, wenn Sie den Kontext manuell bereitstellen möchten oder Tokens beim Start sparen wollen.false
model.enableOpenAILoggingbooleanAktiviert die Protokollierung von OpenAI-API-Aufrufen für Debugging 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 (relativ zum aktuellen Arbeitsverzeichnis aufgelöst) und ~-Erweiterung (Home-Verzeichnis).undefined

Beispiel model.generationConfig:

{ "model": { "generationConfig": { "timeout": 60000, "contextWindowSize": 128000, "enableCacheControl": true, "customHeaders": { "X-Request-ID": "req-123", "X-User-ID": "user-456" }, "extra_body": { "enable_thinking": true }, "samplingParams": { "temperature": 0.2, "top_p": 0.8, "max_tokens": 1024 } } } }

contextWindowSize:

Überschreibt die Standard-Kontextfenstergröße für das ausgewählte Modell. Qwen Code bestimmt das Kontextfenster anhand eingebauter Standards basierend auf Modellnamensabgleich, mit einem konstanten Rückgriffswert. Verwenden Sie diese Einstellung, wenn das effektive Kontextlimit eines Providers vom Standardwert von Qwen Code abweicht. Dieser Wert definiert die angenommene maximale Kontextkapazität des Modells, nicht das Tokenlimit pro Anfrage.

customHeaders:

Ermöglicht es Ihnen, benutzerdefinierte HTTP-Header zu allen API-Anfragen hinzuzufügen. Dies ist nützlich für Request-Tracing, Monitoring, API-Gateway-Routing oder wenn verschiedene Modelle unterschiedliche Header benötigen. Wenn customHeaders in modelProviders[].generationConfig.customHeaders definiert ist, wird es direkt verwendet; andernfalls werden Header aus model.generationConfig.customHeaders verwendet. Es erfolgt keine Zusammenführung zwischen den beiden Ebenen.

Das Feld extra_body ermöglicht es Ihnen, benutzerdefinierte Parameter zum Anforderungstext hinzuzufügen, die an die API gesendet werden. Dies ist nützlich für anbieterspezifische Optionen, die nicht durch die Standardkonfigurationsfelder abgedeckt sind. Hinweis: Dieses Feld wird nur für OpenAI-kompatible Anbieter unterstützt (openai, qwen-oauth). Es wird für Anthropic- und Gemini-Anbieter ignoriert. Wenn extra_body in modelProviders[].generationConfig.extra_body definiert ist, wird es direkt verwendet; andernfalls werden Werte aus model.generationConfig.extra_body verwendet.

model.openAILoggingDir Beispiele:

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

modelProviders

Verwenden Sie modelProviders, um kuratierte Modelllisten pro Authentifizierungstyp zu deklarieren, zwischen denen der /model-Auswahlmechanismus wechseln kann. Die Schlüssel müssen gültige Authentifizierungstypen sein (openai, anthropic, gemini, vertex-ai, usw.). Jeder Eintrag erfordert eine id und muss envKey enthalten, optional sind name, description, baseUrl und generationConfig. Anmeldedaten werden niemals in den Einstellungen gespeichert; zur Laufzeit werden sie aus process.env[envKey] gelesen. Qwen-OAuth-Modelle bleiben fest codiert und können nicht überschrieben werden.

Beispiel
{ "modelProviders": { "openai": [ { "id": "gpt-4o", "name": "GPT-4o", "envKey": "OPENAI_API_KEY", "baseUrl": "https://api.openai.com/v1", "generationConfig": { "timeout": 60000, "maxRetries": 3, "customHeaders": { "X-Model-Version": "v1.0", "X-Request-Priority": "high" }, "extra_body": { "enable_thinking": true }, "samplingParams": { "temperature": 0.2 } } } ], "anthropic": [ { "id": "claude-3-5-sonnet", "envKey": "ANTHROPIC_API_KEY", "baseUrl": "https://api.anthropic.com/v1" } ], "gemini": [ { "id": "gemini-2.0-flash", "name": "Gemini 2.0 Flash", "envKey": "GEMINI_API_KEY", "baseUrl": "https://generativelanguage.googleapis.com" } ], "vertex-ai": [ { "id": "gemini-1.5-pro-vertex", "envKey": "GOOGLE_API_KEY", "baseUrl": "https://generativelanguage.googleapis.com" } ] } }

[!note] Nur der Befehl /model unterstützt Nicht-Standard-Authentifizierungstypen. Anthropic, Gemini, Vertex AI usw. müssen über modelProviders definiert werden. Der Befehl /auth listet absichtlich nur die integrierten Qwen-OAuth- und OpenAI-Flows auf.

Auflösungsschichten und Atomarität

Die effektiven Authentifizierungs-/Modell-/Anmeldedaten-Werte werden pro Feld unter Verwendung der folgenden Priorität ausgewählt (zuerst vorhanden gewinnt). Sie können --auth-type mit --model kombinieren, um direkt auf einen Anbieter-Eintrag zu verweisen; diese CLI-Flags werden vor anderen Schichten ausgeführt.

Schicht (höchste → niedrigste)authTypemodelapiKeybaseUrlapiKeyEnvKeyproxy
Programmatische Überschreibungen/auth /auth Eingabe/auth Eingabe/auth Eingabe
Modellanbieter-AuswahlmodelProvider.idenv[modelProvider.envKey]modelProvider.baseUrlmodelProvider.envKey
CLI-Argumente--auth-type--model--openaiApiKey (oder anbieterspezifische Äquivalente)--openaiBaseUrl (oder anbieterspezifische Äquivalente)
UmgebungsvariablenAnbieterspezifische Zuordnung (z.B. OPENAI_MODEL)Anbieterspezifische Zuordnung (z.B. OPENAI_API_KEY)Anbieterspezifische Zuordnung (z.B. OPENAI_BASE_URL)
Einstellungen (settings.json)security.auth.selectedTypemodel.namesecurity.auth.apiKeysecurity.auth.baseUrl
Standard / berechnetFallback auf AuthType.QWEN_OAUTHIntegrierter Standard (OpenAI ⇒ qwen3-coder-plus)Config.getProxy(), falls konfiguriert

*Wenn vorhanden, überschreiben CLI-Auth-Flags die Einstellungen. Andernfalls bestimmen security.auth.selectedType oder der implizite Standard den Authentifizierungstyp. Qwen OAuth und OpenAI sind die einzigen Authentifizierungstypen, die ohne zusätzliche Konfiguration angezeigt werden.

Von Modellanbietern stammende Werte werden atomar angewendet: Sobald ein Anbietermodell aktiv ist, wird jedes von ihm definierte Feld vor niedrigeren Schichten geschützt, bis Sie die Anmeldedaten manuell über /auth löschen. Die endgültige generationConfig ist die Projektion über alle Schichten hinweg – niedrigere Schichten füllen nur Lücken, die von höheren Schichten übrig gelassen wurden, und die Anbieterschicht bleibt unveränderlich.

Die Merge-Strategie für modelProviders ist ERSETZEN: Das gesamte modelProviders aus den Projekteinstellungen überschreibt den entsprechenden Abschnitt in den Benutzereinstellungen, anstatt die beiden zusammenzuführen.

Schichtung der Generierungskonfiguration

Pro-Feld-Priorität für generationConfig:

  1. Programmatische Überschreibungen (z. B. Laufzeit-Änderungen von /model, /auth)
  2. modelProviders[authType][].generationConfig
  3. settings.model.generationConfig
  4. Standardwerte des Inhaltsgenerators (getDefaultGenerationConfig für OpenAI, getParameterValue für Gemini usw.)

samplingParams, customHeaders und extra_body werden jeweils als atomare Einheiten behandelt; Anbietewerte ersetzen das gesamte Objekt. Wenn modelProviders[].generationConfig diese Felder definiert, werden sie direkt verwendet; andernfalls werden Werte aus model.generationConfig verwendet. Zwischen Anbieter- und globaler Konfiguration findet keine Zusammenführung statt. Die Standardwerte des Inhaltsgenerators werden zuletzt angewendet, sodass jeder Anbieter seine optimierte Basis beibehält.

Auswahlpersistenz und Empfehlungen

[!important] Definieren Sie modelProviders nach Möglichkeit im benutzerspezifischen ~/.qwen/settings.json und vermeiden Sie das Speichern von Anmeldeinformations-Overrides in beliebigen Bereichen. Wenn der Provider-Katalog in den Benutzereinstellungen bleibt, werden Merge-/Override-Konflikte zwischen Projekt- und Benutzerbereich vermieden und sichergestellt, dass /auth und /model-Aktualisierungen immer in einen konsistenten Bereich geschrieben werden.

  • /model und /auth speichern model.name (wenn zutreffend) und security.auth.selectedType im nächstgelegenen beschreibbaren Bereich, der bereits modelProviders definiert; andernfalls greifen sie auf den Benutzerbereich zurück. Dadurch bleiben Arbeitsbereichs-/Benutzerdateien mit dem aktiven Provider-Katalog synchronisiert.
  • Ohne modelProviders mischt der Resolver CLI-/Umgebungs-/Einstellungsschichten, was für Einzel-Provider-Setups in Ordnung ist, aber umständlich wird, wenn häufig gewechselt wird. Definieren Sie Provider-Kataloge immer dann, wenn Mehrfachmodell-Workflows üblich sind, damit Wechsel atomar, quellenbezogen und debuggbar bleiben.

context

EinstellungTypBeschreibungStandard
context.fileNamestring oder Array von StringsDer Name der Kontextdatei(en).undefined
context.importFormatstringDas Format, das beim Importieren von Speicher verwendet werden soll.undefined
context.includeDirectoriesArrayZusätzliche Verzeichnisse, die in den Arbeitsbereichskontext einbezogen werden sollen. Gibt ein Array zusätzlicher absoluter oder relativer Pfade an, die in den Arbeitsbereichskontext einbezogen werden sollen. Fehlende Verzeichnisse werden standardmäßig mit einer Warnung übersprungen. Pfade können ~ verwenden, um auf das Benutzerverzeichnis zu verweisen. Diese Einstellung kann mit dem Befehlszeilenflag --include-directories kombiniert werden.[]
context.loadFromIncludeDirectoriesbooleanSteuert das Verhalten des Befehls /memory refresh. Wenn auf true gesetzt, sollten QWEN.md-Dateien aus allen hinzugefügten Verzeichnissen geladen werden. Wenn auf false gesetzt, sollte QWEN.md nur aus dem aktuellen Verzeichnis geladen werden.false
context.fileFiltering.respectGitIgnorebooleanBerücksichtigt .gitignore-Dateien bei der Suche.true
context.fileFiltering.respectQwenIgnorebooleanBerücksichtigt .qwenignore-Dateien bei der Suche.true
context.fileFiltering.enableRecursiveFileSearchbooleanOb die rekursive Suche nach Dateinamen im aktuellen Baum beim Vervollständigen von @-Präfixen in der Eingabeaufforderung aktiviert werden soll.true
context.fileFiltering.enableFuzzySearchbooleanWenn true, werden unscharfe Suchfunktionen beim Suchen nach Dateien aktiviert. Auf false setzen, um die Leistung in Projekten mit einer großen Anzahl von Dateien zu verbessern.true

Problembehandlung bei der Dateisuchleistung

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

  1. Verwenden Sie .qwenignore: Erstellen Sie eine .qwenignore-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, Protokolle, node_modules). Die Reduzierung der Gesamtanzahl durchsuchter Dateien ist der effektivste Weg, um die Leistung zu verbessern.
  2. Deaktivieren Sie die unscharfe Suche: Falls das Ignorieren von Dateien nicht ausreicht, können Sie die unscharfe Suche deaktivieren, indem Sie enableFuzzySearch in Ihrer settings.json-Datei auf false setzen. Dadurch wird ein einfacheres, nicht-unscharfes Übereinstimmungsalgorithmus verwendet, der schneller sein kann.
  3. Deaktivieren Sie die rekursive Dateisuche: 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 sie das rekursive Durchsuchen Ihres Projekts vermeidet. Allerdings müssen Sie dann beim Verwenden von @-Vervollständigungen den vollständigen Pfad zu den Dateien eingeben.

tools

EinstellungTypBeschreibungStandardHinweise
tools.sandboxboolean oder stringSandbox-Ausführungsumgebung (kann ein Boolean oder ein Pfad-String sein).undefined
tools.shell.enableInteractiveShellbooleanVerwenden Sie node-pty für eine interaktive Shell-Erfahrung. Der Fallback auf child_process gilt weiterhin.false
tools.coreArray von StringsDies kann verwendet werden, um die Menge der integrierten Tools mit einer Positivliste einzuschränken. Sie können auch Befehlsspezifische Einschränkungen für Tools angeben, die dies unterstützen, wie das run_shell_command-Tool. Zum Beispiel erlaubt "tools.core": ["run_shell_command(ls -l)"] nur die Ausführung des Befehls ls -l.undefined
tools.excludeArray von StringsTool-Namen, die von der Erkennung ausgeschlossen werden sollen. Sie können auch Befehlsspezifische Einschränkungen für Tools angeben, die dies unterstützen, wie das run_shell_command-Tool. Zum Beispiel wird "tools.exclude": ["run_shell_command(rm -rf)"] den Befehl rm -rf blockieren. Sicherheitshinweis: Befehlsspezifische Einschränkungen in tools.exclude für run_shell_command basieren auf einfacher String-Übereinstimmung und können leicht umgangen werden. Diese Funktion ist kein Sicherheitsmechanismus und sollte nicht als verlässlich angesehen werden, um nicht vertrauenswürdigen Code sicher auszuführen. Es wird empfohlen, tools.core zu verwenden, um explizit ausführbare Befehle auszuwählen.undefined
tools.allowedArray von StringsEine Liste von Tool-Namen, die den Bestätigungsdialog umgehen. Dies ist nützlich für Tools, denen Sie vertrauen und die Sie häufig verwenden. Zum Beispiel überspringt ["run_shell_command(git)", "run_shell_command(npm test)"] den Bestätigungsdialog zum Ausführen beliebiger git- und npm test-Befehle.undefined
tools.approvalModestringLegt den Standard-Bestätigungsmodus für die Tool-Nutzung fest.defaultMögliche Werte: plan (nur Analyse, keine Dateiänderungen oder Befehlsausführungen), default (Bestätigung erforderlich vor Dateiänderungen oder Shell-Befehlen), auto-edit (Dateiänderungen automatisch genehmigen), yolo (alle Tool-Aufrufe automatisch genehmigen)
tools.discoveryCommandstringBefehl zur Ausführung der Tool-Erkennung.undefined
tools.callCommandstringDefiniert einen benutzerdefinierten Shell-Befehl zum Aufrufen eines bestimmten Tools, das mit tools.discoveryCommand entdeckt wurde. Der Shell-Befehl muss folgende Kriterien erfüllen: Er muss den Funktionsnamen (genau wie in der Funktionsdeklaration ) als erstes Kommandozeilenargument übernehmen. Er muss Funktionsargumente als JSON über stdin lesen, analog zu functionCall.args. Er muss die Funktionsausgabe als JSON über stdout zurückgeben, analog zu functionResponse.response.content.undefined
tools.useRipgrepbooleanVerwenden Sie ripgrep für die Suche nach Dateiinhalten anstelle der Fallback-Implementierung. Bietet schnellere Suchleistung.true
tools.useBuiltinRipgrepbooleanVerwenden Sie das gebündelte ripgrep-Binary. Wenn auf false gesetzt, wird stattdessen der systemweite rg-Befehl verwendet. Diese Einstellung ist nur wirksam, wenn tools.useRipgrep auf true gesetzt ist.true
tools.enableToolOutputTruncationbooleanAktiviert die Kürzung großer Tool-Ausgaben.trueErfordert Neustart: Ja
tools.truncateToolOutputThresholdnumberKürzt die Tool-Ausgabe, wenn sie größer als diese Anzahl an Zeichen ist. Gilt für Shell-, Grep-, Glob-, ReadFile- und ReadManyFiles-Tools.25000Erfordert Neustart: Ja
tools.truncateToolOutputLinesnumberMaximale Anzahl an Zeilen oder Einträgen, die beim Kürzen der Tool-Ausgabe beibehalten werden. Gilt für Shell-, Grep-, Glob-, ReadFile- und ReadManyFiles-Tools.1000Erfordert Neustart: Ja

mcp

EinstellungTypBeschreibungStandard
mcp.serverCommandZeichenketteBefehl zum Starten eines MCP-Servers.undefined
mcp.allowedArray von ZeichenkettenEine Positivliste von MCP-Servern, die erlaubt sind. Erlaubt Ihnen, eine Liste von MCP-Servernamen anzugeben, die dem Modell zur Verfügung stehen sollen. Dies kann verwendet werden, um den Satz 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 Negativliste 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 einfache Zeichenkettenvergleiche auf MCP-Servernamen, die geändert werden können. Wenn Sie als Systemadministrator Benutzer daran hindern möchten, dies zu umgehen, erwägen Sie, mcpServers auf der Systemeinstellungsebene zu konfigurieren, sodass der Benutzer keine eigenen MCP-Server konfigurieren kann. Dies sollte nicht als vollständiger Sicherheitsmechanismus verwendet werden.

lsp

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

Das Language Server Protocol (LSP) bietet Code-Intelligenz-Funktionen wie Gehe-zu-Definition, Referenzen finden und Diagnosemöglichkeiten.

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

Sicherheit

EinstellungTypBeschreibungStandard
security.folderTrust.enabledbooleanEinstellung, um zu verfolgen, ob der Ordnervertrauensmechanismus 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

Erweitert

EinstellungTypBeschreibungStandardwert
advanced.autoConfigureMemorybooleanKonfiguriert automatisch die Node.js-Speicherlimits.false
advanced.dnsResolutionOrderstringDie Reihenfolge der DNS-Auflösung.undefined
advanced.excludedEnvVarsarray of stringsUmgebungsvariablen, die aus dem Projekt-Kontext ausgeschlossen werden sollen. Gibt Umgebungsvariablen an, die nicht aus den Projekt-.env-Dateien geladen werden sollen. Dadurch wird verhindert, dass projekt-spezifische Umgebungsvariablen (wie DEBUG=true) das Verhalten der CLI beeinflussen. Variablen aus .qwen/.env-Dateien werden niemals ausgeschlossen.["DEBUG","DEBUG_MODE"]
advanced.bugCommandobjectKonfiguration für den Befehl zum Melden von Fehlern. Ü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
advanced.tavilyApiKeystringAPI-Schlüssel für den Tavily-Websuchdienst. Wird verwendet, um die Funktionalität des web_search-Tools zu aktivieren.undefined
Note

Hinweis zu advanced.tavilyApiKey: Dies ist ein veraltetes Konfigurationsformat. Für Qwen-OAuth-Benutzer steht der DashScope-Anbieter automatisch ohne weitere Konfiguration zur Verfügung. Für andere Authentifizierungstypen konfigurieren Sie bitte Tavily oder Google-Anbieter mit dem neuen webSearch-Konfigurationsformat.

mcpServers

Konfiguriert Verbindungen zu einem oder mehreren Model-Context Protocol (MCP)-Servern zum Entdecken und Nutzen benutzerdefinierter Tools. Qwen Code versucht, eine Verbindung zu jedem konfigurierten MCP-Server herzustellen, um verfügbare Tools zu entdecken. Wenn mehrere MCP-Server ein Tool mit demselben Namen bereitstellen, werden die Toolnamen mit dem Server-Alias versehen, den Sie in der Konfiguration definiert haben (z.B. serverAlias__actualToolName), um Konflikte zu vermeiden. Beachten Sie, dass das System bestimmte Schema-Eigenschaften aus MCP-Tool-Definitionen zur Kompatibilität entfernen kann. Mindestens eines von command, url oder httpUrl muss angegeben werden. Wenn mehrere angegeben sind, hat die Reihenfolge der Priorität httpUrl, dann url und schließlich command.

EigenschaftTypBeschreibungOptional
mcpServers.<SERVER_NAME>.commandstringDer Befehl, der ausgeführt werden soll, um den MCP-Server über Standard-I/O zu starten.Ja
mcpServers.<SERVER_NAME>.argsArray von StringsArgumente, die an den Befehl übergeben werden sollen.Ja
mcpServers.<SERVER_NAME>.envObjektUmgebungsvariablen, die für den Server-Prozess gesetzt werden sollen.Ja
mcpServers.<SERVER_NAME>.cwdstringDas Arbeitsverzeichnis, in dem der Server gestartet werden soll.Ja
mcpServers.<SERVER_NAME>.urlstringDie URL eines MCP-Servers, der Server-Sent Events (SSE) für die Kommunikation verwendet.Ja
mcpServers.<SERVER_NAME>.httpUrlstringDie URL eines MCP-Servers, der streamfähiges HTTP für die Kommunikation verwendet.Ja
mcpServers.<SERVER_NAME>.headersObjektEine Zuordnung von HTTP-Headern, die mit Anfragen an url oder httpUrl gesendet werden sollen.Ja
mcpServers.<SERVER_NAME>.timeoutZahlTimeout in Millisekunden für Anfragen an diesen MCP-Server.Ja
mcpServers.<SERVER_NAME>.trustBooleanDiesem Server vertrauen und alle Bestätigungen für Tool-Aufrufe umgehen.Ja
mcpServers.<SERVER_NAME>.descriptionstringEine kurze Beschreibung des Servers, die für Anzeigezwecke verwendet werden kann.Ja
mcpServers.<SERVER_NAME>.includeToolsArray von StringsListe von Toolnamen, die von diesem MCP-Server eingeschlossen werden sollen. Wenn angegeben, sind nur die hier aufgelisteten Tools von diesem Server verfügbar (Verhalten wie eine Positivliste). Wenn nicht angegeben, sind standardmäßig alle Tools des Servers aktiviert.Ja
mcpServers.<SERVER_NAME>.excludeToolsArray von StringsListe von Toolnamen, die von diesem MCP-Server ausgeschlossen werden sollen. Hier aufgelistete Tools stehen dem Modell nicht zur Verfügung, selbst wenn sie vom Server bereitgestellt werden. Hinweis: excludeTools hat Vorrang vor includeTools – wenn sich ein Tool in beiden Listen befindet, wird es ausgeschlossen.Ja

telemetry

Konfiguriert das Logging und die Metrik-Erfassung für Qwen Code. Weitere Informationen finden Sie unter Telemetrie.

EinstellungTypBeschreibungStandardwert
telemetry.enabledbooleanGibt an, ob Telemetrie aktiviert ist.
telemetry.targetstringDas Ziel für die gesammelte Telemetrie. Unterstützte Werte sind local und gcp.
telemetry.otlpEndpointstringDer Endpunkt für den OTLP-Exporter.
telemetry.otlpProtocolstringDas Protokoll für den OTLP-Exporter (grpc oder http).
telemetry.logPromptsbooleanGibt an, ob der Inhalt der Benutzer-Prompts in die Logs aufgenommen werden soll.
telemetry.outfilestringDie Datei, in die die Telemetriedaten geschrieben werden, wenn target auf local gesetzt ist.
telemetry.useCollectorbooleanGibt an, ob ein externer OTLP-Collector verwendet werden soll.

Beispiel settings.json

Hier ist ein Beispiel für eine settings.json-Datei mit der verschachtelten Struktur, neu ab Version 0.3.0:

{ "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", "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 }, "privacy": { "usageStatisticsEnabled": true }, "model": { "name": "qwen3-coder-plus", "maxSessionTurns": 10, "enableOpenAILogging": false, "openAILoggingDir": "~/qwen-logs", "summarizeToolOutput": { "run_shell_command": { "tokenBudget": 100 } } }, "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 Befehlszeilenschnittstelle speichert einen Verlauf der von Ihnen ausgeführten Shell-Befehle. Um Konflikte zwischen verschiedenen Projekten zu vermeiden, wird dieser Verlauf in einem projektspezifischen Verzeichnis innerhalb des Home-Ordners Ihres Benutzers gespeichert.

  • Speicherort: ~/.qwen/tmp/<project_hash>/shell_history
    • <project_hash> ist eine eindeutige Kennung, die aus dem Stammverzeichnis Ihres Projekts generiert wird.
    • Der Verlauf wird in einer Datei mit dem Namen shell_history gespeichert.

Umgebungsvariablen und .env-Dateien

Umgebungsvariablen sind ein üblicher Weg, um Anwendungen zu konfigurieren, insbesondere für sensible Informationen (wie Token) oder für Einstellungen, die sich zwischen verschiedenen Umgebungen ändern können.

Qwen Code kann Umgebungsvariablen automatisch aus .env-Dateien laden. Informationen zu authentifizierungsbezogenen Variablen (wie OPENAI_*) und zum empfohlenen Ansatz mit .qwen/.env finden Sie unter Authentifizierung.

Tip

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

Umgebungsvariablen-Tabelle

VariableBeschreibungHinweise
GEMINI_TELEMETRY_ENABLEDAuf true oder 1 setzen, um Telemetrie zu aktivieren. Jeder andere Wert wird als Deaktivierung behandelt.Überschreibt die Einstellung telemetry.enabled.
GEMINI_TELEMETRY_TARGETLegt das Telemetrie-Ziel fest (local oder gcp).Überschreibt die Einstellung telemetry.target.
GEMINI_TELEMETRY_OTLP_ENDPOINTLegt den OTLP-Endpunkt für Telemetrie fest.Überschreibt die Einstellung telemetry.otlpEndpoint.
GEMINI_TELEMETRY_OTLP_PROTOCOLLegt das OTLP-Protokoll fest (grpc oder http).Überschreibt die Einstellung telemetry.otlpProtocol.
GEMINI_TELEMETRY_LOG_PROMPTSAuf true oder 1 setzen, um das Protokollieren von Benutzer-Prompts zu aktivieren oder deaktivieren. Jeder andere Wert wird als Deaktivierung behandelt.Überschreibt die Einstellung telemetry.logPrompts.
GEMINI_TELEMETRY_OUTFILELegt den Dateipfad fest, in den Telemetriedaten geschrieben werden sollen, wenn das Ziel local ist.Überschreibt die Einstellung telemetry.outfile.
GEMINI_TELEMETRY_USE_COLLECTORAuf true oder 1 setzen, um die Verwendung eines externen OTLP-Collectors zu aktivieren oder deaktivieren. Jeder andere Wert wird als Deaktivierung behandelt.Überschreibt die Einstellung telemetry.useCollector.
GEMINI_SANDBOXAlternative zur sandbox-Einstellung in settings.json.Akzeptiert true, false, docker, podman oder einen benutzerdefinierten Befehlsstring.
SEATBELT_PROFILE(macOS-spezifisch) Wechselt das Seatbelt (sandbox-exec)-Profil unter macOS.permissive-open: (Standard) Beschränkt Schreibvorgänge auf den Projektordner (und einige wenige andere Ordner, siehe packages/cli/src/utils/sandbox-macos-permissive-open.sb), erlaubt aber andere Operationen. strict: Verwendet ein striktes Profil, das Operationen standardmäßig ablehnt. <profil_name>: Verwendet ein benutzerdefiniertes Profil. Um ein benutzerdefiniertes Profil zu definieren, erstellen Sie eine Datei mit dem Namen sandbox-macos-<profil_name>.sb im .qwen/-Verzeichnis Ihres Projekts (z.B. mein-projekt/.qwen/sandbox-macos-custom.sb).
DEBUG oder DEBUG_MODE(häufig von zugrunde liegenden Bibliotheken oder der CLI selbst verwendet) Auf true oder 1 setzen, um ausführliche Debug-Protokollierung zu aktivieren, was bei der Fehlerbehebung hilfreich sein kann.Hinweis: Diese Variablen werden standardmäßig automatisch aus Projekt-.env-Dateien ausgeschlossen, um Störungen mit dem CLI-Verhalten zu verhindern. Verwenden Sie .qwen/.env-Dateien, wenn Sie diese speziell für Qwen Code setzen müssen.
NO_COLORAuf einen beliebigen Wert setzen, um alle Farbausgaben in der CLI zu deaktivieren.
CLI_TITLEAuf einen String setzen, 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.
TAVILY_API_KEYIhr API-Schlüssel für den Tavily-Websuchdienst.Wird verwendet, um die Funktionalität des web_search-Tools zu aktivieren. Beispiel: export TAVILY_API_KEY="tvly-ihr-api-schlüssel-hier"

Befehlszeilenargumente

Argumente, die direkt beim Ausführen der CLI übergeben werden, können andere Konfigurationen für diese spezifische Sitzung überschreiben.

Befehlszeilenargumente-Tabelle

ArgumentAliasBeschreibungMögliche WerteHinweise
--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 eine Eingabeaufforderung direkt an den Befehl zu übergeben. Dadurch wird Qwen Code im nicht-interaktiven Modus aufgerufen.Ihr Prompt-TextVerwenden Sie für Skriptbeispiele das Flag --output-format json, um strukturierte Ausgabe zu erhalten.
--prompt-interactive-iStartet eine interaktive Sitzung mit dem bereitgestellten Prompt als Initialwert.Ihr Prompt-TextDer Prompt wird innerhalb der interaktiven Sitzung verarbeitet, nicht davor. Kann nicht verwendet werden, wenn die Eingabe über stdin geleitet wird. Beispiel: qwen -i "erkläre diesen Code"
--output-format-oGibt das Format der CLI-Ausgabe für den nicht-interaktiven Modus an.text, json, stream-jsontext: (Standard) Die übliche menschenlesbare Ausgabe. json: Eine maschinenlesbare JSON-Ausgabe, die am Ende der Ausführung ausgegeben wird. stream-json: Streamende JSON-Nachrichten, die während der Ausführung ausgegeben werden. Für strukturierte Ausgabe und Skripte verwenden Sie das Flag --output-format json oder --output-format stream-json. Siehe Headless-Modus für detaillierte Informationen.
--input-formatGibt das Format an, das von der Standardeingabe konsumiert wird.text, stream-jsontext: (Standard) Standard-Texteingabe 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-Modus für detaillierte Informationen.
--include-partial-messagesSchließt teilweise Assistentennachrichten ein, wenn das Ausgabeformat stream-json verwendet wird. Wenn aktiviert, werden Stream-Ereignisse (message_start, content_block_delta usw.) während des Streamings ausgegeben.Standard: false. Voraussetzung: Erfordert, dass --output-format stream-json gesetzt ist. Siehe Headless-Modus für detaillierte Informationen zu Stream-Ereignissen.
--sandbox-sAktiviert den Sandbox-Modus für diese Sitzung.
--sandbox-imageLegt die URI des Sandbox-Images fest.
--debug-dAktiviert den Debug-Modus für diese Sitzung und liefert ausführlichere Ausgaben.
--all-files-aFalls gesetzt, werden rekursiv alle Dateien im aktuellen Verzeichnis als Kontext für den Prompt eingeschlossen.
--help-hZeigt Hilfegrundlagen zu den Befehlszeilenargumenten an.
--show-memory-usageZeigt die aktuelle Speichernutzung an.
--yoloAktiviert den YOLO-Modus, der automatisch alle Tool-Aufrufe genehmigt.
--approval-modeLegt den Genehmigungsmodus für Tool-Aufrufe fest.plan, default, auto-edit, yoloUnterstützte Modi: plan: Nur Analyse – keine Dateiänderungen oder Befehlsexeution. default: Erfordert Genehmigung für Dateibearbeitungen oder Shell-Befehle (Standardverhalten). auto-edit: Genehmigt Bearbeitungstools (edit, write_file) automatisch, fragt aber bei anderen ab. yolo: Genehmigt alle Tool-Aufrufe automatisch (äquivalent zu --yolo). Kann nicht zusammen mit --yolo verwendet werden. Verwenden Sie --approval-mode=yolo statt --yolo für den neuen vereinheitlichten Ansatz. Beispiel: qwen --approval-mode auto-edit
Weitere Informationen unter Genehmigungsmodus.
--allowed-toolsEine durch Kommas getrennte Liste von Toolnamen, die den Bestätigungsdialog umgehen.ToolnamenBeispiel: qwen --allowed-tools "Shell(git status)"
--telemetryAktiviert Telemetrie.
--telemetry-targetLegt das Telemetrieziel fest.Siehe Telemetrie für weitere Informationen.
--telemetry-otlp-endpointLegt den OTLP-Endpunkt für Telemetrie fest.Siehe Telemetrie für weitere Informationen.
--telemetry-otlp-protocolLegt das OTLP-Protokoll für Telemetrie fest (grpc oder http).Standard ist grpc. Siehe Telemetrie für weitere Informationen.
--telemetry-log-promptsAktiviert das Logging von Prompts für Telemetrie.Siehe Telemetrie für weitere Informationen.
--checkpointingAktiviert Checkpointing.
--acpAktiviert ACP-Modus (Agent Client Protocol). Nützlich für IDE-/Editor-Integrationen wie Zed.Stabil. Ersetzt das veraltete Flag --experimental-acp.
--experimental-lspAktiviert experimentelle LSP (Language Server Protocol)-Funktionen für Code-Intelligenz (Gehe-zur-Definition, Referenzen finden, Diagnose usw.).Experimentell. Erfordert installierte Sprachserver.
--extensions-eGibt eine Liste von Erweiterungen an, die für die Sitzung verwendet werden sollen.ErweiterungsnamenFalls 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 das Programm.
--proxyLegt den Proxy für die CLI fest.Proxy-URLBeispiel: --proxy http://localhost:7890.
--include-directoriesSchließt zusätzliche Verzeichnisse im Arbeitsbereich für Multi-Verzeichnis-Unterstützung ein.VerzeichnispfadeKann mehrfach angegeben oder als kommagetrennte Werte übergeben werden. Maximal 5 Verzeichnisse können hinzugefügt werden. Beispiel: --include-directories /pfad/zu/projekt1,/pfad/zu/projekt2 oder --include-directories /pfad/zu/projekt1 --include-directories /pfad/zu/projekt2
--screen-readerAktiviert den Screenreader-Modus, der die TUI für bessere Kompatibilität mit Screenreadern anpasst.
--versionZeigt die Version der CLI an.
--openai-loggingAktiviert das Logging von OpenAI-API-Aufrufen für Debugging und Analyse.Dieses Flag überschreibt die Einstellung enableOpenAILogging in settings.json.
--openai-logging-dirLegt einen benutzerdefinierten Verzeichnispfad für OpenAI-API-Logs fest.VerzeichnispfadDieses Flag überschreibt die Einstellung openAILoggingDir in settings.json. Unterstützt absolute Pfade, relative Pfade und ~-Expansion. Beispiel: qwen --openai-logging-dir "~/qwen-logs" --openai-logging
--tavily-api-keyLegt den Tavily-API-Schlüssel für Web-Suchfunktionalität für diese Sitzung fest.API-SchlüsselBeispiel: qwen --tavily-api-key tvly-ihr-api-schlüssel-hier

Kontextdateien (hierarchischer Anweisungskontext)

Obwohl dies nicht strikt eine Konfiguration für das Verhalten der CLI ist, sind Kontextdateien (standardmäßig QWEN.md, aber konfigurierbar über die Einstellung context.fileName) entscheidend für die Konfiguration des anweisenden Kontexts (auch als „Speicher“ bezeichnet). Diese leistungsstarke Funktion ermöglicht es Ihnen, projektspezifische Anweisungen, Kodierungsstile oder andere relevante Hintergrundinformationen an die KI zu übergeben, wodurch deren Antworten besser auf Ihre Bedürfnisse zugeschnitten und genauer werden. Die CLI enthält Benutzeroberflächenelemente wie 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 Kontextinformationen, die dem Qwen-Modell während Ihrer Interaktionen bekannt sein sollen. Das System ist so ausgelegt, dass es diesen anweisenden Kontext hierarchisch verwaltet.

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

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

# Projekt: Meine fantastische TypeScript-Bibliothek ## Allgemeine Anweisungen: - Beim Generieren von neuem TypeScript-Code bitte den bestehenden Codierstil beachten. - Sicherstellen, dass alle neuen Funktionen und Klassen JSDoc-Kommentare enthalten. - Wo angebracht, funktionale Programmierparadigmen bevorzugen. - Der gesamte Code sollte mit TypeScript 5.0 und Node.js 20+ kompatibel sein. ## Codierstil: - Für Einrückungen 2 Leerzeichen verwenden. - Schnittstellennamen sollten mit `I` beginnen (z. B. `IUserService`). - Private Klassenmember sollten mit einem Unterstrich (`_`) beginnen. - Immer strikte Gleichheit verwenden (`===` und `!==`). ## Spezifische Komponente: `src/api/client.ts` - Diese Datei behandelt alle ausgehenden API-Anfragen. - Beim Hinzufügen neuer API-Aufruffunktionen sicherstellen, dass diese robuste Fehlerbehandlung und Protokollierung enthalten. - Für alle GET-Anfragen das vorhandene `fetchWithRetry`-Hilfsmittel verwenden.

Bezüglich Abhängigkeiten:

  • Vermeiden Sie die Einführung neuer externer Abhängigkeiten, es sei denn, sie sind absolut notwendig.
  • Falls eine neue Abhängigkeit erforderlich ist, geben Sie bitte den Grund an.
Dieses Beispiel zeigt, wie Sie allgemeinen Projekt-Kontext, spezifische Kodierungsrichtlinien und sogar Hinweise zu bestimmten Dateien oder Komponenten bereitstellen können. Je relevanter und präziser Ihre Kontextdateien sind, desto besser kann die KI Ihnen helfen. Projektspezifische Kontextdateien werden dringend empfohlen, um Konventionen und Kontext festzulegen. - **Hierarchisches Laden und Priorität:** Die CLI implementiert ein hierarchisches Speichersystem durch das Laden von Kontextdateien (z.B. `QWEN.md`) aus mehreren Orten. Inhalte aus Dateien weiter unten in dieser Liste (spezifischer) überschreiben oder ergänzen typischerweise Inhalte aus Dateien weiter oben (allgemeiner). Die genaue Zusammenfügungsreihenfolge und der endgültige Kontext können mit dem Befehl `/memory show` eingesehen werden. Die typische Lade-Reihenfolge ist: 1. **Globale Kontextdatei:** - Ort: `~/.qwen/<konfigurierte-kontext-dateiname>` (z.B. `~/.qwen/QWEN.md` in Ihrem Benutzerverzeichnis). - Gültigkeitsbereich: Stellt Standardanweisungen für alle Ihre Projekte bereit. 2. **Projektstamm- und übergeordnete Kontextdateien:** - Ort: Die CLI sucht nach der konfigurierten Kontextdatei im aktuellen Arbeitsverzeichnis und dann in jedem übergeordneten Verzeichnis bis zum Projektstamm (identifiziert durch einen `.git`-Ordner) oder Ihrem Home-Verzeichnis. - Gültigkeitsbereich: Stellt Kontext bereit, der für das gesamte Projekt oder einen bedeutenden Teil davon relevant ist. - **Zusammenfügung & UI-Anzeige:** Die Inhalte aller gefundenen Kontextdateien werden zusammengeführt (mit Trennzeichen, die ihren Ursprung und Pfad anzeigen) 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 instruktiven Kontext. - **Inhalte importieren:** 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 [Memory Import Processor-Dokumentation](../configuration/memory). - **Befehle zur Speicherverwaltung:** - Verwenden Sie `/memory refresh`, um einen erneuten Scan und Neuladen aller Kontextdateien aus allen konfigurierten Orten zu erzwingen. Dadurch wird der instruktive Kontext der KI aktualisiert. - Verwenden Sie `/memory show`, um den aktuell geladenen kombinierten instruktiven Kontext anzuzeigen, sodass Sie die Hierarchie und die von der KI verwendeten Inhalte überprüfen können. - Siehe [Befehlsdokumentation](../features/commands) für vollständige Details zum `/memory`-Befehl und seinen Unterbefehlen (`show` und `refresh`). Durch das Verständnis und die Nutzung dieser Konfigurationsschichten und der hierarchischen Natur der Kontextdateien können Sie den Speicher der KI effektiv verwalten und die Antworten von Qwen Code an Ihre spezifischen Anforderungen und Projekte anpassen. ## Sandbox Qwen Code kann potenziell unsichere Operationen (wie Shell-Befehle und Dateiänderungen) innerhalb einer isolierten Umgebung ausführen, um Ihr System zu schützen. [Sandbox](../features/sandbox) ist standardmäßig deaktiviert, kann aber auf verschiedene Arten aktiviert werden: - Verwendung des Flags `--sandbox` oder `-s`. - Setzen der Umgebungsvariable `GEMINI_SANDBOX`. - Die Sandbox ist standardmäßig aktiviert, wenn `--yolo` oder `--approval-mode=yolo` verwendet wird. Standardmäßig wird ein vorgefertigtes Docker-Image `qwen-code-sandbox` verwendet. Für projektspezifische Sandbox-Anforderungen können Sie eine benutzerdefinierte Dockerfile unter `.qwen/sandbox.Dockerfile` im Stammverzeichnis Ihres Projekts erstellen. Diese Dockerfile kann auf dem Basis-Sandbox-Image basieren:

FROM qwen-code-sandbox

Fügen Sie hier Ihre benutzerdefinierten Abhängigkeiten oder Konfigurationen hinzu

Zum Beispiel:

RUN apt-get update && apt-get install -y some-package

COPY ./my-config /app/my-config

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

BUILD_SANDBOX=1 qwen -s

## Nutzungsstatistiken Um uns bei der Verbesserung von Qwen Code zu helfen, 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 waren oder fehlschlugen, und wie lange die Ausführung dauerte. Wir erfassen nicht die Argumente, die an die Tools übergeben wurden, oder Daten, die von ihnen zurückgegeben wurden. - **API-Anfragen:** Wir protokollieren das Modell, das für jede Anfrage verwendet wurde, die Dauer der Anfrage und ob sie erfolgreich war. Wir erfassen nicht den Inhalt der Prompts oder Antworten. - **Sitzungsinformationen:** Wir sammeln Informationen zur Konfiguration der CLI, wie z. B. die aktivierten Tools und den Genehmigungsmodus. **Was wir NICHT sammeln:** - **Personenbezogene Daten (PII):** Wir erfassen keine persönlichen Informationen wie Ihren Namen, Ihre E-Mail-Adresse oder API-Schlüssel. - **Inhalt von Prompts und Antworten:** Wir protokollieren nicht den Inhalt Ihrer Prompts 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 Erfassung von Nutzungsstatistiken jederzeit deaktivieren, indem Sie die Eigenschaft `usageStatisticsEnabled` unter der Kategorie `privacy` in Ihrer Datei `settings.json` auf `false` setzen:

{ “privacy”: { “usageStatisticsEnabled”: false } }

> [!note] > > Wenn Nutzungsstatistiken aktiviert sind, werden Ereignisse an einen Alibaba Cloud RUM-Erfassungsendpunkt gesendet.
Last updated on