Skip to Content
BenutzerhandbuchKonfigurationEinstellungen

Qwen-Code-Konfiguration

Tip

Authentifizierung / API-Schlüssel: Die Authentifizierung (Qwen-OAuth, Alibaba-Cloud-Coding-Plan oder API-Schlüssel) sowie auth-bezogene Umgebungsvariablen (wie OPENAI_API_KEY) sind unter Authentifizierung dokumentiert.

Note

Hinweis zum neuen Konfigurationsformat: Das Format der Datei settings.json wurde auf eine neue, übersichtlichere Struktur aktualisiert. Das alte Format wird automatisch migriert. Qwen Code bietet mehrere Möglichkeiten, sein Verhalten über Umgebungsvariablen, Befehlszeilenargumente und Einstellungsdateien zu konfigurieren. Dieses Dokument beschreibt die verschiedenen Konfigurationsmethoden und die verfügbaren Einstellungen.

Konfigurationsebenen

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

EbeneKonfigurationsquelleBeschreibung
1StandardwerteFest im Code hinterlegte Standardwerte innerhalb der Anwendung
2SystemstandarddateiSystemweite Standardkonfiguration, die durch andere Konfigurationsdateien überschrieben werden kann
3BenutzereinstellungsdateiGlobale Einstellungen für den aktuellen Benutzer
4ProjekteinstellungsdateiProjektspezifische Einstellungen
5SystemeinstellungsdateiSystemweite Einstellungen, die alle anderen Konfigurationsdateien überschreiben
6UmgebungsvariablenSystemweite oder sessionspezifische Variablen, möglicherweise aus .env-Dateien geladen
7BefehlszeilenargumenteWerte, die beim Starten der CLI übergeben werden

Einstellungsdateien

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

DateitypSpeicherortGültigkeitsbereich
SystemstandarddateiLinux: /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 mithilfe der Umgebungsvariablen QWEN_CODE_SYSTEM_DEFAULTS_PATH überschrieben werden.
Stellt eine Basisschicht systemweiter Standardeinstellungen bereit. Diese Einstellungen haben die niedrigste Priorität und sollen durch Benutzer-, Projekt- oder Systemüberschreibungseinstellungen überschrieben werden.
Benutzereinstellungsdatei~/.qwen/settings.json (wobei ~ Ihr Home-Verzeichnis ist).Gilt für alle Qwen-Code-Sitzungen des aktuellen Benutzers.
Projekteinstellungsdatei.qwen/settings.json im Stammverzeichnis Ihres Projekts.Gilt nur, wenn Qwen Code aus diesem spezifischen Projekt heraus 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 mithilfe 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 die Qwen-Code-Konfigurationen ihrer Benutzer zu steuern.
Note

Hinweis zu Umgebungsvariablen in Einstellungsdateien: Zeichenfolgenwerte innerhalb Ihrer settings.json-Dateien können Umgebungsvariablen mit der Syntax $VAR_NAME oder ${VAR_NAME} referenzieren. Diese Variablen werden automatisch aufgelöst, sobald die Einstellungen geladen werden. Wenn Sie beispielsweise die Umgebungsvariable MY_API_TOKEN definiert haben, können Sie sie in settings.json wie folgt verwenden: "apiKey": "$MY_API_TOKEN".

Das Verzeichnis .qwen in Ihrem Projekt

Neben einer Projekteinstellungsdatei kann das Verzeichnis .qwen Ihres Projekts weitere projektspezifische Dateien enthalten, die für den Betrieb von Qwen Code relevant sind, beispielsweise:

Konfigurationsmigration

Qwen Code migriert automatisch veraltete Konfigurationseinstellungen in das neue Format. Vor der Migration werden alte Einstellungsdateien gesichert. Die folgenden Einstellungen wurden von einer negativen (disable*) in eine positive (enable*) Benennung umbenannt:

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

Invertierung boolescher Werte: Bei der Migration werden boolesche Werte invertiert (z. B. wird aus disableAutoUpdate: true enableAutoUpdate: false).

Konsolidierungsrichtlinie für disableAutoUpdate und disableUpdateNag

Wenn beide veralteten Einstellungen mit unterschiedlichen Werten vorhanden sind, erfolgt die Migration nach folgender Richtlinie: Falls entweder disableAutoUpdate oder disableUpdateNag den Wert true hat, wird enableAutoUpdate auf false gesetzt:

disableAutoUpdatedisableUpdateNagMigrierte enableAutoUpdate
falsefalsetrue
falsetruefalse
truefalsefalse
truetruefalse

Verfügbare Einstellungen in settings.json

Einstellungen sind in Kategorien gruppiert. Alle Einstellungen müssen innerhalb des entsprechenden obersten Kategorieobjekts in Ihrer Datei settings.json platziert werden.

Allgemein

EinstellungTypBeschreibungStandardwert
general.preferredEditorZeichenketteDer bevorzugte Editor zum Öffnen von Dateien.undefined
general.vimModeBooleanAktiviert Vim-Tastenkombinationen.false
general.enableAutoUpdateBooleanAktiviert automatische Prüfungen auf Updates und deren Installation beim Start.true
general.gitCoAuthorBooleanFügt Git-Commit-Nachrichten automatisch einen „Co-authored-by“-Trailer hinzu, wenn Commits über Qwen Code erstellt werden.true
general.checkpointing.enabledBooleanAktiviert die Sitzungs-Wiederherstellung über Checkpoints.false
general.defaultFileEncodingZeichenketteStandardcodierung 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"

Ausgabe

EinstellungTypBeschreibungStandardwertMögliche Werte
output.formatZeichenketteDas Format der CLI-Ausgabe."text""text", "json"

ui

EinstellungTypBeschreibungStandardwert
ui.themeZeichenketteDas Farbthema für die Benutzeroberfläche. Siehe Themen für verfügbare Optionen.undefined
ui.customThemesObjektDefinitionen benutzerdefinierter Themen.{}
ui.hideWindowTitleBooleanBlendet die Titelleiste des Fensters aus.false
ui.hideTipsBooleanBlendet hilfreiche Tipps in der Benutzeroberfläche aus.false
ui.hideBannerBooleanBlendet das Anwendungsbanner aus.false
ui.hideFooterBooleanBlendet die Fußzeile der Benutzeroberfläche aus.false
ui.showMemoryUsageBooleanZeigt Informationen zur Speicherauslastung in der Benutzeroberfläche an.false
ui.showLineNumbersBooleanZeigt Zeilennummern in Codeblöcken der CLI-Ausgabe an.true
ui.showCitationsBooleanZeigt Zitierhinweise für generierten Text im Chat an.true
enableWelcomeBackBooleanZeigt einen Willkommensdialog an, wenn Sie zu einem Projekt mit Verlaufsdaten 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 einen Dialog an, über den Sie Ihre vorherige Unterhaltung fortsetzen oder neu beginnen können. Diese Funktion ist in den /summary-Befehl und den Bestätigungsdialog beim Beenden integriert.true
ui.accessibility.enableLoadingPhrasesBooleanAktiviert Ladehinweise (zur Verbesserung der Barrierefreiheit deaktivieren).true
ui.accessibility.screenReaderBooleanAktiviert den Bildschirmlesermodus, der die TUI für eine bessere Kompatibilität mit Bildschirmlesern anpasst.false
ui.customWittyPhrasesArray von ZeichenkettenEine Liste benutzerdefinierter Phrasen, die während Ladezustände angezeigt werden. Wenn angegeben, durchläuft die CLI diese Phrasen anstelle der Standardphrasen.[]

IDE

EinstellungTypBeschreibungStandardwert
ide.enabledbooleanAktiviert den IDE-Integrationsmodus.false
ide.hasSeenNudgebooleanGibt an, ob der Benutzer die IDE-Integrationshinweis bereits gesehen hat.false

Datenschutz

EinstellungTypBeschreibungStandardwert
privacy.usageStatisticsEnabledbooleanAktiviert das Sammeln von Nutzungsstatistiken.true

Modell

EinstellungTypBeschreibungStandardwert
model.nameZeichenketteDas Qwen-Modell, das für Konversationen verwendet werden soll.undefined
model.maxSessionTurnsZahlMaximale Anzahl an Benutzer-/Modell-/Tool-Austauschen, die in einer Sitzung gespeichert werden. Der Wert -1 bedeutet unbegrenzt.-1
model.generationConfigObjektErweiterte Überschreibungen, die an den zugrundeliegenden Inhalts-Generator übergeben werden. Unterstützt Anfragesteuerungen wie timeout, maxRetries, enableCacheControl, 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 Anfragetext-Parameter ausschließlich für OpenAI-kompatible API-Anfragen), sowie Feinabstimmungsparameter unter samplingParams (z. B. temperature, top_p, max_tokens). Wenn nicht festgelegt, werden die Standardwerte des Anbieters verwendet.undefined
model.chatCompression.contextPercentageThresholdZahlLegt die Schwelle für die Komprimierung des Chatverlaufs als Prozentwert der gesamten Token-Grenze 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. Ein Wert von 0.6 löst beispielsweise die Komprimierung aus, sobald der Chatverlauf 60 % der Token-Grenze ü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 Schleiferkennung. Die Schleiferkennung verhindert unendliche Schleifen in KI-Antworten, kann jedoch falsch-positive Ergebnisse liefern, die legitime Abläufe unterbrechen. Aktivieren Sie diese Option, wenn Sie häufig falsch-positive Unterbrechungen durch die Schleiferkennung erleben.false
model.skipStartupContextBooleanÜberspringt das Senden des Startarbeitsbereich-Kontexts (Zusammenfassung der Umgebung und Bestätigung) zu Beginn jeder Sitzung. Aktivieren Sie diese Option, wenn Sie den Kontext lieber manuell bereitstellen oder beim Start Token sparen möchten.false
model.enableOpenAILoggingBooleanAktiviert das Logging von OpenAI-API-Aufrufen für Debugging und Analyse. Wenn aktiviert, werden API-Anfragen und -Antworten in JSON-Dateien protokolliert.false
model.openAILoggingDirZeichenketteBenutzerdefinierter Pfad zum Verzeichnis für OpenAI-API-Logs. Falls nicht angegeben, wird standardmäßig logs/openai im aktuellen Arbeitsverzeichnis verwendet. Unterstützt absolute Pfade, relative Pfade (aufgelöst vom aktuellen Arbeitsverzeichnis) sowie ~-Erweiterung (Heimatverzeichnis).undefined

Beispiel für model.generationConfig:

{ "model": { "generationConfig": { "timeout": 60000, "contextWindowSize": 128000, "modalities": { "image": true }, "enableCacheControl": true, "customHeaders": { "X-Client-Request-ID": "req-123" }, "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 integrierter Standardwerte, die auf Namensmustern des Modells basieren, mit einem konstanten Fallback-Wert. Verwenden Sie diese Einstellung, wenn die effektive Kontextgrenze eines Anbieters von der Standard-Kontextgrenze von Qwen Code abweicht. Dieser Wert definiert die vom Modell angenommene maximale Kontextkapazität, nicht eine pro Anfrage geltende Token-Grenze.

modalities:

Überschreibt die automatisch erkannten Eingabemodalitäten für das ausgewählte Modell. Qwen Code erkennt unterstützte Modalitäten (Bild, PDF, Audio, Video) automatisch anhand von Namensmustern des Modells. Verwenden Sie diese Einstellung, wenn die automatische Erkennung fehlerhaft ist – z. B., um pdf für ein Modell zu aktivieren, das dies 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, um nicht unterstützte Typen auszuschließen.

customHeaders:

Ermöglicht das Hinzufügen benutzerdefinierter HTTP-Header zu allen API-Anfragen. Dies ist nützlich für Request-Tracing, Monitoring, Routing über API-Gateways oder wenn verschiedene Modelle unterschiedliche Header benötigen. Falls customHeaders in modelProviders[].generationConfig.customHeaders definiert ist, wird dieser direkt verwendet; andernfalls werden die Header aus model.generationConfig.customHeaders genutzt. Zwischen beiden Ebenen findet keine Zusammenführung statt.

Das Feld extra_body ermöglicht das Hinzufügen benutzerdefinierter Parameter zum Anfragetext, der an die API gesendet wird. 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 (openai, qwen-oauth) unterstützt. Für Anthropic- und Gemini-Anbieter wird es ignoriert. Falls extra_body in modelProviders[].generationConfig.extra_body definiert ist, wird dieser direkt verwendet; andernfalls werden die Werte aus model.generationConfig.extra_body genutzt.

Beispiele für model.openAILoggingDir:

  • "~/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

Kontext

EinstellungTypBeschreibungStandardwert
context.fileNameZeichenkette oder Array von ZeichenkettenDer Name der bzw. der Kontextdatei(en).undefined
context.importFormatZeichenketteDas Format, das beim Importieren von Speicherinhalten verwendet wird.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 Home-Verzeichnis des Benutzers zu verweisen. Diese Einstellung kann mit dem Befehlszeilenflag --include-directories kombiniert werden.[]
context.loadFromIncludeDirectoriesBooleanSteuert das Verhalten des Befehls /memory refresh. Ist dieser Wert auf true gesetzt, werden QWEN.md-Dateien aus allen hinzugefügten Verzeichnissen geladen. Ist er auf false gesetzt, werden QWEN.md-Dateien nur aus dem aktuellen Verzeichnis geladen.false
context.fileFiltering.respectGitIgnoreBooleanBerücksichtigt .gitignore-Dateien bei der Suche.true
context.fileFiltering.respectQwenIgnoreBooleanBerücksichtigt .qwenignore-Dateien bei der Suche.true
context.fileFiltering.enableRecursiveFileSearchBooleanAktiviert die rekursive Suche nach Dateinamen im aktuellen Verzeichnisbaum beim Vervollständigen von @-Präfixen in der Eingabeaufforderung.true
context.fileFiltering.enableFuzzySearchBooleanAktiviert bei true die fuzzy-Suche beim Suchen nach Dateien. Auf false setzen, um die Leistung in Projekten mit einer großen Anzahl von Dateien zu verbessern.true

Problembehandlung bei der Dateisuchleistung

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

  1. Verwenden Sie .qwenignore: Erstellen Sie eine Datei .qwenignore im Stammverzeichnis Ihres Projekts, um Verzeichnisse auszuschließen, die eine große Anzahl von Dateien enthalten, auf die Sie nicht zugreifen müssen (z. B. Build-Artefakte, Protokolldateien oder node_modules). Die Reduzierung der Gesamtanzahl durchsuchter Dateien ist die effektivste Methode zur Leistungsverbesserung.
  2. Deaktivieren Sie die unscharfe Suche: Falls das Ausschließen von Dateien nicht ausreicht, können Sie die unscharfe Suche deaktivieren, indem Sie in Ihrer Datei settings.json die Einstellung enableFuzzySearch auf false setzen. Dadurch wird ein einfacherer, nicht-unscharfer Abgleichsalgorithmus verwendet, der schneller sein kann.
  3. Deaktivieren Sie die rekursive Dateisuche: Als letztes Mittel können Sie die rekursive Dateisuche vollständig deaktivieren, indem Sie enableRecursiveFileSearch in Ihrer settings.json auf false setzen. Dies ist die schnellste Option, da sie eine rekursive Durchsuchung Ihres Projekts vermeidet. Allerdings müssen Sie dann beim Einsatz von @-Vervollständigungen den vollständigen Pfad zu den Dateien eingeben.

Tools

EinstellungTypBeschreibungStandardwertHinweise
tools.sandboxBoolean oder ZeichenketteSandbox-Ausführungsumgebung (kann ein Boolean oder ein Pfad als Zeichenkette sein).undefined
tools.shell.enableInteractiveShellBooleanVerwendet node-pty für eine interaktive Shell-Erfahrung. Der Fallback auf child_process bleibt weiterhin aktiv.false
tools.coreArray von ZeichenkettenDamit kann die Menge der integrierten Tools über eine Whitelist eingeschränkt werden. Für Tools, die dies unterstützen (z. B. run_shell_command), können auch kommandospezifische Einschränkungen angegeben werden. Beispiel: "tools.core": ["run_shell_command(ls -l)"] erlaubt ausschließlich die Ausführung des Befehls ls -l.undefined
tools.excludeArray von ZeichenkettenTool-Namen, die bei der Tool-Erkennung ausgeschlossen werden sollen. Für Tools, die dies unterstützen (z. B. run_shell_command), können auch kommandospezifische Einschränkungen angegeben werden. Beispiel: "tools.exclude": ["run_shell_command(rm -rf)"] blockiert den Befehl rm -rf. Sicherheitshinweis: Kommandospezifische Einschränkungen in tools.exclude für run_shell_command basieren auf einfacher Zeichenkettenübereinstimmung und können leicht umgangen werden. Diese Funktion ist kein Sicherheitsmechanismus und darf nicht zur sicheren Ausführung nicht vertrauenswürdigen Codes genutzt werden. Es wird empfohlen, tools.core zu verwenden, um explizit die ausführbaren Befehle festzulegen.undefined
tools.allowedArray von ZeichenkettenListe von Tool-Namen, die den Bestätigungsdialog umgehen. Nützlich für Tools, denen Sie vertrauen und die Sie häufig nutzen. Beispiel: ["run_shell_command(git)", "run_shell_command(npm test)"] überspringt den Bestätigungsdialog für beliebige git- und npm test-Befehle.undefined
tools.approvalModeZeichenketteLegt den Standardgenehmigungsmodus für die Tool-Nutzung fest.defaultMögliche Werte: plan (nur Analyse, keine Dateiänderungen oder Befehlsausführungen), default (Bestätigung vor Dateiänderungen oder Shell-Befehlen erforderlich), auto-edit (Dateiänderungen werden automatisch genehmigt), yolo (alle Tool-Aufrufe werden automatisch genehmigt)
tools.discoveryCommandZeichenketteBefehl zur Durchführung der Tool-Erkennung.undefined
tools.callCommandZeichenketteDefiniert einen benutzerdefinierten Shell-Befehl zum Aufruf eines bestimmten Tools, das mittels tools.discoveryCommand erkannt wurde. Der Shell-Befehl muss folgende Kriterien erfüllen: Er muss den Funktionsnamen (exakt wie in der Funktionsdeklaration ) als erstes Kommandozeilenargument enthalten. Er muss die 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.useRipgrepBooleanVerwendet ripgrep für die Suche nach Dateiinhalten anstelle der Fallback-Implementierung. Bietet schnellere Suchleistung.true
tools.useBuiltinRipgrepBooleanVerwendet die integrierte ripgrep-Binärdatei. Ist dieser Wert auf false gesetzt, wird stattdessen der systemweite rg-Befehl verwendet. Diese Einstellung wirkt nur, wenn tools.useRipgrep auf true gesetzt ist.true
tools.truncateToolOutputThresholdZahlKürzt die Tool-Ausgabe, falls sie größer als diese Anzahl Zeichen ist. Wirkt auf die Tools Shell, Grep, Glob, ReadFile und ReadManyFiles.25000Neustart erforderlich: Ja
tools.truncateToolOutputLinesZahlMaximale Anzahl an Zeilen oder Einträgen, die bei der Kürzung der Tool-Ausgabe beibehalten werden. Wirkt auf die Tools Shell, Grep, Glob, ReadFile und ReadManyFiles.1000Neustart erforderlich: Ja

mcp

EinstellungTypBeschreibungStandardwert
mcp.serverCommandZeichenketteBefehl zum Starten eines MCP-Servers.undefined
mcp.allowedArray von ZeichenkettenEine Whitelist mit zulässigen MCP-Servern. Hier können Sie eine Liste von MCP-Servernamen angeben, die dem Modell zur Verfügung gestellt werden sollen. Damit lässt sich die Menge der verfügbaren MCP-Server einschränken. Beachten Sie: Diese Einstellung wird ignoriert, falls --allowed-mcp-server-names gesetzt ist.undefined
mcp.excludedArray von ZeichenkettenEine Blacklist mit auszuschließenden MCP-Servern. Ein Server, der sowohl in mcp.excluded als auch in mcp.allowed aufgeführt ist, wird ausgeschlossen. Beachten Sie: Diese Einstellung wird ignoriert, falls --allowed-mcp-server-names gesetzt ist.undefined
Note

Sicherheitshinweis zu MCP-Servern: Diese Einstellungen verwenden eine einfache Zeichenkettenübereinstimmung für MCP-Servernamen, die jedoch modifiziert werden können. Falls Sie als Systemadministrator verhindern möchten, dass Benutzer diese Einschränkungen umgehen, sollten Sie die mcpServers auf Systemebene konfigurieren, sodass Benutzer keine eigenen MCP-Server konfigurieren können. Diese Einstellungen stellen keine vollständige Sicherheitslösung dar.

LSP

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

Das Language Server Protocol (LSP) bietet Code-Intelligenzfunktionen wie „Gehe zu Definition“, „Finde Verweise“ und Diagnosen.

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

Sicherheit

EinstellungTypBeschreibungStandardwert
security.folderTrust.enabledbooleanGibt an, ob die Vertrauenswürdigkeit von Ordnern aktiviert ist.false
security.auth.selectedTypestringDer aktuell ausgewählte Authentifizierungstyp.undefined
security.auth.enforcedTypestringDer erforderliche Authentifizierungstyp (nützlich für Unternehmen).undefined
security.auth.useExternalbooleanGibt an, ob ein externer Authentifizierungsablauf verwendet wird.undefined

Erweitert

EinstellungTypBeschreibungStandardwert
advanced.autoConfigureMemorybooleanKonfiguriert automatisch die Speichergrenzen für Node.js.false
advanced.dnsResolutionOrderstringDie Reihenfolge der DNS-Auflösung.undefined
advanced.excludedEnvVarsArray von StringsUmgebungsvariablen, die vom Projekt-Kontext ausgeschlossen werden sollen. Gibt an, welche Umgebungsvariablen nicht aus den Projekt-.env-Dateien geladen werden dürfen. Dadurch wird verhindert, dass projektspezifische Umgebungsvariablen (z. B. DEBUG=true) das Verhalten der CLI beeinträchtigen. Variablen aus .qwen/.env-Dateien werden niemals ausgeschlossen.["DEBUG","DEBUG_MODE"]
advanced.bugCommandObjektKonfiguration 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-Web-Suchdienst. Wird zur Aktivierung der Funktionalität des web_search-Tools verwendet.undefined
Note

Hinweis zu advanced.tavilyApiKey: Dies ist ein veraltetes Konfigurationsformat. Für Qwen-OAuth-Nutzer ist der DashScope-Anbieter standardmäßig ohne weitere Konfiguration verfügbar. Für andere Authentifizierungstypen konfigurieren Sie bitte die Anbieter Tavily oder Google mithilfe des neuen webSearch-Konfigurationsformats.

mcpServers

Konfiguriert Verbindungen zu einem oder mehreren Model-Context-Protocol-(MCP-)Servern, um benutzerdefinierte Tools zu entdecken und zu nutzen. Qwen Code versucht, eine Verbindung zu jedem konfigurierten MCP-Server herzustellen, um verfügbare Tools zu ermitteln. Falls mehrere MCP-Server ein Tool mit demselben Namen bereitstellen, werden die Toolnamen mit dem von Ihnen in der Konfiguration definierten Server-Alias präfixiert (z. B. serverAlias__actualToolName), um Namenskonflikte zu vermeiden. Beachten Sie, dass das System bestimmte Schemaeigenschaften aus den MCP-Tooldefinitionen aus Kompatibilitätsgründen entfernen kann. Mindestens einer der folgenden Werte muss angegeben werden: command, url oder httpUrl. Werden mehrere Werte angegeben, gilt folgende Priorisierungsreihenfolge: httpUrl, dann url, dann command.

EigenschaftTypBeschreibungOptional
mcpServers.<SERVER_NAME>.commandZeichenketteDer Befehl, der zur Startung des MCP-Servers über Standard-Ein-/Ausgabe ausgeführt wird.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 sollen.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) für die Kommunikation nutzt.Ja
mcpServers.<SERVER_NAME>.httpUrlZeichenketteDie URL eines MCP-Servers, der streamfähige HTTP-Kommunikation nutzt.Ja
mcpServers.<SERVER_NAME>.headersObjektEine Zuordnung 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>.trustBooleschDiesem Server vertrauen und alle Bestätigungen für Toolaufrufe umgehen.Ja
mcpServers.<SERVER_NAME>.descriptionZeichenketteEine kurze Beschreibung des Servers, die beispielsweise für Anzeigezwecke genutzt werden kann.Ja
mcpServers.<SERVER_NAME>.includeToolsArray von ZeichenkettenListe der Toolnamen, die von diesem MCP-Server eingeschlossen werden sollen. Wenn angegeben, sind ausschließlich die hier aufgeführten Tools von diesem Server verfügbar (Whitelist-Verhalten). Falls nicht angegeben, sind standardmäßig alle vom Server bereitgestellten Tools aktiviert.Ja
mcpServers.<SERVER_NAME>.excludeToolsArray von ZeichenkettenListe der Toolnamen, die von diesem MCP-Server ausgeschlossen werden sollen. Tools, die hier aufgelistet sind, stehen dem Modell nicht zur Verfügung, selbst wenn sie vom Server bereitgestellt werden. Hinweis: excludeTools hat Vorrang vor includeTools – ist ein Tool in beiden Listen enthalten, wird es ausgeschlossen.Ja

Telemetrie

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

EinstellungTypBeschreibungStandardwert
telemetry.enabledbooleanGibt an, ob die Telemetrie aktiviert ist.
telemetry.targetstringDas Ziel für die erfasste Telemetriedaten. 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 Protokolle aufgenommen wird.
telemetry.outfilestringDie Datei, in die Telemetriedaten geschrieben werden, wenn target auf local gesetzt ist.
telemetry.useCollectorbooleanGibt an, ob ein externer OTLP-Collector verwendet werden soll.

Beispiel für settings.json

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

{ "general": { "vimMode": true, "preferredEditor": "code" }, "ui": { "theme": "GitHub", "hideTips": false, "customWittyPhrases": [ "Sie vergessen täglich tausend Dinge. Stellen Sie sicher, dass dies eine davon ist.", "Verbinde mit 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", }, "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 speichert einen Verlauf der von Ihnen ausgeführten Shell-Befehle. Um Konflikte zwischen verschiedenen Projekten zu vermeiden, wird dieser Verlauf in einem projektbezogenen 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 namens shell_history gespeichert.

Umgebungsvariablen und .env-Dateien

Umgebungsvariablen sind eine gängige Methode, um Anwendungen zu konfigurieren – insbesondere für sensible Informationen (wie Tokens) oder für Einstellungen, die sich je nach Umgebung unterscheiden können.

Qwen Code kann Umgebungsvariablen automatisch aus .env-Dateien laden.
Weitere Informationen zu authentifizierungsspezifischen Variablen (z. B. OPENAI_*) sowie zum empfohlenen Ansatz mit .qwen/.env finden Sie unter Authentifizierung.

Tip

Ausschluss von Umgebungsvariablen: Einige Umgebungsvariablen (z. B. DEBUG und DEBUG_MODE) werden standardmäßig automatisch aus Projekt-.env-Dateien ausgeschlossen, um Konflikte mit dem CLI-Verhalten zu vermeiden. Variablen aus .qwen/.env-Dateien werden niemals ausgeschlossen. Dieses Verhalten lässt sich über die Einstellung advanced.excludedEnvVars in Ihrer settings.json-Datei anpassen.

Tabelle der Umgebungsvariablen

VariableBeschreibungHinweise
QWEN_TELEMETRY_ENABLEDAuf true oder 1 setzen, um die Telemetrie zu aktivieren. Jeder andere Wert wird als Deaktivierung interpretiert.Überschreibt die Einstellung telemetry.enabled.
QWEN_TELEMETRY_TARGETLegt das Telemetrieziel fest (local oder gcp).Überschreibt die Einstellung telemetry.target.
QWEN_TELEMETRY_OTLP_ENDPOINTLegt den OTLP-Endpunkt für die Telemetrie fest.Überschreibt die Einstellung telemetry.otlpEndpoint.
QWEN_TELEMETRY_OTLP_PROTOCOLLegt das OTLP-Protokoll fest (grpc oder http).Überschreibt die Einstellung telemetry.otlpProtocol.
QWEN_TELEMETRY_LOG_PROMPTSAuf true oder 1 setzen, um das Protokollieren von Benutzeranweisungen zu aktivieren oder zu deaktivieren. Jeder andere Wert wird als Deaktivierung interpretiert.Überschreibt die Einstellung telemetry.logPrompts.
QWEN_TELEMETRY_OUTFILELegt den Dateipfad fest, in den die Telemetriedaten geschrieben werden, wenn das Ziel local ist.Überschreibt die Einstellung telemetry.outfile.
QWEN_TELEMETRY_USE_COLLECTORAuf true oder 1 setzen, um die Verwendung eines externen OTLP-Collectors zu aktivieren oder zu deaktivieren. Jeder andere Wert wird als Deaktivierung interpretiert.Überschreibt die Einstellung telemetry.useCollector.
QWEN_SANDBOXAlternative zur sandbox-Einstellung in settings.json.Akzeptiert true, false, docker, podman oder eine benutzerdefinierte Befehlszeichenfolge.
SEATBELT_PROFILE(macOS-spezifisch) Wechselt das Seatbelt-Profils (sandbox-exec) unter macOS.permissive-open: (Standard) Beschränkt Schreibzugriffe auf den Projektordner (und einige weitere Ordner, siehe packages/cli/src/utils/sandbox-macos-permissive-open.sb), erlaubt jedoch andere Operationen. strict: Verwendet ein strenges 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 im .qwen/-Verzeichnis Ihres Projekts (z. B. my-project/.qwen/sandbox-macos-custom.sb).
DEBUG oder DEBUG_MODE(wird häufig von zugrundeliegenden Bibliotheken oder der CLI selbst verwendet) Auf true oder 1 setzen, um ausführliche Debug-Protokollierung zu aktivieren, was bei der Fehlersuche hilfreich sein kann.Hinweis: Diese Variablen werden standardmäßig automatisch aus Projekt-.env-Dateien ausgeschlossen, um Interferenzen mit dem CLI-Verhalten zu vermeiden. Verwenden Sie stattdessen .qwen/.env-Dateien, falls Sie diese speziell für Qwen Code festlegen müssen.
NO_COLORAuf einen beliebigen Wert setzen, um die farbige Ausgabe in der CLI zu deaktivieren.
CLI_TITLEAuf eine Zeichenfolge setzen, um den Titel der CLI anzupassen.
CODE_ASSIST_ENDPOINTGibt den Endpunkt des Code-Assist-Servers an.Nützlich für Entwicklung und Tests.
TAVILY_API_KEYIhr API-Schlüssel für den Tavily-Web-Suchdienst.Wird zur Aktivierung der Funktionalität des web_search-Tools benötigt. Beispiel: export TAVILY_API_KEY="tvly-your-api-key-here"

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-pDient dazu, eine Eingabeaufforderung direkt an den Befehl zu übergeben. Dadurch wird Qwen Code im nicht-interaktiven Modus gestartet.Ihr Prompt-TextFür Skriptbeispiele verwenden Sie die Option --output-format json, um strukturierte Ausgabe zu erhalten.
--prompt-interactive-iStartet eine interaktive Sitzung, wobei der angegebene Prompt als erste Eingabe dient.Ihr Prompt-TextDer Prompt wird innerhalb der interaktiven Sitzung verarbeitet, nicht vorher. Kann nicht zusammen mit Eingabeübertragung über stdin verwendet werden. Beispiel: qwen -i "erkläre diesen Code"
--output-format-oLegt das Format der CLI-Ausgabe für den nicht-interaktiven Modus fest.text, json, stream-jsontext: (Standard) Die übliche, für Menschen lesbare Ausgabe. json: Eine maschinenlesbare JSON-Ausgabe, die am Ende der Ausführung ausgegeben wird. stream-json: Streaming-JSON-Nachrichten, die während der Ausführung jeweils beim Auftreten ausgegeben werden. Für strukturierte Ausgabe und Skripting verwenden Sie die Option --output-format json oder --output-format stream-json. Weitere Informationen finden Sie unter Headless-Modus.
--input-formatLegt das Format fest, das von der Standardeingabe (stdin) verarbeitet wird.text, stream-jsontext: (Standard) Normale Texteingabe von stdin oder über Befehlszeilenargumente. stream-json: JSON-Nachrichtenprotokoll über stdin für bidirektionale Kommunikation. Voraussetzung: --input-format stream-json erfordert, dass auch --output-format stream-json gesetzt ist. Bei Verwendung von stream-json ist stdin ausschließlich für Protokollnachrichten reserviert. Weitere Informationen finden Sie unter Headless-Modus.
--include-partial-messagesSchließt bei Verwendung des stream-json-Ausgabeformats teilweise Assistant-Nachrichten ein. Wenn aktiviert, werden Stream-Ereignisse (z. B. message_start, content_block_delta) während des Streamings jeweils beim Auftreten ausgegeben.Standardwert: false. Voraussetzung: Erfordert, dass --output-format stream-json gesetzt ist. Weitere Informationen zu Stream-Ereignissen finden Sie unter Headless-Modus.
--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-aWenn gesetzt, werden rekursiv alle Dateien im aktuellen Verzeichnis als Kontext für die Eingabeaufforderung eingeschlossen.
--help-hZeigt Hilfetext zu den Befehlszeilenargumenten an.
--show-memory-usageZeigt die aktuelle Speicherauslastung an.
--yoloAktiviert den YOLO-Modus, bei dem alle Tool-Aufrufe automatisch genehmigt werden.
--approval-modeLegt den Genehmigungsmodus für Tool-Aufrufe fest.plan, default, auto-edit, yoloUnterstützte Modi:
plan: Nur Analyse – keine Dateiänderungen oder Befehlsausführungen.
default: Genehmigung erforderlich für Dateiänderungen oder Shell-Befehle (Standardverhalten).
auto-edit: Automatische Genehmigung von Editier-Tools (z. B. edit, write_file), bei anderen Tools wird weiterhin nachgefragt.
yolo: Automatische Genehmigung aller Tool-Aufrufe (entspricht --yolo).
Kann nicht zusammen mit --yolo verwendet werden. Nutzen Sie stattdessen den einheitlichen Ansatz --approval-mode=yolo. Beispiel: qwen --approval-mode auto-edit
Weitere Informationen finden Sie unter Genehmigungsmodus.
--allowed-toolsEine durch Kommas getrennte Liste von Tool-Namen, die den Bestätigungsdialog umgehen.Tool-NamenBeispiel: qwen --allowed-tools "Shell(git status)"
--telemetryAktiviert Telemetrie.
--telemetry-targetLegt das Telemetrie-Ziel fest.Weitere Informationen finden Sie unter Telemetrie.
--telemetry-otlp-endpointLegt den OTLP-Endpunkt für die Telemetrie fest.Weitere Informationen finden Sie unter Telemetrie.
--telemetry-otlp-protocolLegt das OTLP-Protokoll für die Telemetrie fest (grpc oder http).Standardwert: grpc. Weitere Informationen finden Sie unter Telemetrie.
--telemetry-log-promptsAktiviert das Logging von Prompts für die Telemetrie.Weitere Informationen finden Sie unter Telemetrie.
--checkpointingAktiviert Checkpointing.
--acpAktiviert den ACP-Modus (Agent Client Protocol). Nützlich für IDE-/Editor-Integrationen wie Zed.Stabil. Ersetzt die veraltete Option --experimental-acp.
--experimental-lspAktiviert die experimentelle LSP-Funktion (Language Server Protocol) für Code-Intelligenz (z. B. „Gehe zu Definition“, „Finde Referenzen“, Diagnosen usw.).Experimentell. Erfordert installierte Language Server.
--extensions-eGibt eine Liste von Erweiterungen an, die für die Sitzung verwendet werden sollen.ErweiterungsnamenFalls nicht angegeben, werden alle verfügbaren Erweiterungen genutzt. Verwenden Sie den speziellen Wert 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-directoriesFügt zusätzliche Verzeichnisse in den Arbeitsbereich ein, um die Unterstützung mehrerer Verzeichnisse zu ermöglichen.VerzeichnispfadeKann mehrfach angegeben oder als durch Kommas getrennte Werte übergeben werden. Maximal fünf 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 das Logging von OpenAI-API-Aufrufen für Debugging und Analyse.Diese Option überschreibt die Einstellung enableOpenAILogging in settings.json.
--openai-logging-dirLegt einen benutzerdefinierten Verzeichnispfad für OpenAI-API-Logs fest.VerzeichnispfadDiese Option überschreibt die Einstellung openAILoggingDir in settings.json. Unterstützt absolute Pfade, relative Pfade sowie ~-Expansion. Beispiel: qwen --openai-logging-dir "~/qwen-logs" --openai-logging
--tavily-api-keyLegt den Tavily-API-Schlüssel für die Web-Suchfunktion dieser Sitzung fest.API-SchlüsselBeispiel: qwen --tavily-api-key tvly-your-api-key-here

Kontextdateien (hierarchischer instruktiver Kontext)

Obwohl Kontextdateien (standardmäßig QWEN.md, aber konfigurierbar über die Einstellung context.fileName) nicht streng genommen die Verhaltensweise der CLI konfigurieren, sind sie entscheidend für die Konfiguration des instruktiven Kontexts (auch als „Gedächtnis“ bezeichnet). Diese leistungsstarke Funktion ermöglicht es Ihnen, dem KI-Modell projektspezifische Anweisungen, Richtlinien für den Codierstil oder sonstige relevante Hintergrundinformationen bereitzustellen, wodurch die Antworten präziser und besser auf Ihre Anforderungen zugeschnitten werden. Die CLI enthält Benutzeroberflächenelemente – beispielsweise einen Indikator in der Fußzeile, der die Anzahl der geladenen Kontextdateien anzeigt –, um Sie stets über den aktiven Kontext zu informieren.

  • Zweck: Diese Markdown-Dateien enthalten Anweisungen, Richtlinien oder Kontextinformationen, die das Qwen-Modell während Ihrer Interaktionen berücksichtigen soll. Das System ist so konzipiert, dass es diesen instruktiven Kontext hierarchisch verwaltet.

Beispielinhalt einer Kontextdatei (z. B. QWEN.md)

Hier ist ein konzeptionelles Beispiel für den Inhalt einer Kontextdatei im Stammverzeichnis eines TypeScript-Projekts:

# Projekt: Meine großartige TypeScript-Bibliothek ## Allgemeine Anweisungen: - Generieren Sie neuen TypeScript-Code stets im Einklang mit dem bestehenden Codierungsstil. - Stellen Sie sicher, dass alle neuen Funktionen und Klassen JSDoc-Kommentare enthalten. - Verwenden Sie dort, wo sinnvoll, funktionale Programmierparadigmen. - Der gesamte Code muss mit TypeScript 5.0 und Node.js 20+ kompatibel sein. ## Codierungsstil: - Verwenden Sie zwei Leerzeichen für die Einrückung. - Schnittstellennamen müssen mit `I` beginnen (z. B. `IUserService`). - Private Klassenmember müssen mit einem Unterstrich (`_`) beginnen. - Verwenden Sie stets strenge Gleichheit (`===` und `!==`). ## Spezifische Komponente: `src/api/client.ts` - Diese Datei verarbeitet alle ausgehenden API-Anfragen. - Wenn Sie neue API-Aufruffunktionen hinzufügen, stellen Sie sicher, dass sie eine robuste Fehlerbehandlung und Protokollierung enthalten. - Verwenden Sie das vorhandene Hilfsprogramm `fetchWithRetry` für alle GET-Anfragen. ## Zu Abhängigkeiten: - Vermeiden Sie die Einführung neuer externer Abhängigkeiten, sofern dies nicht unbedingt erforderlich ist. - Falls eine neue Abhängigkeit benötigt wird, geben Sie bitte den Grund dafür an.

Dieses Beispiel zeigt, wie Sie allgemeinen Projektzusammenhang, spezifische Codierkonventionen und sogar Hinweise zu bestimmten Dateien oder Komponenten bereitstellen können. Je relevanter und präziser Ihre Kontextdateien sind, desto besser kann die KI Sie unterstützen. Projekt-spezifische Kontextdateien werden ausdrücklich empfohlen, um Konventionen und Kontext festzulegen.

  • Hierarchisches Laden und Priorisierung: Die CLI implementiert ein hierarchisches Speichersystem, indem sie Kontextdateien (z. B. QWEN.md) aus mehreren Standorten lädt. Inhalte aus Dateien weiter unten in dieser Liste (spezifischer) überschreiben oder ergänzen in der Regel Inhalte aus Dateien weiter oben (allgemeiner). Die genaue Reihenfolge der Zusammenfassung und der endgültige Kontext können mithilfe des Befehls /memory show überprüft werden. Die typische Lade-Reihenfolge lautet:
    1. Globale Kontextdatei:
      • Ort: ~/.qwen/<konfigurierter-kontext-dateiname> (z. B. ~/.qwen/QWEN.md im Home-Verzeichnis Ihres Benutzers).
      • Gültigkeitsbereich: Stellt Standardanweisungen für alle Ihre Projekte bereit.
    2. Kontextdateien im Projektstammverzeichnis und in übergeordneten Verzeichnissen:
      • Ort: Die CLI sucht nach der konfigurierten Kontextdatei im aktuellen Arbeitsverzeichnis und anschließend in jedem übergeordneten Verzeichnis bis hin zum Projektstamm (identifiziert durch einen .git-Ordner) oder bis zu Ihrem Home-Verzeichnis.
      • Gültigkeitsbereich: Stellt Kontext bereit, der für das gesamte Projekt oder einen größeren Teil davon relevant ist.
  • Zusammenfassung und UI-Anzeige: Die Inhalte aller gefundenen Kontextdateien werden zusammengeführt (mit Trennzeichen, die Herkunft und Pfad kennzeichnen) und als Teil der Systemanweisung bereitgestellt. In der Fußzeile der CLI wird die Anzahl der geladenen Kontextdateien angezeigt, sodass Sie auf einen Blick erkennen können, welcher instruktive Kontext gerade aktiv ist.
  • Importieren von Inhalten: Sie können Ihre Kontextdateien modularisieren, indem Sie andere Markdown-Dateien mit der Syntax @pfad/zur/datei.md importieren. Weitere Details finden Sie in der Dokumentation zum Memory-Import-Prozessor.
  • Befehle zur Speicherverwaltung:
    • Verwenden Sie /memory refresh, um einen erneuten Scan und Neuladen aller Kontextdateien aus allen konfigurierten Standorten zu erzwingen. Dadurch wird der instruktive Kontext der KI aktualisiert.
    • Verwenden Sie /memory show, um den aktuell zusammengeführten instruktiven Kontext anzuzeigen und so die Hierarchie und den von der KI verwendeten Inhalt zu überprüfen.
    • Weitere Informationen zum /memory-Befehl und seinen Unterbefehlen (show und refresh) finden Sie in der Dokumentation zu Befehlen.

Indem Sie diese Konfigurationsebenen und die hierarchische Struktur von Kontextdateien verstehen und nutzen, können Sie den Speicher der KI effektiv verwalten und die Antworten von Qwen Code gezielt an Ihre spezifischen Anforderungen und Projekte anpassen.

Sandbox

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

Der Sandbox-Modus ist standardmäßig deaktiviert, kann jedoch auf verschiedene Weisen aktiviert werden:

  • Mit dem Flag --sandbox oder -s.
  • Durch Festlegen der Umgebungsvariablen QWEN_SANDBOX.
  • Der Sandbox-Modus ist standardmäßig aktiviert, wenn --yolo oder --approval-mode=yolo verwendet wird.

Standardmäßig wird das vorgefertigte Docker-Image qwen-code-sandbox verwendet.

Für projektbezogene Sandbox-Anforderungen können Sie im Stammverzeichnis Ihres Projekts eine benutzerdefinierte Dockerfile unter .qwen/sandbox.Dockerfile 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 # 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 beim Ausführen von Qwen Code die Umgebungsvariable `BUILD_SANDBOX` verwenden, um das benutzerdefinierte Sandbox-Image automatisch zu erstellen:

BUILD_SANDBOX=1 qwen -s

## Nutzungsstatistiken Um die Weiterentwicklung von Qwen Code zu unterstützen, erfassen wir anonymisierte Nutzungsstatistiken. Diese Daten helfen uns dabei, die Nutzung der CLI besser zu verstehen, häufig auftretende Probleme zu identifizieren und neue Funktionen entsprechend ihrer Relevanz zu priorisieren. **Was wir erfassen:** - **Tool-Aufrufe:** Wir protokollieren die Namen der aufgerufenen Tools, ob sie erfolgreich waren oder fehlgeschlagen sind, sowie ihre Ausführungszeit. Die an die Tools übergebenen Argumente sowie sämtliche von ihnen zurückgegebenen Daten werden nicht erfasst. - **API-Anfragen:** Wir protokollieren das für jede Anfrage verwendete Modell, die Dauer der Anfrage und ob sie erfolgreich war. Der Inhalt der Prompts oder Antworten wird nicht erfasst. - **Sitzungsinformationen:** Wir erfassen Informationen zur Konfiguration der CLI, beispielsweise welche Tools aktiviert sind und welcher Genehmigungsmodus verwendet wird. **Was wir NICHT erfassen:** - **Personenbezogene Daten (PII):** Wir erfassen keinerlei persönliche Informationen wie Ihren Namen, Ihre E-Mail-Adresse oder API-Schlüssel. - **Inhalt von Prompts und Antworten:** Wir protokollieren weder den Inhalt Ihrer Prompts noch die Antworten des Modells. - **Dateiinhalte:** Wir protokollieren nicht den Inhalt irgendwelcher Dateien, die von der CLI gelesen oder geschrieben werden. **Wie Sie die Erfassung deaktivieren können:** Sie können die Erfassung von Nutzungsstatistiken jederzeit deaktivieren, indem Sie die Eigenschaft `usageStatisticsEnabled` im Abschnitt `privacy` 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