Qwen Code-Konfiguration
Authentifizierung / API-Schlüssel: Authentifizierung (Qwen OAuth vs OpenAI-kompatibles API) und authentifizierungsbezogene Umgebungsvariablen (wie OPENAI_API_KEY) sind in Authentifizierung dokumentiert.
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.
Konfigurationsebenen
Die Konfiguration wird in der folgenden Reihenfolge der Priorität angewendet (niedrigere Zahlen werden von höheren Zahlen überschrieben):
| Ebene | Konfigurationsquelle | Beschreibung |
|---|---|---|
| 1 | Standardwerte | Fest codierte Standardwerte innerhalb der Anwendung |
| 2 | System-Standardsdatei | Systemweite Standardeinstellungen, die durch andere Einstellungsdateien überschrieben werden können |
| 3 | Benutzereinstellungsdatei | Globale Einstellungen für den aktuellen Benutzer |
| 4 | Projekteinstellungsdatei | Projektspezifische Einstellungen |
| 5 | Systemeinstellungsdatei | Systemweite Einstellungen, die alle anderen Einstellungsdateien überschreiben |
| 6 | Umgebungsvariablen | Systemweite oder Sitzungsspezifische Variablen, potenziell aus .env-Dateien geladen |
| 7 | Befehlszeilenargumente | Werte, die beim Starten der CLI übergeben werden |
Einstellungsdateien
Qwen Code verwendet JSON-Einstellungsdateien für persistente Konfiguration. Es gibt vier Speicherorte für diese Dateien:
| Dateityp | Speicherort | Gültigkeitsbereich |
|---|---|---|
| System-Standardsdatei | Linux: /etc/qwen-code/system-defaults.jsonWindows: C:\ProgramData\qwen-code\system-defaults.jsonmacOS: /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). | Gilt für alle Qwen Code-Sitzungen des aktuellen Benutzers. |
| Projekteinstellungen | .qwen/settings.json innerhalb des Stammverzeichnisses Ihres Projekts. | Gilt nur, wenn Qwen Code aus diesem spezifischen Projekt heraus ausgeführt wird. Projekteinstellungen überschreiben Benutzereinstellungen. |
| Systemeinstellungen | Linux: /etc/qwen-code/settings.json Windows: C:\ProgramData\qwen-code\settings.json macOS: /Library/Application Support/QwenCode/settings.jsonDer Pfad kann mithilfe der Umgebungsvariable QWEN_CODE_SYSTEM_SETTINGS_PATH überschrieben werden. | Gilt für alle Qwen Code-Sitzungen auf dem System, für alle Benutzer. Systemeinstellungen überschreiben Benutzer- und Projekteinstellungen. Kann für Systemadministratoren in Unternehmen nützlich sein, um Kontrolle über die Qwen Code-Einrichtungen der Benutzer zu haben. |
Hinweis zu Umgebungsvariablen in Einstellungen: Zeichenkettenwerte innerhalb Ihrer settings.json-Dateien können Umgebungsvariablen entweder im Format $VAR_NAME oder ${VAR_NAME} referenzieren. Diese Variablen werden automatisch aufgelöst, wenn die Einstellungen geladen werden. 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 deinem Projekt
Neben einer Projekteinstellungsdatei kann das .qwen Verzeichnis eines Projekts andere projektspezifische Dateien enthalten, die sich auf den Betrieb von Qwen Code beziehen, wie zum Beispiel:
- Benutzerdefinierte Sandbox-Profile (z.B.
.qwen/sandbox-macos-custom.sb,.qwen/sandbox.Dockerfile). - Agent Skills (experimentell) unter
.qwen/skills/(jeder Skill ist ein Verzeichnis, das eineSKILL.mdenthält).
Verfügbare Einstellungen in settings.json
Einstellungen sind in Kategorien organisiert. Alle Einstellungen sollten innerhalb ihres entsprechenden Kategorie-Objektersten Ebene in deiner settings.json Datei platziert werden.
allgemein
| Einstellung | Typ | Beschreibung | Standard |
|---|---|---|---|
general.preferredEditor | string | Der bevorzugte Editor zum Öffnen von Dateien. | undefined |
general.vimMode | boolean | Vim-Tastenkürzel aktivieren. | false |
general.disableAutoUpdate | boolean | Automatische Updates deaktivieren. | false |
general.disableUpdateNag | boolean | Update-Benachrichtigungen deaktivieren. | false |
general.gitCoAuthor | boolean | Automatisch einen Co-authored-by-Eintrag zu Git-Commit-Nachrichten hinzufügen, wenn Commits über Qwen Code erstellt werden. | true |
general.checkpointing.enabled | boolean | Sitzungs-Checkpointing für Wiederherstellung aktivieren. | false |
output
| Einstellung | Typ | Beschreibung | Standard | Mögliche Werte |
|---|---|---|---|---|
output.format | string | Das Format der CLI-Ausgabe. | "text" | "text", "json" |
ui
| Einstellung | Typ | Beschreibung | Standard |
|---|---|---|---|
ui.theme | string | Das Farbthema für die Benutzeroberfläche. Siehe Themes für verfügbare Optionen. | undefined |
ui.customThemes | object | Benutzerdefinierte Theme-Definitionen. | {} |
ui.hideWindowTitle | boolean | Die Fenstertitelleiste ausblenden. | false |
ui.hideTips | boolean | Hilfreiche Tipps in der Benutzeroberfläche ausblenden. | false |
ui.hideBanner | boolean | Den Anwendungsbanner ausblenden. | false |
ui.hideFooter | boolean | Die Fußzeile aus der Benutzeroberfläche ausblenden. | false |
ui.showMemoryUsage | boolean | Speichernutzungsinformationen in der Benutzeroberfläche anzeigen. | false |
ui.showLineNumbers | boolean | Zeilennummern in Codeblöcken in der CLI-Ausgabe anzeigen. | true |
ui.showCitations | boolean | Zitate für generierten Text im Chat anzeigen. | true |
enableWelcomeBack | boolean | Willkommensdialog 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 Projektzusammenfassung (.qwen/PROJECT_SUMMARY.md) zurückkehren, und zeigt einen Dialog an, der es Ihnen ermöglicht, Ihr vorheriges Gespräch fortzusetzen oder neu zu beginnen. Diese Funktion integriert sich mit dem /summary-Befehl und dem Bestätigungsdialog beim Beenden. | true |
ui.accessibility.disableLoadingPhrases | boolean | Lade-Phrasen für Barrierefreiheit deaktivieren. | false |
ui.accessibility.screenReader | boolean | Aktiviert den Screenreader-Modus, der die TUI für bessere Kompatibilität mit Screenreadern anpasst. | false |
ui.customWittyPhrases | array of strings | Eine Liste benutzerdefinierter Phrasen, die während Ladezuständen angezeigt werden sollen. Wenn angegeben, durchläuft die CLI diese Phrasen anstelle der Standardphrasen. | [] |
ide
| Einstellung | Typ | Beschreibung | Standardwert |
|---|---|---|---|
ide.enabled | boolean | IDE-Integrationsmodus aktivieren. | false |
ide.hasSeenNudge | boolean | Ob der Benutzer den Hinweis zur IDE-Integration gesehen hat. | false |
privacy
| Einstellung | Typ | Beschreibung | Standardwert |
|---|---|---|---|
privacy.usageStatisticsEnabled | boolean | Erfassung von Nutzungsstatistiken aktivieren. | true |
model
| Einstellung | Typ | Beschreibung | Standard |
|---|---|---|---|
model.name | string | Das Qwen-Modell, das für Konversationen verwendet werden soll. | undefined |
model.maxSessionTurns | number | Maximale Anzahl an Benutzer/Modell/Tool-Aufrunden, die in einer Sitzung gespeichert werden sollen. -1 bedeutet unbegrenzt. | -1 |
model.summarizeToolOutput | object | Aktiviert oder deaktiviert die Zusammenfassung der Tool-Ausgabe. Sie können das Token-Budget für die Zusammenfassung mithilfe der Einstellung tokenBudget festlegen. Hinweis: Derzeit wird nur das Tool run_shell_command unterstützt. Zum Beispiel {"run_shell_command": {"tokenBudget": 2000}} | undefined |
model.generationConfig | object | Erweiterte Überschreibungen, die an den zugrunde liegenden Inhaltsgenerator übergeben werden. Unterstützt Anfragesteuerungen wie timeout, maxRetries und disableCacheControl sowie Feineinstellungen unter samplingParams (zum Beispiel temperature, top_p, max_tokens). Leer lassen, um auf die Standardwerte des Anbieters zu vertrauen. | undefined |
model.chatCompression.contextPercentageThreshold | number | Legt den Schwellenwert für die Komprimierung des Chatverlaufs als Prozentsatz des gesamten Token-Limits 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. Zum Beispiel wird bei einem Wert von 0.6 die Komprimierung ausgelöst, wenn der Chatverlauf 60 % des Token-Limits überschreitet. Verwenden Sie 0, um die Komprimierung vollständig zu deaktivieren. | 0.7 |
model.skipNextSpeakerCheck | boolean | Überspringt die nächste Sprecherprüfung. | false |
model.skipLoopDetection | boolean | Deaktiviert die Schleifenerkennung. Die Schleifenerkennung verhindert Endlosschleifen in KI-Antworten, kann jedoch Fehlalarme erzeugen, die legitime Workflows unterbrechen. Aktivieren Sie diese Option, wenn Sie häufige Fehlalarme durch die Schleifenerkennung erleben. | false |
model.skipStartupContext | boolean | Überspringt das Senden des Start-Workspace-Kontexts (Umgebungszusammenfassung und Bestätigung) zu Beginn jeder Sitzung. Aktivieren Sie dies, wenn Sie den Kontext manuell bereitstellen möchten oder Tokens beim Start sparen möchten. | false |
model.enableOpenAILogging | boolean | Aktiviert die Protokollierung von OpenAI-API-Aufrufen für Debugging und Analyse. Wenn aktiviert, werden API-Anfragen und -Antworten in JSON-Dateien protokolliert. | false |
model.openAILoggingDir | string | Benutzerdefinierter Verzeichnispfad für OpenAI-API-Protokolle. Wenn 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,
"samplingParams": {
"temperature": 0.2,
"top_p": 0.8,
"max_tokens": 1024
}
}
}
}model.openAILoggingDir Beispiele:
"~/qwen-logs"- Protokolliert in das Verzeichnis~/qwen-logs"./custom-logs"- Protokolliert in./custom-logsrelativ zum aktuellen Verzeichnis"/tmp/openai-logs"- Protokolliert in den absoluten Pfad/tmp/openai-logs
context
| Einstellung | Typ | Beschreibung | Standard |
|---|---|---|---|
context.fileName | string oder Array von Strings | Der Name der Context-Datei(en). | undefined |
context.importFormat | string | Das Format, das beim Importieren von Memory verwendet werden soll. | undefined |
context.discoveryMaxDirs | number | Maximale Anzahl an Verzeichnissen, in denen nach Memory gesucht werden soll. | 200 |
context.includeDirectories | array | Zusätzliche Verzeichnisse, die in den Workspace-Context einbezogen werden sollen. Gibt ein Array zusätzlicher absoluter oder relativer Pfade an, die in den Workspace-Context 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 Befehlszeilen-Flag --include-directories kombiniert werden. | [] |
context.loadFromIncludeDirectories | boolean | Steuert 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.respectGitIgnore | boolean | Berücksichtigt .gitignore-Dateien bei der Suche. | true |
context.fileFiltering.respectQwenIgnore | boolean | Berücksichtigt .qwenignore-Dateien bei der Suche. | true |
context.fileFiltering.enableRecursiveFileSearch | boolean | Ob die rekursive Suche nach Dateinamen unterhalb des aktuellen Baums beim Vervollständigen von @-Präfixen in der Eingabeaufforderung aktiviert werden soll. | true |
context.fileFiltering.disableFuzzySearch | boolean | Wenn true, werden die Fuzzy-Suchfunktionen bei der Dateisuche deaktiviert, 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:
- 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 Gesamtzahl durchsuchter Dateien ist der effektivste Weg, um die Leistung zu verbessern. - Deaktivieren Sie die Fuzzy-Suche: Falls das Ausschließen von Dateien nicht ausreicht, können Sie die Fuzzy-Suche deaktivieren, indem Sie
disableFuzzySearchin Ihrersettings.json-Datei auftruesetzen. Dadurch wird ein einfacherer, nicht-fuzzy Algorithmus verwendet, der schneller sein kann. - Deaktivieren Sie die rekursive Dateisuche: Als letzte Möglichkeit können Sie die rekursive Dateisuche vollständig deaktivieren, indem Sie
enableRecursiveFileSearchauffalsesetzen. Dies ist die schnellste Option, da sie das rekursive Durchsuchen Ihres Projekts vermeidet. Allerdings müssen Sie dann beim Verwenden von@-Vervollständigungen den vollständigen Pfad zu den Dateien eingeben.
tools
| Einstellung | Typ | Beschreibung | Standard | Hinweise |
|---|---|---|---|---|
tools.sandbox | boolean oder string | Sandbox-Ausführungsumgebung (kann ein boolean oder ein Pfad-String sein). | undefined | |
tools.shell.enableInteractiveShell | boolean | Verwende node-pty für eine interaktive Shell-Erfahrung. Fallback auf child_process gilt weiterhin. | false | |
tools.core | Array von Strings | Dies kann verwendet werden, um die Menge der eingebauten Tools mit einer Positivliste einzuschränken. Sie können auch toolspezifische 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 ls -l-Befehls. | undefined | |
tools.exclude | Array von Strings | Tool-Namen, die von der Erkennung ausgeschlossen werden sollen. Sie können auch toolspezifische Einschränkungen für Tools angeben, die dies unterstützen, wie das run_shell_command-Tool. Zum Beispiel blockiert "tools.exclude": ["run_shell_command(rm -rf)"] den rm -rf-Befehl. Sicherheitshinweis: Toolspezifische 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 sicherer Schutz für die Ausführung nicht vertrauenswürdigen Codes angesehen werden. Es wird empfohlen, tools.core zu verwenden, um explizit ausführbare Befehle auszuwählen. | undefined | |
tools.allowed | Array von Strings | Eine Liste von Tool-Namen, die den Bestätigungsdialog umgehen. Dies ist nützlich für Tools, denen Sie vertrauen und die Sie häufig verwenden. Zum Beispiel überspringt ["run_shell_command(git)", "run_shell_command(npm test)"] den Bestätigungsdialog für beliebige git- und npm test-Befehle. | undefined | |
tools.approvalMode | string | Legt den Standard-Bestätigungsmodus für die Tool-Nutzung fest. | default | Mögliche Werte: plan (nur Analyse, keine Dateiänderungen oder Befehlsausführungen), default (Bestätigung erforderlich vor Dateiänderungen oder Shell-Befehlen), auto-edit (automatische Genehmigung von Dateiänderungen), yolo (automatische Genehmigung aller Tool-Aufrufe) |
tools.discoveryCommand | string | Befehl zur Ausführung der Tool-Erkennung. | undefined | |
tools.callCommand | string | Definiert einen benutzerdefinierten Shell-Befehl zum Aufruf eines spezifischen Tools, das mit tools.discoveryCommand entdeckt wurde. Der Shell-Befehl muss folgende Kriterien erfüllen: Er muss den Funktionsnamen (exakt wie in der Funktionsdeklaration ) als erstes Kommandozeilenargument übernehmen. Er muss Funktionsargumente als JSON über stdin lesen, analog zu functionCall.args. Er muss Funktionsausgaben als JSON über stdout zurückgeben, analog zu functionResponse.response.content. | undefined | |
tools.useRipgrep | boolean | Verwende ripgrep für die Dateiinhaltsuche anstelle der Fallback-Implementierung. Bietet schnellere Suchleistung. | true | |
tools.useBuiltinRipgrep | boolean | Verwende das mitgelieferte ripgrep-Binary. Wenn auf false gesetzt, wird stattdessen der systemweite rg-Befehl verwendet. Diese Einstellung ist nur wirksam, wenn tools.useRipgrep true ist. | true | |
tools.enableToolOutputTruncation | boolean | Aktiviert die Kürzung großer Tool-Ausgaben. | true | Erfordert Neustart: Ja |
tools.truncateToolOutputThreshold | number | Kürzt Tool-Ausgaben, wenn diese größer als diese Anzahl an Zeichen sind. Gilt für Shell-, Grep-, Glob-, ReadFile- und ReadManyFiles-Tools. | 25000 | Erfordert Neustart: Ja |
tools.truncateToolOutputLines | number | Maximale Anzahl an Zeilen oder Einträgen, die bei der Kürzung von Tool-Ausgaben beibehalten werden. Gilt für Shell-, Grep-, Glob-, ReadFile- und ReadManyFiles-Tools. | 1000 | Erfordert Neustart: Ja |
tools.autoAccept | boolean | Steuert, ob die CLI automatisch Tool-Aufrufe akzeptiert und ausführt, die als sicher gelten (z.B. Nur-Lese-Operationen), ohne explizite Benutzerbestätigung. Wenn auf true gesetzt, umgeht die CLI den Bestätigungsdialog für als sicher eingestufte Tools. | false |
mcp
| Einstellung | Typ | Beschreibung | Standard |
|---|---|---|---|
mcp.serverCommand | string | Befehl zum Starten eines MCP-Servers. | undefined |
mcp.allowed | Array von Strings | Eine Positivliste von MCP-Servern, die erlaubt sind. Ermöglicht es, eine Liste von MCP-Servernamen anzugeben, die für das Modell verfügbar gemacht werden sollen. Dies kann verwendet werden, um den Satz der MCP-Server, zu denen eine Verbindung hergestellt werden kann, einzuschränken. Beachte, dass dies ignoriert wird, wenn --allowed-mcp-server-names gesetzt ist. | undefined |
mcp.excluded | Array von Strings | Eine 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. Beachte, dass dies ignoriert wird, wenn --allowed-mcp-server-names gesetzt ist. | undefined |
Sicherheitshinweis für MCP-Server: Diese Einstellungen verwenden eine einfache String-Übereinstimmung für MCP-Servernamen, die geändert werden können. Wenn du als Systemadministrator verhindern möchtest, dass Benutzer dies umgehen, solltest du die mcpServers auf der Systemeinstellungsebene konfigurieren, sodass der Benutzer keine eigenen MCP-Server konfigurieren kann. Dies sollte nicht als luftdichter Sicherheitsmechanismus verwendet werden.
security
| Einstellung | Typ | Beschreibung | Standard |
|---|---|---|---|
security.folderTrust.enabled | boolean | Einstellung, um zu verfolgen, ob der Ordner-Vertrauensmodus aktiviert ist. | false |
security.auth.selectedType | string | Der aktuell ausgewählte Authentifizierungstyp. | undefined |
security.auth.enforcedType | string | Der erforderliche Authentifizierungstyp (nützlich für Unternehmen). | undefined |
security.auth.useExternal | boolean | Ob ein externer Authentifizierungsfluss verwendet werden soll. | undefined |
erweitert
| Einstellung | Typ | Beschreibung | Standardwert |
|---|---|---|---|
advanced.autoConfigureMemory | boolean | Konfiguriert automatisch die Speicherlimits für Node.js. | false |
advanced.dnsResolutionOrder | string | Die Reihenfolge der DNS-Auflösung. | undefined |
advanced.excludedEnvVars | array of strings | Umgebungsvariablen, die aus dem Projekt-Kontext ausgeschlossen werden sollen. Gibt Umgebungsvariablen an, die nicht aus den .env-Dateien des Projekts geladen werden sollen. Dies verhindert, dass projektspezifische Umgebungsvariablen (wie DEBUG=true) das Verhalten der CLI beeinflussen. Variablen aus .qwen/.env-Dateien werden niemals ausgeschlossen. | ["DEBUG","DEBUG_MODE"] |
advanced.bugCommand | object | Konfiguration 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.tavilyApiKey | string | API-Schlüssel für den Tavily-Websuchdienst. Wird verwendet, um die Funktionalität des web_search-Tools zu aktivieren. | undefined |
Hinweis zu advanced.tavilyApiKey: Dies ist ein veraltetes Konfigurationsformat. Für Qwen OAuth-Benutzer ist der DashScope-Provider automatisch ohne weitere Konfiguration verfügbar. Für andere Authentifizierungstypen konfigurieren Sie Tavily oder Google-Anbieter mit dem neuen webSearch-Konfigurationsformat.
mcpServers
Konfiguriert Verbindungen zu einem oder mehreren Model-Context Protocol (MCP)-Servern zum Auffinden 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 Tool-Namen mit dem Server-Alias, den Sie in der Konfiguration definiert haben, präfixiert (z.B. serverAlias__actualToolName), um Konflikte zu vermeiden. Beachten Sie, dass das System bestimmte Schema-Eigenschaften aus MCP-Tool-Definitionen aus Kompatibilitätsgründen entfernen kann. Mindestens eines der Felder command, url oder httpUrl muss angegeben werden. Wenn mehrere angegeben werden, ist die Prioritätsreihenfolge httpUrl, dann url, dann command.
| Eigenschaft | Typ | Beschreibung | Optional |
|---|---|---|---|
mcpServers.<SERVER_NAME>.command | string | Der Befehl, der ausgeführt werden soll, um den MCP-Server über Standard-I/O zu starten. | Ja |
mcpServers.<SERVER_NAME>.args | Array von Strings | Argumente, die an den Befehl übergeben werden sollen. | Ja |
mcpServers.<SERVER_NAME>.env | object | Umgebungsvariablen, die für den Server-Prozess gesetzt werden sollen. | Ja |
mcpServers.<SERVER_NAME>.cwd | string | Das Arbeitsverzeichnis, in dem der Server gestartet werden soll. | Ja |
mcpServers.<SERVER_NAME>.url | string | Die URL eines MCP-Servers, der Server-Sent Events (SSE) für die Kommunikation verwendet. | Ja |
mcpServers.<SERVER_NAME>.httpUrl | string | Die URL eines MCP-Servers, der streamfähiges HTTP für die Kommunikation verwendet. | Ja |
mcpServers.<SERVER_NAME>.headers | object | Eine Abbildung von HTTP-Headern, die mit Anfragen an url oder httpUrl gesendet werden sollen. | Ja |
mcpServers.<SERVER_NAME>.timeout | number | Timeout in Millisekunden für Anfragen an diesen MCP-Server. | Ja |
mcpServers.<SERVER_NAME>.trust | boolean | Diesem Server vertrauen und alle Bestätigungen für Tool-Aufrufe umgehen. | Ja |
mcpServers.<SERVER_NAME>.description | string | Eine kurze Beschreibung des Servers, die für Anzeigezwecke verwendet werden kann. | Ja |
mcpServers.<SERVER_NAME>.includeTools | Array von Strings | Liste 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>.excludeTools | Array von Strings | Liste von Tool-Namen, die von diesem MCP-Server ausgeschlossen werden sollen. Tools, die hier aufgelistet sind, sind für das Modell nicht verfügbar, selbst wenn sie vom Server bereitgestellt werden. Hinweis: excludeTools hat Vorrang vor includeTools - wenn ein Tool in beiden Listen enthalten ist, wird es ausgeschlossen. | Ja |
telemetry
Konfiguriert das Logging und die Metrik-Erfassung für Qwen Code. Weitere Informationen finden Sie unter telemetry.
| Einstellung | Typ | Beschreibung | Standard |
|---|---|---|---|
telemetry.enabled | boolean | Ob Telemetrie aktiviert ist oder nicht. | |
telemetry.target | string | Das Ziel für die gesammelte Telemetrie. Unterstützte Werte sind local und gcp. | |
telemetry.otlpEndpoint | string | Der Endpunkt für den OTLP-Exporter. | |
telemetry.otlpProtocol | string | Das Protokoll für den OTLP-Exporter (grpc oder http). | |
telemetry.logPrompts | boolean | Ob der Inhalt der Benutzer-Prompts in die Logs aufgenommen werden soll oder nicht. | |
telemetry.outfile | string | Die Datei, in die die Telemetriedaten geschrieben werden, wenn target auf local gesetzt ist. | |
telemetry.useCollector | boolean | 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 seit v0.3.0:
{
"general": {
"vimMode": true,
"preferredEditor": "code"
},
"ui": {
"theme": "GitHub",
"hideBanner": true,
"hideTips": false,
"customWittyPhrases": [
"Du vergisst tausend Dinge jeden Tag. 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 Benutzer-Home-Ordners 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_historygespeichert.
Umgebungsvariablen & .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.
Für authentifizierungsbezogene Variablen (wie OPENAI_*) und den empfohlenen Ansatz mit .qwen/.env siehe Authentifizierung.
Ausschluss von Umgebungsvariablen: Einige Umgebungsvariablen (wie DEBUG und DEBUG_MODE) werden standardmäßig automatisch aus Projekt-.env-Dateien ausgeschlossen, um eine Störung des CLI-Verhaltens zu verhindern. Variablen aus .qwen/.env-Dateien werden niemals ausgeschlossen. Sie können dieses Verhalten über die Einstellung advanced.excludedEnvVars in Ihrer settings.json-Datei anpassen.
Tabelle der Umgebungsvariablen
| Variable | Beschreibung | Hinweise |
|---|---|---|
GEMINI_TELEMETRY_ENABLED | Auf true oder 1 setzen, um Telemetrie zu aktivieren. Jeder andere Wert wird als Deaktivierung behandelt. | Überschreibt die Einstellung telemetry.enabled. |
GEMINI_TELEMETRY_TARGET | Legt das Telemetrie-Ziel fest (local oder gcp). | Überschreibt die Einstellung telemetry.target. |
GEMINI_TELEMETRY_OTLP_ENDPOINT | Legt den OTLP-Endpunkt für Telemetrie fest. | Überschreibt die Einstellung telemetry.otlpEndpoint. |
GEMINI_TELEMETRY_OTLP_PROTOCOL | Legt das OTLP-Protokoll fest (grpc oder http). | Überschreibt die Einstellung telemetry.otlpProtocol. |
GEMINI_TELEMETRY_LOG_PROMPTS | Auf 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_OUTFILE | Legt den Dateipfad fest, in den Telemetriedaten geschrieben werden sollen, wenn das Ziel local ist. | Überschreibt die Einstellung telemetry.outfile. |
GEMINI_TELEMETRY_USE_COLLECTOR | Auf true oder 1 setzen, um die Verwendung eines externen OTLP-Collectors zu aktivieren oder deaktivieren. Jeder andere Wert wird als Deaktivierung behandelt. | Überschreibt die Einstellung telemetry.useCollector. |
GEMINI_SANDBOX | Alternative 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 andere Ordner, siehe packages/cli/src/utils/sandbox-macos-permissive-open.sb), erlaubt aber andere Operationen. strict: Verwendet ein striktes Profil, das Operationen standardmäßig ablehnt. <profile_name>: Verwendet ein benutzerdefiniertes Profil. Um ein benutzerdefiniertes Profil zu definieren, erstellen Sie eine Datei mit dem Namen sandbox-macos-<profile_name>.sb im .qwen/-Verzeichnis Ihres Projekts (z.B. my-project/.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 Fehlersuche 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_COLOR | Auf einen beliebigen Wert setzen, um alle Farbausgaben in der CLI zu deaktivieren. | |
CLI_TITLE | Auf einen String setzen, um den Titel der CLI anzupassen. | |
CODE_ASSIST_ENDPOINT | Gibt den Endpunkt für den Code-Assist-Server an. | Dies ist für Entwicklung und Test nützlich. |
TAVILY_API_KEY | Ihr 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-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
| Argument | Alias | Beschreibung | Mögliche Werte | Hinweise |
|---|---|---|---|---|
--model | -m | Gibt das Qwen-Modell an, das für diese Sitzung verwendet werden soll. | Modellname | Beispiel: npm start -- --model qwen3-coder-plus |
--prompt | -p | Wird verwendet, um eine Eingabeaufforderung direkt an den Befehl zu übergeben. Dadurch wird Qwen Code im nicht-interaktiven Modus aufgerufen. | Ihr Prompt-Text | Verwenden Sie für Skriptbeispiele das Flag --output-format json, um strukturierte Ausgabe zu erhalten. |
--prompt-interactive | -i | Startet eine interaktive Sitzung mit der bereitgestellten Eingabeaufforderung als initialer Eingabe. | Ihr Prompt-Text | Der Prompt wird innerhalb der interaktiven Sitzung verarbeitet, nicht davor. Kann nicht verwendet werden, wenn Eingaben über stdin weitergeleitet werden. Beispiel: qwen -i "erkläre diesen Code" |
--output-format | -o | Gibt das Format der CLI-Ausgabe für den nicht-interaktiven Modus an. | text, json, stream-json | text: (Standard) Die übliche menschenlesbare Ausgabe. json: Eine maschinenlesbare JSON-Ausgabe, die am Ende der Ausführung ausgegeben wird. stream-json: Streamende JSON-Nachrichten, die während der Ausführung ausgegeben werden. Für strukturierte Ausgabe und Skripte verwenden Sie das Flag --output-format json oder --output-format stream-json. Siehe Headless-Modus für detaillierte Informationen. |
--input-format | Gibt das Format an, das von der Standardeingabe konsumiert wird. | text, stream-json | text: (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-messages | Schließt teilweise Assistentennachrichten ein, wenn das Ausgabeformat stream-json verwendet wird. Wenn aktiviert, werden Stream-Ereignisse (message_start, content_block_delta, etc.) ausgegeben, sobald sie während des Streamings auftreten. | Standard: false. Voraussetzung: Erfordert, dass --output-format stream-json gesetzt ist. Siehe Headless-Modus für detaillierte Informationen über Stream-Ereignisse. | ||
--sandbox | -s | Aktiviert den Sandbox-Modus für diese Sitzung. | ||
--sandbox-image | Setzt die Sandbox-Image-URI. | |||
--debug | -d | Aktiviert den Debug-Modus für diese Sitzung und liefert eine ausführlichere Ausgabe. | ||
--all-files | -a | Wenn gesetzt, werden rekursiv alle Dateien innerhalb des aktuellen Verzeichnisses als Kontext für den Prompt einbezogen. | ||
--help | -h | Zeigt Hilfesinformationen zu den Befehlszeilenargumenten an. | ||
--show-memory-usage | Zeigt die aktuelle Speichernutzung an. | |||
--yolo | Aktiviert den YOLO-Modus, der automatisch alle Tool-Aufrufe genehmigt. | |||
--approval-mode | Setzt den Genehmigungsmodus für Tool-Aufrufe. | plan, default, auto-edit, yolo | Unterstützte Modi: plan: Nur Analyse—keine Dateiänderungen oder Befehlsausführungen. default: Erfordert Genehmigung für Dateiänderungen oder Shell-Befehle (Standardverhalten). auto-edit: Genehmigt automatisch Editier-Tools (edit, write_file), während andere nachgefragt werden. yolo: Genehmigt automatisch alle Tool-Aufrufe (äquivalent zu --yolo). Kann nicht zusammen mit --yolo verwendet werden. Verwenden Sie --approval-mode=yolo anstelle von --yolo für den neuen vereinheitlichten Ansatz. Beispiel: qwen --approval-mode auto-editWeitere Informationen unter Genehmigungsmodus. | |
--allowed-tools | Eine durch Kommas getrennte Liste von Tool-Namen, die den Bestätigungsdialog umgehen. | Tool-Namen | Beispiel: qwen --allowed-tools "Shell(git status)" | |
--telemetry | Aktiviert Telemetrie. | |||
--telemetry-target | Setzt das Telemetrie-Ziel. | Siehe Telemetrie für weitere Informationen. | ||
--telemetry-otlp-endpoint | Setzt den OTLP-Endpunkt für Telemetrie. | Siehe Telemetrie für weitere Informationen. | ||
--telemetry-otlp-protocol | Setzt das OTLP-Protokoll für Telemetrie (grpc oder http). | Standard ist grpc. Siehe Telemetrie für weitere Informationen. | ||
--telemetry-log-prompts | Aktiviert die Protokollierung von Prompts für Telemetrie. | Siehe Telemetrie für weitere Informationen. | ||
--checkpointing | Aktiviert Checkpointing. | |||
--experimental-acp | Aktiviert ACP-Modus (Agent Control Protocol). Nützlich für IDE-/Editor-Integrationen wie Zed. | Experimentell. | ||
--experimental-skills | Aktiviert experimentelle Agent Skills (registriert das skill-Tool und lädt Skills aus .qwen/skills/ und ~/.qwen/skills/). | Experimentell. | ||
--extensions | -e | Gibt eine Liste von Erweiterungen an, die für die Sitzung verwendet werden sollen. | Erweiterungsnamen | Wenn 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 | -l | Listet alle verfügbaren Erweiterungen auf und beendet das Programm. | ||
--proxy | Setzt den Proxy für die CLI. | Proxy-URL | Beispiel: --proxy http://localhost:7890. | |
--include-directories | Schließt zusätzliche Verzeichnisse in den Arbeitsbereich ein, um Multi-Directory-Unterstützung zu bieten. | Verzeichnispfade | Kann mehrfach angegeben werden oder als kommagetrennte Werte. Maximal 5 Verzeichnisse können hinzugefügt werden. Beispiel: --include-directories /path/to/project1,/path/to/project2 oder --include-directories /path/to/project1 --include-directories /path/to/project2 | |
--screen-reader | Aktiviert den Screen-Reader-Modus, der die TUI für bessere Kompatibilität mit Screen-Readern anpasst. | |||
--version | Zeigt die Version der CLI an. | |||
--openai-logging | Aktiviert die Protokollierung von OpenAI-API-Aufrufen für Debugging und Analyse. | Dieses Flag überschreibt die Einstellung enableOpenAILogging in settings.json. | ||
--openai-logging-dir | Setzt einen benutzerdefinierten Verzeichnispfad für OpenAI-API-Protokolle. | Verzeichnispfad | Dieses Flag überschreibt die Einstellung openAILoggingDir in settings.json. Unterstützt absolute Pfade, relative Pfade und ~-Expansion. Beispiel: qwen --openai-logging-dir "~/qwen-logs" --openai-logging | |
--tavily-api-key | Setzt den Tavily-API-Schlüssel für die Web-Suchfunktionalität für diese Sitzung. | API-Schlüssel | Beispiel: qwen --tavily-api-key tvly-your-api-key-here |
Kontextdateien (hierarchischer instruktionaler Kontext)
Obwohl dies nicht strikt eine Konfiguration für das Verhalten der CLI ist, sind Kontextdateien (standardmäßig QWEN.md, aber konfigurierbar über die Einstellung context.fileName) entscheidend für die Konfiguration des instruktionalen Kontexts (auch als “Gedächtnis” bezeichnet). Diese leistungsstarke Funktion ermöglicht es Ihnen, projektspezifische Anweisungen, Kodierungsstile oder andere relevante Hintergrundinformationen an die KI zu übergeben, wodurch deren Antworten besser auf Ihre Bedürfnisse zugeschnitten und genauer werden. Die CLI enthält Benutzeroberflächenelemente, wie beispielsweise einen Indikator in der Fußzeile, der die Anzahl der geladenen Kontextdateien anzeigt, um Sie über den aktiven Kontext zu informieren.
- Zweck: Diese Markdown-Dateien enthalten Anweisungen, Richtlinien oder Kontext, den Sie dem Qwen-Modell während Ihrer Interaktionen vermitteln möchten. Das System ist darauf ausgelegt, diesen instruktionalen Kontext hierarchisch zu verwalten.
Beispiel für Context-Datei-Inhalt (z. B. QWEN.md)
Hier ist ein konzeptionelles Beispiel dafür, was eine Context-Datei 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 befolgen.
- Sicherstellen, dass alle neuen Funktionen und Klassen JSDoc-Kommentare enthalten.
- Wo angebracht, funktionale Programmierparadigmen bevorzugen.
- Der gesamte Code sollte mit TypeScript 5.0 und Node.js 20+ kompatibel sein.
## Codierungsstil:
- 2 Leerzeichen für Einrückungen verwenden.
- Interfacenamen 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 robuste Fehlerbehandlung und Protokollierung enthalten.
- Für alle GET-Anfragen das bestehende `fetchWithRetry`-Hilfsmittel verwenden.Bezüglich Abhängigkeiten:
- Vermeide die Einführung neuer externer Abhängigkeiten, sofern nicht unbedingt notwendig.
- Falls eine neue Abhängigkeit erforderlich ist, gib bitte den Grund an.
Dieses Beispiel zeigt, wie du allgemeinen Projekt-Kontext, spezifische Kodierungs-Konventionen und sogar Hinweise zu bestimmten Dateien oder Komponenten bereitstellen kannst. Je relevanter und präziser deine Kontextdateien sind, desto besser kann die KI dir helfen. Projektspezifische Kontextdateien sind sehr empfohlen, um Konventionen und Kontext zu etablieren.
- **Hierarchisches Laden und Priorisierung:** Die CLI implementiert ein ausgeklügeltes hierarchisches Speichersystem durch 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 deinem Benutzerverzeichnis).
- Gültigkeitsbereich: Stellt Standardanweisungen für alle deine 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 deinem Home-Verzeichnis.
- Gültigkeitsbereich: Stellt Kontext bereit, der für das gesamte Projekt oder einen bedeutenden Teil davon relevant ist.
3. **Unterverzeichnis-Kontextdateien (kontextuell/lokal):**
- Ort: Die CLI scannt auch nach der konfigurierten Kontextdatei in Unterverzeichnissen _unterhalb_ des aktuellen Arbeitsverzeichnisses (unter Berücksichtigung üblicher Ignoriermuster wie `node_modules`, `.git`, etc.). Die Breite dieser Suche ist standardmäßig auf 200 Verzeichnisse begrenzt, kann aber mit der Einstellung `context.discoveryMaxDirs` in deiner `settings.json`-Datei konfiguriert werden.
- Gültigkeitsbereich: Erlaubt sehr spezifische Anweisungen, die für eine bestimmte Komponente, ein Modul oder einen Teilbereich deines Projekts relevant sind.
- **Zusammenfügung & UI-Anzeige:** Die Inhalte aller gefundenen Kontextdateien werden zusammengefügt (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 dir so einen schnellen visuellen Hinweis auf den aktiven instruktiven Kontext.
- **Importieren von Inhalten:** Du kannst deine Kontextdateien modularisieren, indem du andere Markdown-Dateien mit der Syntax `@pfad/zu/datei.md` importierst. Weitere Details findest du in der [Memory Import Processor Dokumentation](../configuration/memory).
- **Befehle zur Speicherverwaltung:**
- Verwende `/memory refresh`, um einen erneuten Scan und Neuladen aller Kontextdateien aus allen konfigurierten Orten zu erzwingen. Dies aktualisiert den instruktiven Kontext der KI.
- Verwende `/memory show`, um den aktuell geladenen kombinierten instruktiven Kontext anzuzeigen, was dir erlaubt, die Hierarchie und Inhalte zu überprüfen, die von der KI verwendet werden.
- Siehe die [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 Konfigurationsebenen und der hierarchischen Natur von Kontextdateien kannst du den Speicher der KI effektiv verwalten und die Antworten von Qwen Code an deine 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 Weisen aktiviert werden:
- Verwendung des `--sandbox` oder `-s` Flags.
- Setzen der `GEMINI_SANDBOX` Umgebungsvariable.
- Die Sandbox ist standardmäßig aktiviert, wenn `--yolo` oder `--approval-mode=yolo` verwendet wird.
Standardmäßig wird ein vorgefertigtes `qwen-code-sandbox` Docker-Image 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 unterstützen, 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 sammeln nicht die an die Tools übergebenen Argumente oder Daten, die von ihnen zurückgegeben werden.
- **API-Anfragen:** Wir protokollieren das Modell, das für jede Anfrage verwendet wurde, die Dauer der Anfrage und ob sie erfolgreich war. Wir sammeln 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 Identifikationsdaten (PII):** Wir sammeln keine persönlichen Informationen wie Ihren Namen, Ihre E-Mail-Adresse oder API-Schlüssel.
- **Prompt- und Antwortinhalte:** 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 Datensammlung:**
Sie können die Sammlung von Nutzungsstatistiken jederzeit deaktivieren, indem Sie die Eigenschaft `usageStatisticsEnabled` auf `false` unter der Kategorie `privacy` in Ihrer Datei `settings.json` setzen:
{ “privacy”: { “usageStatisticsEnabled”: false } }
> [!note]
>
> Wenn Nutzungsstatistiken aktiviert sind, werden Ereignisse an einen Alibaba Cloud RUM-Erfassungsendpunkt gesendet.