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, sein Verhalten zu konfigurieren, einschließlich Umgebungsvariablen, Befehlszeilenargumenten und Einstellungsdateien. Dieses Dokument beschreibt 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 eingecodete Vorgaben 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 wurden

Einstellungsdateien

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

DateitypSpeicherortGültigkeitsbereich
System-StandardsdateiLinux: /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 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).Wird auf alle Qwen Code-Sitzungen des aktuellen Benutzers angewendet.
Projekteinstellungen.qwen/settings.json innerhalb des Root-Verzeichnisses Ihres Projekts.Wird nur angewendet, 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 mithilfe der Umgebungsvariable QWEN_CODE_SYSTEM_SETTINGS_PATH überschrieben werden.
Wird auf alle Qwen Code-Sitzungen im System für alle Benutzer angewendet. 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 projekt-spezifische Dateien enthalten, die mit dem Betrieb von Qwen Code zusammenhängen, wie zum Beispiel:

Verfügbare Einstellungen in settings.json

Einstellungen sind in Kategorien organisiert. Alle Einstellungen sollten innerhalb ihres entsprechenden Kategorie-Objekts auf oberster 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.disableAutoUpdatebooleanAutomatische Updates deaktivieren.false
general.disableUpdateNagbooleanHinweise auf verfügbare Updates deaktivieren.false
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

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 Hinweise in der Benutzeroberfläche ausblenden.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 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.disableLoadingPhrasesbooleanLadeanzeige-Phrasen für Barrierefreiheit deaktivieren.false
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 anstatt 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 Konversationen verwendet werden soll.undefined
model.maxSessionTurnsnumberMaximale Anzahl an Benutzer/Modell/Werkzeug-Aufrunden, die in einer Sitzung gespeichert bleiben 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. Zum Beispiel {"run_shell_command": {"tokenBudget": 2000}}undefined
model.generationConfigobjectErweiterte Überschreibungen, die an den zugrunde liegenden Inhaltsgenerator übergeben werden. Unterstützt Anfragesteuerungen wie timeout, maxRetries, disableCacheControl und customHeaders (benutzerdefinierte HTTP-Header für API-Anfragen), zusammen mit Feineinstellungen unter samplingParams (zum Beispiel temperature, top_p, max_tokens). Leer lassen, um auf die Standardwerte des Providers zu vertrauen.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. Ein Wert von 0.6 löst beispielsweise eine 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 Schleifenerkennungsprüfungen. Die Schleifenerkennung verhindert Endlosschleifen in KI-Antworten, kann jedoch Fehlalarme erzeugen, die legitime Workflows unterbrechen. Aktivieren Sie diese Option, wenn Sie häufige Fehlalarme durch die 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 zur Fehlerbehebung 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 (aufgelöst vom aktuellen Arbeitsverzeichnis) und ~-Erweiterung (Home-Verzeichnis).undefined

Beispiel model.generationConfig:

{ "model": { "generationConfig": { "timeout": 60000, "disableCacheControl": false, "customHeaders": { "X-Request-ID": "req-123", "X-User-ID": "user-456" }, "samplingParams": { "temperature": 0.2, "top_p": 0.8, "max_tokens": 1024 } } } }

Das Feld 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.

model.openAILoggingDir Beispiele:

  • "~/qwen-logs" - Protokolliert ins Verzeichnis ~/qwen-logs
  • "./custom-logs" - Protokolliert nach ./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-Auswahlmodus 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; die Laufzeit liest sie aus process.env[envKey]. Qwen-OAuth-Modelle bleiben hartkodiert 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" }, "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 Werte für Authentifizierung/Modell/Credentials werden pro Feld nach folgender Rangfolge ausgewählt (zuerst vorhanden gewinnt). Sie können --auth-type mit --model kombinieren, um direkt auf einen Anbietereintrag 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.

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

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

Schichtung der Generierungskonfiguration

Pro-Feld-Rangfolge für generationConfig:

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

samplingParams und customHeaders werden beide atomar 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 globalen Konfigurationsstufen erfolgt keine Zusammenführung. Standards des Content-Generators 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 Anmeldeinformationen in beliebigen Bereichen. Das Festhalten des Anbieterkatalogs in den Benutzereinstellungen verhindert Merge-/Überschreibekonflikte zwischen Projekt- und Benutzerbereich und stellt sicher, dass /auth und /model Updates 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 Anbieterkatalog synchronisiert.
  • Ohne modelProviders mischt der Resolver CLI/Umgebungsvariablen/Einstellungsebenen, was für Einzelanbieter-Setups in Ordnung ist, aber umständlich wird, wenn häufig gewechselt wird. Definieren Sie Anbieterkataloge 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 Home-Verzeichnis des Benutzers zu verweisen. Diese Einstellung kann mit dem Befehlszeilenflag --include-directories kombiniert werden.[]
context.loadFromIncludeDirectoriesbooleanSteuert das Verhalten des Befehls /memory refresh. Wenn auf true gesetzt, 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 unterhalb des aktuellen Baums beim Vervollständigen von @-Präfixen in der Eingabeaufforderung aktiviert werden soll.true
context.fileFiltering.disableFuzzySearchbooleanWenn true, deaktiviert dies die Fuzzy-Suche-Funktionen bei der Dateisuche, was die Leistung in Projekten mit einer großen Anzahl von Dateien verbessern kann.false

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 disableFuzzySearch in Ihrer settings.json-Datei auf true setzen. Dadurch wird ein einfacheres, nicht-unscharfes 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 auf false setzen. Dies ist die schnellste Option, da sie ein rekursives 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 werkzeugspezifische 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 StringsWerkzeugnamen, die von der Erkennung ausgeschlossen werden sollen. Sie können auch werkzeugspezifische 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: Werkzeugspezifische 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 sicher angesehen werden, um nicht vertrauenswürdigen Code auszuführen. Es wird empfohlen, tools.core zu verwenden, um explizit Befehle auszuwählen, die ausgeführt werden dürfen.undefined
tools.allowedArray von StringsEine Liste von Werkzeugnamen, die den Bestätigungsdialog umgehen. Dies ist nützlich für Werkzeuge, 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 Werkzeugnutzung 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 automatisch genehmigen), yolo (alle Werkzeugaufrufe automatisch genehmigen)
tools.discoveryCommandstringBefehl zur Durchführung der Werkzeugerkennung.undefined
tools.callCommandstringDefiniert einen benutzerdefinierten Shell-Befehl zum Aufrufen eines bestimmten Werkzeugs, 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 im Dateiinhalt 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 Werkzeugaussagen.trueErfordert Neustart: Ja
tools.truncateToolOutputThresholdnumberKürzt die Werkzeugausgabe, wenn sie größer als diese Anzahl an Zeichen ist. Gilt für Shell-, Grep-, Glob-, ReadFile- und ReadManyFiles-Werkzeuge.25000Erfordert Neustart: Ja
tools.truncateToolOutputLinesnumberMaximale Anzahl an Zeilen oder Einträgen, die beim Kürzen der Werkzeugausgabe erhalten bleiben. Gilt für Shell-, Grep-, Glob-, ReadFile- und ReadManyFiles-Werkzeuge.1000Erfordert Neustart: Ja

mcp

EinstellungTypBeschreibungStandard
mcp.serverCommandstringBefehl zum Starten eines MCP-Servers.undefined
mcp.allowedArray von StringsEine Positivliste von MCP-Servern, die erlaubt sind. Erlaubt es Ihnen, eine Liste von MCP-Servernamen anzugeben, die dem Modell zur Verfügung stehen sollen. Dies kann verwendet werden, um den Satz der MCP-Server, zu denen verbunden werden soll, einzuschränken. Hinweis: Dies wird ignoriert, wenn --allowed-mcp-server-names gesetzt ist.undefined
mcp.excludedArray von StringsEine 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. Hinweis: Dies wird ignoriert, wenn --allowed-mcp-server-names gesetzt ist.undefined
Note

Sicherheitshinweis für MCP-Server: Diese Einstellungen verwenden einfache String-Übereinstimmung bei MCP-Servernamen, welche geändert werden können. Wenn Sie ein Systemadministrator sind und 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.

Sicherheit

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

EinstellungTypBeschreibungStandard
advanced.autoConfigureMemorybooleanKonfiguriert automatisch die Speicherlimits für Node.js.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 .env-Dateien des Projekts geladen werden sollen. Dadurch wird verhindert, dass projektspezifische 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 zusätzliche Konfiguration zur Verfügung. Für andere Authentifizierungstypen konfigurieren Sie Tavily oder Google-Anbieter mit dem neuen webSearch-Konfigurationsformat.

experimentell

EinstellungTypBeschreibungStandardwert
experimental.skillsbooleanExperimentelle Agentenfähigkeiten aktivierenfalse

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 könnte. Mindestens eines von command, url oder httpUrl muss angegeben werden. Wenn mehrere angegeben sind, ist die Prioritätsreihenfolge httpUrl, dann url, dann 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 Tool-Namen, 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 Tool-Namen, die von diesem MCP-Server ausgeschlossen werden sollen. Hier aufgelistete Tools stehen dem Modell nicht zur Verfügung, auch 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": [ "Du vergisst jeden Tag tausend Dinge. Stelle sicher, dass dies eines davon ist", "Verbindung zu AGI wird hergestellt" ] }, "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 CLI speichert einen Verlauf der Shell-Befehle, die Sie ausführen. Um Konflikte zwischen verschiedenen Projekten zu vermeiden, wird dieser Verlauf in einem projektspezifischen Verzeichnis innerhalb Ihres Benutzerverzeichnisses 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 dem 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 Beeinträchtigung 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.

Tabelle der Umgebungsvariablen

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-Sammlers 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) Schaltet das Seatbelt-Profil (sandbox-exec) unter macOS um.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 strenges 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 den 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 Ausgaben 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 Hilfesinformationen 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 Dateiänderungen oder Shell-Befehle (Standardverhalten). auto-edit: Genehmigt automatisch Editierwerkzeuge (edit, write_file), fragt aber bei anderen nach. yolo: Genehmigt automatisch alle Tool-Aufrufe (ä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 Telemetrie-Ziel fest.Siehe Telemetrie für weitere Informationen.
--telemetry-otlp-endpointLegt den OTLP-Endpunkt für die Telemetrie fest.Siehe Telemetrie für weitere Informationen.
--telemetry-otlp-protocolLegt das OTLP-Protokoll für die Telemetrie fest (grpc oder http).Standard ist grpc. Siehe Telemetrie für weitere Informationen.
--telemetry-log-promptsAktiviert das Logging von Prompts für die 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-skillsAktiviert experimentelle Agent Skills (registriert das skill-Tool und lädt Skills aus .qwen/skills/ und ~/.qwen/skills/).Experimentell.
--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 in den Arbeitsbereich ein, um Multi-Verzeichnis-Unterstützung zu bieten.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 ~-Erweiterung. Beispiel: qwen --openai-logging-dir "~/qwen-logs" --openai-logging
--tavily-api-keyLegt den Tavily-API-Schlüssel für die 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 direkt die Konfiguration des CLI-Verhaltens betrifft, 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 übermitteln, 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 das Qwen-Modell während Ihrer Interaktionen berücksichtigen soll. Das System ist so ausgelegt, dass dieser anweisende Kontext hierarchisch verwaltet wird.

Beispiel für Dateiinhalt im Kontext (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 Codierungsstil beachten. - Sicherstellen, dass alle neuen Funktionen und Klassen über JSDoc-Kommentare verfügen. - Wo angebracht, funktionale Programmierparadigmen bevorzugen. - Der gesamte Code sollte mit TypeScript 5.0 und Node.js 20+ kompatibel sein. ## Codierungsstil: - 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 sie umfassende Fehlerbehandlung und Protokollierung enthalten. - Für alle GET-Anfragen das vorhandene `fetchWithRetry`-Hilfsprogramm 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 Priorisierung:** 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 signifikanten 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: - Mit dem Flag `--sandbox` oder `-s`. - Durch 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-Datei 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 sie zur Ausführung benötigten. 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 über die 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 Erfassung:** Sie können die Erfassung von Nutzungsstatistiken jederzeit deaktivieren, indem Sie die Eigenschaft `usageStatisticsEnabled` auf `false` unter der Kategorie `privacy` in Ihrer `settings.json`-Datei setzen:

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

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