Configuration de Qwen Code
Authentification / Clés API : L’authentification (OAuth Qwen, plan Alibaba Cloud Coding ou clé API) et les variables d’environnement liées à l’authentification (telles que OPENAI_API_KEY) sont documentées dans la section Authentification.
Remarque concernant le nouveau format de configuration : Le format du fichier settings.json a été mis à jour vers une nouvelle structure plus organisée. L’ancien format sera migré automatiquement.
Qwen Code propose plusieurs moyens de configurer son comportement, notamment via des variables d’environnement, des arguments de ligne de commande et des fichiers de paramètres. Ce document décrit les différentes méthodes de configuration ainsi que les paramètres disponibles.
Couches de configuration
La configuration est appliquée dans l’ordre de priorité suivant (les niveaux inférieurs sont remplacés par les niveaux supérieurs) :
| Niveau | Source de configuration | Description |
|---|---|---|
| 1 | Valeurs par défaut | Valeurs par défaut intégrées en dur dans l’application |
| 2 | Fichier de paramètres par défaut système | Paramètres par défaut applicables à l’ensemble du système, pouvant être remplacés par d’autres fichiers de paramètres |
| 3 | Fichier de paramètres utilisateur | Paramètres globaux pour l’utilisateur actuel |
| 4 | Fichier de paramètres projet | Paramètres spécifiques au projet |
| 5 | Fichier de paramètres système | Paramètres applicables à l’ensemble du système, prenant le pas sur tous les autres fichiers de paramètres |
| 6 | Variables d’environnement | Variables applicables à l’ensemble du système ou à la session, potentiellement chargées depuis des fichiers .env |
| 7 | Arguments de ligne de commande | Valeurs transmises lors du lancement de l’interface en ligne de commande (CLI) |
Fichiers de paramètres
Qwen Code utilise des fichiers de paramètres au format JSON pour conserver les configurations de façon persistante. Ces fichiers peuvent être placés à quatre emplacements différents :
| Type de fichier | Emplacement | Portée |
|---|---|---|
| Fichier de paramètres par défaut système | Linux : /etc/qwen-code/system-defaults.jsonWindows : C:\ProgramData\qwen-code\system-defaults.jsonmacOS : /Library/Application Support/QwenCode/system-defaults.jsonL’emplacement peut être remplacé à l’aide de la variable d’environnement QWEN_CODE_SYSTEM_DEFAULTS_PATH. | Fournit une couche de base de paramètres par défaut applicables à l’ensemble du système. Ces paramètres ont la priorité la plus faible et sont destinés à être remplacés par les paramètres utilisateur, projet ou système. |
| Fichier de paramètres utilisateur | ~/.qwen/settings.json (où ~ désigne votre répertoire personnel). | S’applique à toutes les sessions Qwen Code de l’utilisateur actuel. |
| Fichier de paramètres projet | .qwen/settings.json situé à la racine du répertoire de votre projet. | S’applique uniquement lorsque Qwen Code est lancé depuis ce projet spécifique. Les paramètres projet remplacent les paramètres utilisateur. |
| Fichier de paramètres système | Linux : /etc/qwen-code/settings.jsonWindows : C:\ProgramData\qwen-code\settings.jsonmacOS : /Library/Application Support/QwenCode/settings.jsonL’emplacement peut être remplacé à l’aide de la variable d’environnement QWEN_CODE_SYSTEM_SETTINGS_PATH. | S’applique à toutes les sessions Qwen Code sur le système, pour tous les utilisateurs. Les paramètres système remplacent les paramètres utilisateur et projet. Peut s’avérer utile aux administrateurs système dans les entreprises pour contrôler les configurations Qwen Code des utilisateurs. |
Remarque concernant les variables d’environnement dans les paramètres : Les valeurs de type chaîne dans vos fichiers settings.json peuvent faire référence à des variables d’environnement à l’aide de la syntaxe $VAR_NAME ou ${VAR_NAME}. Ces variables sont automatiquement résolues lors du chargement des paramètres. Par exemple, si vous disposez d’une variable d’environnement MY_API_TOKEN, vous pouvez l’utiliser dans settings.json comme suit : "apiKey": "$MY_API_TOKEN".
Le répertoire .qwen de votre projet
En plus du fichier de paramètres du projet, le répertoire .qwen d’un projet peut contenir d’autres fichiers spécifiques au projet liés au fonctionnement de Qwen Code, tels que :
- Profils de bac à sable personnalisés (par exemple
.qwen/sandbox-macos-custom.sb,.qwen/sandbox.Dockerfile). - Compétences d’agent sous
.qwen/skills/(chaque compétence est un répertoire contenant un fichierSKILL.md).
Migration de la configuration
Qwen Code migre automatiquement les anciens paramètres de configuration vers le nouveau format. Les anciens fichiers de paramètres sont sauvegardés avant la migration. Les paramètres suivants ont été renommés, passant d’une nomenclature négative (disable*) à une nomenclature positive (enable*) :
| Ancien paramètre | Nouveau paramètre | Remarques |
|---|---|---|
disableAutoUpdate + disableUpdateNag | general.enableAutoUpdate | Fusionnés en un seul paramètre |
disableLoadingPhrases | ui.accessibility.enableLoadingPhrases | |
disableFuzzySearch | context.fileFiltering.enableFuzzySearch | |
disableCacheControl | model.generationConfig.enableCacheControl |
Inversion des valeurs booléennes : Lors de la migration, les valeurs booléennes sont inversées (par exemple, disableAutoUpdate: true devient enableAutoUpdate: false).
Politique de consolidation pour disableAutoUpdate et disableUpdateNag
Lorsque les deux paramètres hérités sont présents avec des valeurs différentes, la migration suit la règle suivante : si l’un ou l’autre de disableAutoUpdate ou disableUpdateNag est défini à true, alors enableAutoUpdate devient false :
disableAutoUpdate | disableUpdateNag | enableAutoUpdate après migration |
|---|---|---|
false | false | true |
false | true | false |
true | false | false |
true | true | false |
Paramètres disponibles dans settings.json
Les paramètres sont organisés par catégories. Tous les paramètres doivent être placés dans l’objet de catégorie de premier niveau correspondant de votre fichier settings.json.
général
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
general.preferredEditor | chaîne | Éditeur privilégié pour l’ouverture des fichiers. | undefined |
general.vimMode | booléen | Active les raccourcis clavier Vim. | false |
general.enableAutoUpdate | booléen | Active la vérification et l’installation automatiques des mises à jour au démarrage. | true |
general.gitCoAuthor | booléen | Ajoute automatiquement un en-tête « Co-authored-by » aux messages de validation Git lorsque celles-ci sont effectuées via Qwen Code. | true |
general.checkpointing.enabled | booléen | Active la sauvegarde périodique de la session afin de permettre une reprise après incident. | false |
general.defaultFileEncoding | chaîne | Encodage par défaut pour les nouveaux fichiers. Utilisez "utf-8" (valeur par défaut) pour UTF-8 sans BOM, ou "utf-8-bom" pour UTF-8 avec BOM. Ne modifiez cette valeur que si votre projet nécessite explicitement le BOM. | "utf-8" |
sortie
| Paramètre | Type | Description | Valeur par défaut | Valeurs possibles |
|---|---|---|---|---|
output.format | chaîne | Le format de la sortie de l’interface en ligne de commande. | "text" | "text", "json" |
ui
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
ui.theme | chaîne de caractères | Le thème de couleurs de l’interface utilisateur. Consultez la section Thèmes pour connaître les options disponibles. | undefined |
ui.customThemes | objet | Définitions personnalisées de thèmes. | {} |
ui.hideWindowTitle | booléen | Masque la barre de titre de la fenêtre. | false |
ui.hideTips | booléen | Masque les conseils utiles dans l’interface utilisateur. | false |
ui.hideBanner | booléen | Masque la bannière de l’application. | false |
ui.hideFooter | booléen | Masque le pied de page de l’interface utilisateur. | false |
ui.showMemoryUsage | booléen | Affiche les informations relatives à l’utilisation de la mémoire dans l’interface utilisateur. | false |
ui.showLineNumbers | booléen | Affiche les numéros de ligne dans les blocs de code de la sortie CLI. | true |
ui.showCitations | booléen | Affiche les références associées au texte généré dans la discussion. | true |
enableWelcomeBack | booléen | Affiche une boîte de dialogue de bienvenue lors du retour sur un projet comportant un historique de discussion. Lorsqu’elle est activée, Qwen Code détecte automatiquement si vous revenez sur un projet disposant d’un résumé de projet généré précédemment (.qwen/PROJECT_SUMMARY.md) et affiche une boîte de dialogue vous permettant de poursuivre votre discussion précédente ou de commencer une nouvelle conversation. Cette fonctionnalité s’intègre à la commande /summary et à la boîte de dialogue de confirmation de fermeture. | true |
ui.accessibility.enableLoadingPhrases | booléen | Active les phrases d’attente (désactiver pour améliorer l’accessibilité). | true |
ui.accessibility.screenReader | booléen | Active le mode lecteur d’écran, qui adapte l’interface en mode texte (TUI) pour une meilleure compatibilité avec les lecteurs d’écran. | false |
ui.customWittyPhrases | tableau de chaînes de caractères | Liste de phrases personnalisées à afficher pendant les états de chargement. Lorsqu’elles sont fournies, la CLI parcourt ces phrases à la place des phrases par défaut. | [] |
ide
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
ide.enabled | booléen | Active le mode d’intégration à l’IDE. | false |
ide.hasSeenNudge | booléen | Indique si l’utilisateur a déjà vu l’invite d’intégration à l’IDE. | false |
confidentialité
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
privacy.usageStatisticsEnabled | booléen | Active la collecte des statistiques d’utilisation. | true |
modèle
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
model.name | chaîne | Le modèle Qwen à utiliser pour les conversations. | undefined |
model.maxSessionTurns | nombre | Nombre maximal de tours utilisateur/modèle/outil à conserver dans une session. La valeur -1 signifie illimité. | -1 |
model.generationConfig | objet | Paramètres avancés transmis au générateur de contenu sous-jacent. Prend en charge des contrôles de requête tels que timeout, maxRetries, enableCacheControl, contextWindowSize (remplace la taille de fenêtre contextuelle du modèle), modalities (remplace les modalités d’entrée détectées automatiquement), customHeaders (en-têtes HTTP personnalisés pour les requêtes API) et extra_body (paramètres supplémentaires du corps de la requête, uniquement pour les API compatibles OpenAI), ainsi que des réglages fins sous samplingParams (par exemple temperature, top_p, max_tokens). Laissez ce paramètre non défini pour utiliser les valeurs par défaut du fournisseur. | undefined |
model.chatCompression.contextPercentageThreshold | nombre | Définit le seuil de compression de l’historique des discussions comme pourcentage de la limite totale de jetons du modèle. Il s’agit d’une valeur comprise entre 0 et 1, appliquée aussi bien à la compression automatique qu’à la commande manuelle /compress. Par exemple, une valeur de 0.6 déclenchera la compression lorsque l’historique dépasse 60 % de la limite de jetons. Utilisez 0 pour désactiver complètement la compression. | 0.7 |
model.skipNextSpeakerCheck | booléen | Ignore la vérification suivante de l’orateur. | false |
model.skipLoopDetection | booléen | Désactive les vérifications de détection de boucle. Cette détection empêche les boucles infinies dans les réponses de l’IA, mais peut générer de faux positifs interrompant des flux de travail légitimes. Activez cette option si vous subissez fréquemment des interruptions dues à des faux positifs. | false |
model.skipStartupContext | booléen | Évite l’envoi du contexte initial de l’espace de travail (résumé de l’environnement et accusé de réception) au début de chaque session. Activez cette option si vous préférez fournir le contexte manuellement ou si vous souhaitez économiser des jetons au démarrage. | false |
model.enableOpenAILogging | booléen | Active la journalisation des appels à l’API OpenAI à des fins de débogage et d’analyse. Lorsqu’elle est activée, les requêtes et réponses API sont enregistrées dans des fichiers JSON. | false |
model.openAILoggingDir | chaîne | Chemin personnalisé vers le répertoire de journaux de l’API OpenAI. Si non spécifié, la valeur par défaut est logs/openai dans le répertoire de travail courant. Prend en charge les chemins absolus, les chemins relatifs (résolus depuis le répertoire de travail courant) et l’expansion de ~ (répertoire personnel). | undefined |
Exemple de model.generationConfig :
{
"model": {
"generationConfig": {
"timeout": 60000,
"contextWindowSize": 128000,
"modalities": {
"image": true
},
"enableCacheControl": true,
"customHeaders": {
"X-Client-Request-ID": "req-123"
},
"extra_body": {
"enable_thinking": true
},
"samplingParams": {
"temperature": 0.2,
"top_p": 0.8,
"max_tokens": 1024
}
}
}
}contextWindowSize :
Remplace la taille par défaut de la fenêtre contextuelle pour le modèle sélectionné. Qwen Code détermine la fenêtre contextuelle à partir de valeurs par défaut intégrées basées sur la correspondance du nom du modèle, avec une valeur constante par défaut. Utilisez ce paramètre lorsque la limite effective de contexte fournie par le fournisseur diffère de celle par défaut de Qwen Code. Cette valeur définit la capacité maximale supposée de contexte du modèle, et non une limite de jetons par requête.
modalities :
Remplace les modalités d’entrée détectées automatiquement pour le modèle sélectionné. Qwen Code détecte automatiquement les modalités prises en charge (image, PDF, audio, vidéo) selon une correspondance de motifs sur le nom du modèle. Utilisez ce paramètre lorsque la détection automatique est incorrecte — par exemple, pour activer pdf sur un modèle qui le prend en charge mais n’est pas reconnu. Format : { "image": true, "pdf": true, "audio": true, "video": true }. Omettez une clé ou définissez-la à false pour les types non pris en charge.
customHeaders :
Permet d’ajouter des en-têtes HTTP personnalisés à toutes les requêtes API. Cela est utile pour le traçage des requêtes, la surveillance, le routage via une passerelle API, ou lorsqu’un modèle nécessite des en-têtes spécifiques. Si customHeaders est défini dans modelProviders[].generationConfig.customHeaders, il sera utilisé directement ; sinon, les en-têtes provenant de model.generationConfig.customHeaders seront utilisés. Aucune fusion n’est effectuée entre ces deux niveaux.
Le champ extra_body permet d’ajouter des paramètres personnalisés au corps de la requête envoyé à l’API. Cela est utile pour les options spécifiques à un fournisseur non couvertes par les champs de configuration standard. Remarque : Ce champ n’est pris en charge que pour les fournisseurs compatibles OpenAI (openai, qwen-oauth). Il est ignoré pour les fournisseurs Anthropic et Gemini. Si extra_body est défini dans modelProviders[].generationConfig.extra_body, il sera utilisé directement ; sinon, les valeurs provenant de model.generationConfig.extra_body seront utilisées.
Exemples de model.openAILoggingDir :
"~/qwen-logs"— Journalise dans le répertoire~/qwen-logs"./custom-logs"— Journalise dans./custom-logs, relatif au répertoire courant"/tmp/openai-logs"— Journalise dans le chemin absolu/tmp/openai-logs
contexte
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
context.fileName | chaîne de caractères ou tableau de chaînes de caractères | Le nom du ou des fichiers de contexte. | undefined |
context.importFormat | chaîne de caractères | Le format à utiliser lors de l’importation de la mémoire. | undefined |
context.includeDirectories | tableau | Répertoires supplémentaires à inclure dans le contexte de l’espace de travail. Spécifie un tableau de chemins absolus ou relatifs supplémentaires à inclure dans le contexte de l’espace de travail. Les répertoires manquants seront ignorés avec un avertissement par défaut. Les chemins peuvent utiliser ~ pour désigner le répertoire personnel de l’utilisateur. Ce paramètre peut être combiné avec l’option en ligne de commande --include-directories. | [] |
context.loadFromIncludeDirectories | booléen | Contrôle le comportement de la commande /memory refresh. Si défini sur true, les fichiers QWEN.md doivent être chargés depuis tous les répertoires ajoutés. Si défini sur false, les fichiers QWEN.md doivent uniquement être chargés depuis le répertoire courant. | false |
context.fileFiltering.respectGitIgnore | booléen | Prendre en compte les fichiers .gitignore lors de la recherche. | true |
context.fileFiltering.respectQwenIgnore | booléen | Prendre en compte les fichiers .qwenignore lors de la recherche. | true |
context.fileFiltering.enableRecursiveFileSearch | booléen | Active ou non la recherche récursive des noms de fichiers dans l’arborescence courante lors de la complétion des préfixes @ dans l’invite. | true |
context.fileFiltering.enableFuzzySearch | booléen | Lorsque ce paramètre est défini sur true, active les fonctionnalités de recherche floue lors de la recherche de fichiers. Définissez-le sur false pour améliorer les performances sur les projets comportant un grand nombre de fichiers. | true |
Dépannage des performances de la recherche de fichiers
Si vous rencontrez des problèmes de performance lors de la recherche de fichiers (par exemple, avec les complétions @), notamment dans des projets comportant un très grand nombre de fichiers, voici quelques solutions à essayer, classées par ordre de recommandation :
- Utilisez le fichier
.qwenignore: Créez un fichier.qwenignoreà la racine de votre projet pour exclure les répertoires contenant un grand nombre de fichiers que vous n’avez pas besoin de référencer (par exemple, les artefacts de compilation, les fichiers journaux ou le répertoirenode_modules). Réduire le nombre total de fichiers explorés est la méthode la plus efficace pour améliorer les performances. - Désactivez la recherche floue : Si l’exclusion de fichiers ne suffit pas, vous pouvez désactiver la recherche floue en définissant
enableFuzzySearchsurfalsedans votre fichiersettings.json. Cela utilisera un algorithme de correspondance plus simple et non flou, généralement plus rapide. - Désactivez la recherche récursive de fichiers : En dernier recours, vous pouvez désactiver entièrement la recherche récursive de fichiers en définissant
enableRecursiveFileSearchsurfalse. Il s’agit de l’option la plus rapide, car elle évite l’exploration récursive de votre projet. Toutefois, cela signifie que vous devrez saisir le chemin complet des fichiers lors de l’utilisation des complétions@.
Outils
| Paramètre | Type | Description | Valeur par défaut | Remarques |
|---|---|---|---|---|
tools.sandbox | booléen ou chaîne | Environnement d’exécution en bac à sable (peut être un booléen ou un chemin sous forme de chaîne). | undefined | |
tools.shell.enableInteractiveShell | booléen | Utilise node-pty pour une expérience de shell interactive. La solution de repli sur child_process reste applicable. | false | |
tools.core | tableau de chaînes | Permet de restreindre l’ensemble des outils intégrés via une liste blanche. Vous pouvez également spécifier des restrictions propres à une commande pour les outils qui le prennent en charge, comme l’outil run_shell_command. Par exemple, "tools.core": ["run_shell_command(ls -l)"] n’autorisera que l’exécution de la commande ls -l. | undefined | |
tools.exclude | tableau de chaînes | Noms des outils à exclure de la découverte. Vous pouvez aussi spécifier des restrictions propres à une commande pour les outils qui le prennent en charge, comme l’outil run_shell_command. Par exemple, "tools.exclude": ["run_shell_command(rm -rf)"] bloquera la commande rm -rf. Note de sécurité : Les restrictions basées sur la commande dans tools.exclude pour run_shell_command reposent sur une simple correspondance de chaîne et peuvent facilement être contournées. Cette fonctionnalité n’est pas un mécanisme de sécurité, et ne doit pas être utilisée pour exécuter en toute sécurité du code non fiable. Il est recommandé d’utiliser tools.core afin de sélectionner explicitement les commandes autorisées. | undefined | |
tools.allowed | tableau de chaînes | Liste des noms d’outils qui contourneront la boîte de dialogue de confirmation. Cela est utile pour les outils que vous jugez fiables et que vous utilisez fréquemment. Par exemple, ["run_shell_command(git)", "run_shell_command(npm test)"] ignorera la boîte de dialogue de confirmation pour exécuter n’importe quelle commande git ou npm test. | undefined | |
tools.approvalMode | chaîne | Définit le mode d’approbation par défaut pour l’utilisation des outils. | default | Valeurs possibles : plan (analyse uniquement, aucune modification de fichiers ni exécution de commandes), default (demande d’approbation avant toute modification de fichiers ou exécution de commandes shell), auto-edit (approuve automatiquement les modifications de fichiers), yolo (approuve automatiquement tous les appels d’outils) |
tools.discoveryCommand | chaîne | Commande à exécuter pour la découverte des outils. | undefined | |
tools.callCommand | chaîne | Définit une commande shell personnalisée pour appeler un outil spécifique découvert via tools.discoveryCommand. Cette commande shell doit respecter les critères suivants : elle doit recevoir le nom de la fonction (tel qu’il apparaît dans la déclaration de fonction ) comme premier argument de ligne de commande ; elle doit lire les arguments de la fonction au format JSON depuis stdin, de façon analogue à functionCall.args ; elle doit renvoyer le résultat de la fonction au format JSON sur stdout, de façon analogue à functionResponse.response.content. | undefined | |
tools.useRipgrep | booléen | Utilise ripgrep pour la recherche dans le contenu des fichiers, au lieu de l’implémentation de repli. Offre des performances de recherche plus rapides. | true | |
tools.useBuiltinRipgrep | booléen | Utilise le binaire ripgrep fourni avec l’application. Lorsque ce paramètre est défini à false, la commande système rg sera utilisée à la place. Ce paramètre n’a effet que si tools.useRipgrep vaut true. | true | |
tools.truncateToolOutputThreshold | nombre | Tronque la sortie d’un outil si celle-ci dépasse ce nombre de caractères. S’applique aux outils Shell, Grep, Glob, ReadFile et ReadManyFiles. | 25000 | Redémarrage requis : Oui |
tools.truncateToolOutputLines | nombre | Nombre maximal de lignes ou d’entrées conservées lors du troncage de la sortie d’un outil. S’applique aux outils Shell, Grep, Glob, ReadFile et ReadManyFiles. | 1000 | Redémarrage requis : Oui |
mcp
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
mcp.serverCommand | chaîne de caractères | Commande permettant de démarrer un serveur MCP. | undefined |
mcp.allowed | tableau de chaînes de caractères | Liste blanche des serveurs MCP autorisés. Vous permet de spécifier une liste de noms de serveurs MCP qui doivent être mis à disposition du modèle. Cela peut servir à restreindre l’ensemble des serveurs MCP auxquels se connecter. Remarque : ce paramètre sera ignoré si l’option --allowed-mcp-server-names est définie. | undefined |
mcp.excluded | tableau de chaînes de caractères | Liste noire des serveurs MCP exclus. Un serveur figurant à la fois dans mcp.excluded et dans mcp.allowed est exclu. Remarque : ce paramètre sera ignoré si l’option --allowed-mcp-server-names est définie. | undefined |
Note de sécurité concernant les serveurs MCP : Ces paramètres reposent sur une correspondance simple de chaînes de caractères pour les noms des serveurs MCP, lesquels peuvent être modifiés. Si vous êtes administrateur système et souhaitez empêcher les utilisateurs de contourner cette restriction, envisagez de configurer les mcpServers au niveau des paramètres système, afin qu’un utilisateur ne puisse pas configurer lui-même de serveurs MCP. Ce mécanisme ne doit pas être considéré comme une mesure de sécurité absolue.
lsp
[!warning] Fonctionnalité expérimentale : La prise en charge du protocole LSP est actuellement expérimentale et désactivée par défaut. Activez-la à l’aide de l’indicateur de ligne de commande
--experimental-lsp.
Le protocole Language Server Protocol (LSP) fournit des fonctionnalités d’intelligence code telles que « aller à la définition », « rechercher les références » et les diagnostics.
La configuration du serveur LSP s’effectue via des fichiers .lsp.json situés dans le répertoire racine de votre projet, et non via le fichier settings.json. Consultez la documentation LSP pour obtenir des détails de configuration et des exemples.
sécurité
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
security.folderTrust.enabled | booléen | Indique si le mode de confiance des dossiers est activé. | false |
security.auth.selectedType | chaîne | Type d’authentification actuellement sélectionné. | undefined |
security.auth.enforcedType | chaîne | Type d’authentification requis (utile pour les entreprises). | undefined |
security.auth.useExternal | booléen | Indique si un flux d’authentification externe doit être utilisé. | undefined |
avancé
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
advanced.autoConfigureMemory | booléen | Configure automatiquement les limites mémoire de Node.js. | false |
advanced.dnsResolutionOrder | chaîne de caractères | Ordre de résolution DNS. | undefined |
advanced.excludedEnvVars | tableau de chaînes de caractères | Variables d’environnement à exclure du contexte du projet. Spécifie les variables d’environnement qui ne doivent pas être chargées depuis les fichiers .env du projet. Cela empêche les variables d’environnement propres au projet (par exemple DEBUG=true) d’interférer avec le comportement de l’interface en ligne de commande (CLI). Les variables provenant des fichiers .qwen/.env ne sont jamais exclues. | ["DEBUG","DEBUG_MODE"] |
advanced.bugCommand | objet | Configuration de la commande de rapport de bogue. Remplace l’URL par défaut utilisée par la commande /bug. Propriétés : urlTemplate (chaîne de caractères) : une URL pouvant contenir les espaces réservés {title} et {info}. Exemple : "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" } | undefined |
advanced.tavilyApiKey | chaîne de caractères | Clé API du service de recherche web Tavily. Utilisée pour activer la fonctionnalité de l’outil web_search. | undefined |
Remarque concernant advanced.tavilyApiKey : Il s’agit d’un format de configuration obsolète. Pour les utilisateurs Qwen utilisant l’authentification OAuth, le fournisseur DashScope est automatiquement disponible sans aucune configuration. Pour les autres types d’authentification, configurez les fournisseurs Tavily ou Google à l’aide du nouveau format de configuration webSearch.
mcpServers
Configure les connexions à un ou plusieurs serveurs Model-Context Protocol (MCP) afin de découvrir et d’utiliser des outils personnalisés. Qwen Code tente de se connecter à chaque serveur MCP configuré pour découvrir les outils disponibles. Si plusieurs serveurs MCP exposent un outil portant le même nom, les noms des outils seront préfixés par l’alias du serveur que vous avez défini dans la configuration (par exemple, aliasServeur__nomOutilReel) afin d’éviter tout conflit. Notez que le système peut supprimer certaines propriétés de schéma des définitions d’outils MCP pour assurer la compatibilité. Au moins une des propriétés suivantes doit être fournie : command, url ou httpUrl. Si plusieurs sont spécifiées, l’ordre de priorité est le suivant : httpUrl, puis url, puis command.
| Propriété | Type | Description | Facultatif |
|---|---|---|---|
mcpServers.<NOM_DU_SERVEUR>.command | chaîne de caractères | Commande à exécuter pour démarrer le serveur MCP via les entrées/sorties standard. | Oui |
mcpServers.<NOM_DU_SERVEUR>.args | tableau de chaînes de caractères | Arguments à transmettre à la commande. | Oui |
mcpServers.<NOM_DU_SERVEUR>.env | objet | Variables d’environnement à définir pour le processus du serveur. | Oui |
mcpServers.<NOM_DU_SERVEUR>.cwd | chaîne de caractères | Répertoire de travail dans lequel démarrer le serveur. | Oui |
mcpServers.<NOM_DU_SERVEUR>.url | chaîne de caractères | URL d’un serveur MCP utilisant les événements envoyés par le serveur (Server-Sent Events, SSE) pour la communication. | Oui |
mcpServers.<NOM_DU_SERVEUR>.httpUrl | chaîne de caractères | URL d’un serveur MCP utilisant HTTP avec flux continu pour la communication. | Oui |
mcpServers.<NOM_DU_SERVEUR>.headers | objet | Tableau associatif d’en-têtes HTTP à envoyer avec les requêtes vers url ou httpUrl. | Oui |
mcpServers.<NOM_DU_SERVEUR>.timeout | nombre | Délai d’attente (en millisecondes) pour les requêtes adressées à ce serveur MCP. | Oui |
mcpServers.<NOM_DU_SERVEUR>.trust | booléen | Faire confiance à ce serveur et ignorer toutes les confirmations liées aux appels d’outils. | Oui |
mcpServers.<NOM_DU_SERVEUR>.description | chaîne de caractères | Brève description du serveur, pouvant être utilisée à des fins d’affichage. | Oui |
mcpServers.<NOM_DU_SERVEUR>.includeTools | tableau de chaînes de caractères | Liste des noms d’outils à inclure depuis ce serveur MCP. Lorsqu’elle est spécifiée, seuls les outils figurant dans cette liste seront disponibles depuis ce serveur (comportement de liste blanche). Si elle n’est pas spécifiée, tous les outils du serveur sont activés par défaut. | Oui |
mcpServers.<NOM_DU_SERVEUR>.excludeTools | tableau de chaînes de caractères | Liste des noms d’outils à exclure de ce serveur MCP. Les outils figurant dans cette liste ne seront pas accessibles au modèle, même s’ils sont exposés par le serveur. Remarque : excludeTools a priorité sur includeTools — si un outil figure dans les deux listes, il sera exclu. | Oui |
Télémétrie
Configure la journalisation et la collecte de métriques pour Qwen Code. Pour plus d’informations, consultez Télémétrie.
| Paramètre | Type | Description | Valeur par défaut |
|---|---|---|---|
telemetry.enabled | booléen | Active ou désactive la télémétrie. | |
telemetry.target | chaîne | Destination des données de télémétrie collectées. Valeurs prises en charge : local et gcp. | |
telemetry.otlpEndpoint | chaîne | Point de terminaison de l’exportateur OTLP. | |
telemetry.otlpProtocol | chaîne | Protocole de l’exportateur OTLP (grpc ou http). | |
telemetry.logPrompts | booléen | Indique si le contenu des invites utilisateur doit être inclus dans les journaux. | |
telemetry.outfile | chaîne | Fichier dans lequel écrire les données de télémétrie lorsque target est défini sur local. | |
telemetry.useCollector | booléen | Indique s’il faut utiliser un collecteur OTLP externe. |
Exemple de fichier settings.json
Voici un exemple de fichier settings.json avec la structure imbriquée, nouvelle depuis la version 0.3.0 :
{
"general": {
"vimMode": true,
"preferredEditor": "code"
},
"ui": {
"theme": "GitHub",
"hideTips": false,
"customWittyPhrases": [
"Vous oubliez mille choses chaque jour. Assurez-vous que celle-ci en fait partie",
"Connexion à l’AGI"
]
},
"tools": {
"approvalMode": "yolo",
"sandbox": "docker",
"discoveryCommand": "bin/get_tools",
"callCommand": "bin/call_tool",
"exclude": ["write_file"]
},
"mcpServers": {
"mainServer": {
"command": "bin/mcp_server.py"
},
"anotherServer": {
"command": "node",
"args": ["mcp_server.js", "--verbose"]
}
},
"telemetry": {
"enabled": true,
"target": "local",
"otlpEndpoint": "http://localhost:4317",
"logPrompts": true
},
"privacy": {
"usageStatisticsEnabled": true
},
"model": {
"name": "qwen3-coder-plus",
"maxSessionTurns": 10,
"enableOpenAILogging": false,
"openAILoggingDir": "~/qwen-logs",
},
"context": {
"fileName": ["CONTEXT.md", "QWEN.md"],
"includeDirectories": ["path/to/dir1", "~/path/to/dir2", "../path/to/dir3"],
"loadFromIncludeDirectories": true,
"fileFiltering": {
"respectGitIgnore": false
}
},
"advanced": {
"excludedEnvVars": ["DEBUG", "DEBUG_MODE", "NODE_ENV"]
}
}Historique du shell
L’interface en ligne de commande (CLI) conserve un historique des commandes que vous exécutez dans le shell. Afin d’éviter les conflits entre différents projets, cet historique est stocké dans un répertoire spécifique à chaque projet, situé dans le dossier personnel de l’utilisateur.
- Emplacement :
~/.qwen/tmp/<project_hash>/shell_history<project_hash>est un identifiant unique généré à partir du chemin racine de votre projet.- L’historique est stocké dans un fichier nommé
shell_history.
Variables d’environnement et fichiers .env
Les variables d’environnement constituent un moyen courant de configurer des applications, notamment pour les informations sensibles (telles que les jetons) ou pour les paramètres susceptibles de varier selon les environnements.
Qwen Code peut charger automatiquement les variables d’environnement à partir de fichiers .env.
Pour les variables liées à l’authentification (telles que OPENAI_*) et l’approche recommandée utilisant le fichier .qwen/.env, consultez Authentification.
Exclusion des variables d’environnement : Certaines variables d’environnement (telles que DEBUG et DEBUG_MODE) sont automatiquement exclues par défaut des fichiers .env du projet afin d’éviter toute interférence avec le comportement de l’interface en ligne de commande (CLI). Les variables provenant des fichiers .qwen/.env ne sont jamais exclues. Vous pouvez personnaliser ce comportement à l’aide du paramètre advanced.excludedEnvVars dans votre fichier settings.json.
Table des variables d’environnement
| Variable | Description | Remarques |
|---|---|---|
QWEN_TELEMETRY_ENABLED | Définissez cette variable sur true ou 1 pour activer la télémétrie. Toute autre valeur est considérée comme une désactivation. | Remplace le paramètre telemetry.enabled. |
QWEN_TELEMETRY_TARGET | Définit la cible de la télémétrie (local ou gcp). | Remplace le paramètre telemetry.target. |
QWEN_TELEMETRY_OTLP_ENDPOINT | Définit le point de terminaison OTLP pour la télémétrie. | Remplace le paramètre telemetry.otlpEndpoint. |
QWEN_TELEMETRY_OTLP_PROTOCOL | Définit le protocole OTLP (grpc ou http). | Remplace le paramètre telemetry.otlpProtocol. |
QWEN_TELEMETRY_LOG_PROMPTS | Définissez cette variable sur true ou 1 pour activer ou désactiver la journalisation des invites utilisateur. Toute autre valeur est considérée comme une désactivation. | Remplace le paramètre telemetry.logPrompts. |
QWEN_TELEMETRY_OUTFILE | Définit le chemin du fichier dans lequel écrire les données de télémétrie lorsque la cible est local. | Remplace le paramètre telemetry.outfile. |
QWEN_TELEMETRY_USE_COLLECTOR | Définissez cette variable sur true ou 1 pour activer ou désactiver l’utilisation d’un collecteur OTLP externe. Toute autre valeur est considérée comme une désactivation. | Remplace le paramètre telemetry.useCollector. |
QWEN_SANDBOX | Alternative au paramètre sandbox dans le fichier settings.json. | Accepte les valeurs true, false, docker, podman ou une chaîne de commande personnalisée. |
SEATBELT_PROFILE | (Spécifique à macOS) Permet de basculer le profil Seatbelt (sandbox-exec) sous macOS. | permissive-open : (Par défaut) Restreint les écritures au dossier du projet (et à quelques autres dossiers, voir packages/cli/src/utils/sandbox-macos-permissive-open.sb) mais autorise les autres opérations. strict : Utilise un profil strict qui refuse par défaut toutes les opérations. <profile_name> : Utilise un profil personnalisé. Pour définir un profil personnalisé, créez un fichier nommé sandbox-macos-<profile_name>.sb dans le dossier .qwen/ de votre projet (par exemple, my-project/.qwen/sandbox-macos-custom.sb). |
DEBUG ou DEBUG_MODE | (Souvent utilisé par les bibliothèques sous-jacentes ou par l’interface CLI elle-même) Définissez cette variable sur true ou 1 pour activer une journalisation détaillée en mode débogage, utile pour le dépannage. | Remarque : Ces variables sont automatiquement exclues des fichiers .env de projet par défaut afin d’éviter toute interférence avec le comportement de l’interface CLI. Utilisez plutôt les fichiers .qwen/.env si vous devez les définir spécifiquement pour Qwen Code. |
NO_COLOR | Définissez cette variable à n’importe quelle valeur pour désactiver toutes les couleurs dans la sortie de l’interface CLI. | |
CLI_TITLE | Définissez cette variable à une chaîne de caractères pour personnaliser le titre de l’interface CLI. | |
CODE_ASSIST_ENDPOINT | Spécifie le point de terminaison du serveur d’assistance pour le code. | Utile pour le développement et les tests. |
TAVILY_API_KEY | Votre clé API pour le service de recherche web Tavily. | Utilisée pour activer la fonctionnalité de l’outil web_search. Exemple : export TAVILY_API_KEY="tvly-your-api-key-here" |
Arguments de ligne de commande
Les arguments passés directement lors de l’exécution de l’interface en ligne de commande (CLI) peuvent remplacer les autres configurations pour cette session spécifique.
Table des arguments en ligne de commande
| Argument | Alias | Description | Valeurs possibles | Remarques |
|---|---|---|---|---|
--model | -m | Spécifie le modèle Qwen à utiliser pour cette session. | Nom du modèle | Exemple : npm start -- --model qwen3-coder-plus |
--prompt | -p | Permet de transmettre directement une invite à la commande. Cela lance Qwen Code en mode non interactif. | Texte de votre invite | Pour les exemples de scripts, utilisez l’indicateur --output-format json afin d’obtenir une sortie structurée. |
--prompt-interactive | -i | Démarre une session interactive avec l’invite fournie comme entrée initiale. | Texte de votre invite | L’invite est traitée dans le cadre de la session interactive, et non avant celle-ci. Ne peut pas être utilisé lorsqu’une entrée est transférée depuis stdin. Exemple : qwen -i "explique ce code" |
--output-format | -o | Spécifie le format de sortie de l’interface CLI en mode non interactif. | text, json, stream-json | text : (Par défaut) Sortie standard lisible par un humain. json : Sortie JSON lisible par une machine, émise à la fin de l’exécution. stream-json : Messages JSON diffusés au fur et à mesure de leur génération pendant l’exécution. Pour une sortie structurée et des scripts, utilisez l’indicateur --output-format json ou --output-format stream-json. Consultez Mode sans interface graphique pour plus de détails. |
--input-format | Spécifie le format attendu sur l’entrée standard (stdin). | text, stream-json | text : (Par défaut) Entrée texte standard depuis stdin ou depuis les arguments de ligne de commande. stream-json : Protocole de messages JSON via stdin pour une communication bidirectionnelle. Condition requise : --input-format stream-json exige que --output-format stream-json soit également défini. Lorsque stream-json est utilisé, stdin est réservé aux messages du protocole. Consultez Mode sans interface graphique pour plus de détails. | |
--include-partial-messages | Inclut les messages partiels de l’assistant lorsque le format de sortie stream-json est utilisé. Lorsqu’il est activé, les événements de diffusion (tels que message_start, content_block_delta, etc.) sont émis au fur et à mesure de leur génération. | Par défaut : false. Condition requise : nécessite que --output-format stream-json soit défini. Consultez Mode sans interface graphique pour plus d’informations sur les événements de diffusion. | ||
--sandbox | -s | Active le mode bac à sable pour cette session. | ||
--sandbox-image | Définit l’URI de l’image du bac à sable. | |||
--debug | -d | Active le mode débogage pour cette session, fournissant une sortie plus verbeuse. | ||
--all-files | -a | Si défini, inclut récursivement tous les fichiers du répertoire courant comme contexte pour l’invite. | ||
--help | -h | Affiche les informations d’aide relatives aux arguments en ligne de commande. | ||
--show-memory-usage | Affiche l’utilisation actuelle de la mémoire. | |||
--yolo | Active le mode YOLO, qui approuve automatiquement tous les appels d’outils. | |||
--approval-mode | Définit le mode d’approbation des appels d’outils. | plan, default, auto-edit, yolo | Modes pris en charge : plan : analyse uniquement — aucun fichier n’est modifié ni aucune commande exécutée. default : demande une approbation pour toute modification de fichier ou exécution de commande (comportement par défaut). auto-edit : approuve automatiquement les outils d’édition (tels que edit, write_file) tout en demandant confirmation pour les autres. yolo : approuve automatiquement tous les appels d’outils (équivalent à --yolo). Ne peut pas être utilisé conjointement avec --yolo. Utilisez plutôt --approval-mode=yolo pour la nouvelle approche unifiée. Exemple : qwen --approval-mode auto-editEn savoir plus sur le mode d’approbation. | |
--allowed-tools | Liste séparée par des virgules des noms d’outils qui contourneront la boîte de dialogue de confirmation. | Noms d’outils | Exemple : qwen --allowed-tools "Shell(git status)" | |
--telemetry | Active la télémétrie. | |||
--telemetry-target | Définit la cible de la télémétrie. | Consultez la page télémétrie pour plus d’informations. | ||
--telemetry-otlp-endpoint | Définit le point de terminaison OTLP pour la télémétrie. | Consultez la page télémétrie pour plus d’informations. | ||
--telemetry-otlp-protocol | Définit le protocole OTLP pour la télémétrie (grpc ou http). | Par défaut : grpc. Consultez la page télémétrie pour plus d’informations. | ||
--telemetry-log-prompts | Active la journalisation des invites dans le cadre de la télémétrie. | Consultez la page télémétrie pour plus d’informations. | ||
--checkpointing | Active la fonctionnalité de points de contrôle. | |||
--acp | Active le mode ACP (Agent Client Protocol). Utile pour les intégrations avec des IDE ou éditeurs tels que Zed. | Fonctionnalité stable. Remplace l’indicateur obsolète --experimental-acp. | ||
--experimental-lsp | Active la fonctionnalité expérimentale LSP (Language Server Protocol) pour l’intelligence du code (aller à la définition, rechercher les références, diagnostics, etc.). | Fonctionnalité expérimentale. Nécessite l’installation préalable de serveurs de langage. | ||
--extensions | -e | Spécifie une liste d’extensions à utiliser pour la session. | Noms d’extensions | Si aucun nom n’est fourni, toutes les extensions disponibles sont utilisées. Utilisez le terme spécial qwen -e none pour désactiver toutes les extensions. Exemple : qwen -e my-extension -e my-other-extension |
--list-extensions | -l | Liste toutes les extensions disponibles puis quitte. | ||
--proxy | Définit le proxy à utiliser pour l’interface CLI. | URL du proxy | Exemple : --proxy http://localhost:7890. | |
--include-directories | Inclut des répertoires supplémentaires dans l’espace de travail pour prendre en charge plusieurs répertoires. | Chemins vers des répertoires | Peut être spécifié plusieurs fois ou sous forme de valeurs séparées par des virgules. Un maximum de 5 répertoires peut être ajouté. Exemple : --include-directories /path/to/project1,/path/to/project2 ou --include-directories /path/to/project1 --include-directories /path/to/project2 | |
--screen-reader | Active le mode lecteur d’écran, qui adapte l’interface TUI pour une meilleure compatibilité avec les lecteurs d’écran. | |||
--version | Affiche la version de l’interface CLI. | |||
--openai-logging | Active la journalisation des appels à l’API OpenAI à des fins de débogage et d’analyse. | Cet indicateur remplace le paramètre enableOpenAILogging dans le fichier settings.json. | ||
--openai-logging-dir | Définit un chemin personnalisé vers le répertoire contenant les journaux des appels à l’API OpenAI. | Chemin vers un répertoire | Cet indicateur remplace le paramètre openAILoggingDir dans le fichier settings.json. Prend en charge les chemins absolus, relatifs et l’expansion de ~. Exemple : qwen --openai-logging-dir "~/qwen-logs" --openai-logging | |
--tavily-api-key | Définit la clé API Tavily pour la fonctionnalité de recherche web durant cette session. | Clé API | Exemple : qwen --tavily-api-key tvly-your-api-key-here |
Fichiers de contexte (contexte instructif hiérarchique)
Bien qu’ils ne constituent pas strictement une configuration du comportement de l’interface en ligne de commande (CLI), les fichiers de contexte (par défaut QWEN.md, mais configurables via le paramètre context.fileName) sont essentiels pour configurer le contexte instructif (également appelé « mémoire »). Cette fonctionnalité puissante vous permet de fournir au modèle des instructions spécifiques au projet, des guides de style de codage ou toute autre information contextuelle pertinente, afin d’obtenir des réponses plus adaptées et précises à vos besoins. La CLI intègre des éléments d’interface utilisateur, tels qu’un indicateur dans le pied de page affichant le nombre de fichiers de contexte chargés, pour vous tenir informé du contexte actif.
- Objectif : Ces fichiers Markdown contiennent des instructions, des directives ou des éléments de contexte que vous souhaitez voir pris en compte par le modèle Qwen pendant vos interactions. Le système est conçu pour gérer ce contexte instructif de manière hiérarchique.
Exemple de contenu de fichier de contexte (par exemple QWEN.md)
Voici un exemple conceptuel du contenu d’un fichier de contexte situé à la racine d’un projet TypeScript :
# Projet : Ma superbe bibliothèque TypeScript
## Instructions générales :
- Lors de la génération de nouveau code TypeScript, veuillez respecter le style de codage existant.
- Assurez-vous que toutes les nouvelles fonctions et classes sont accompagnées de commentaires JSDoc.
- Privilégiez les paradigmes de programmation fonctionnelle là où cela est pertinent.
- Tout le code doit être compatible avec TypeScript 5.0 et Node.js 20+.
## Style de codage :
- Utilisez deux espaces pour l’indentation.
- Les noms d’interfaces doivent être préfixés par `I` (par exemple, `IUserService`).
- Les membres privés des classes doivent être préfixés par un trait de soulignement (`_`).
- Utilisez systématiquement l’égalité stricte (`===` et `!==`).
## Composant spécifique : `src/api/client.ts`
- Ce fichier gère toutes les requêtes API sortantes.
- Lors de l’ajout de nouvelles fonctions d’appel API, assurez-vous qu’elles incluent une gestion d’erreurs robuste et une journalisation adéquate.
- Utilisez l’utilitaire existant `fetchWithRetry` pour toutes les requêtes GET.À propos des dépendances :
- Évitez d’introduire de nouvelles dépendances externes, sauf si cela est absolument nécessaire.
- Si une nouvelle dépendance est requise, veuillez en indiquer la raison.
Cet exemple montre comment vous pouvez fournir un contexte général sur le projet, des conventions de codage spécifiques, voire des notes relatives à certains fichiers ou composants. Plus vos fichiers de contexte sont pertinents et précis, plus l’IA pourra vous aider efficacement. Il est fortement recommandé de créer des fichiers de contexte propres au projet afin d’établir clairement les conventions et le contexte applicables.
- **Chargement hiérarchique et priorité :** L’interface en ligne de commande (CLI) implémente un système de mémoire hiérarchique en chargeant des fichiers de contexte (par exemple `QWEN.md`) depuis plusieurs emplacements. Le contenu des fichiers figurant plus bas dans cette liste (plus spécifiques) remplace généralement ou complète celui des fichiers situés plus haut (plus généraux). L’ordre exact de concaténation et le contexte final peuvent être inspectés à l’aide de la commande `/memory show`. L’ordre de chargement habituel est le suivant :
1. **Fichier de contexte global :**
- Emplacement : `~/.qwen/<nom-du-fichier-de-contexte-configuré>` (par exemple `~/.qwen/QWEN.md` dans le répertoire personnel de l’utilisateur).
- Portée : Fournit des instructions par défaut applicables à tous vos projets.
2. **Fichiers de contexte à la racine du projet et dans ses répertoires parents :**
- Emplacement : La CLI recherche le fichier de contexte configuré dans le répertoire de travail courant, puis dans chaque répertoire parent jusqu’à atteindre soit la racine du projet (identifiée par la présence d’un dossier `.git`), soit le répertoire personnel de l’utilisateur.
- Portée : Fournit un contexte pertinent pour l’ensemble du projet ou pour une partie importante de celui-ci.
- **Concaténation et indication dans l’interface utilisateur :** Le contenu de tous les fichiers de contexte trouvés est concaténé (avec des séparateurs indiquant leur origine et leur chemin) et intégré au message système fourni à l’IA. Le pied de page de la CLI affiche le nombre de fichiers de contexte chargés, offrant ainsi un repère visuel rapide sur le contexte instructif actif.
- **Importation de contenu :** Vous pouvez modulariser vos fichiers de contexte en important d’autres fichiers Markdown à l’aide de la syntaxe `@chemin/vers/fichier.md`. Pour plus de détails, consultez la [documentation du processeur d’importation de mémoire](../configuration/memory).
- **Commandes de gestion de la mémoire :**
- Utilisez `/memory refresh` pour forcer un nouveau balayage et un rechargement de tous les fichiers de contexte depuis tous les emplacements configurés. Cette commande met à jour le contexte instructif fourni à l’IA.
- Utilisez `/memory show` pour afficher le contexte instructif combiné actuellement chargé, ce qui vous permet de vérifier la hiérarchie et le contenu utilisés par l’IA.
- Consultez la [documentation des commandes](../features/commands) pour obtenir tous les détails sur la commande `/memory` et ses sous-commandes (`show` et `refresh`).
En comprenant et en exploitant ces couches de configuration ainsi que la nature hiérarchique des fichiers de contexte, vous pouvez gérer efficacement la mémoire de l’IA et adapter les réponses de Qwen Code à vos besoins et projets spécifiques.
## Sandbox
Qwen Code peut exécuter des opérations potentiellement dangereuses (comme des commandes shell ou des modifications de fichiers) au sein d’un environnement isolé (sandbox) afin de protéger votre système.
Le [sandbox](../features/sandbox) est désactivé par défaut, mais vous pouvez l’activer de plusieurs façons :
- À l’aide du drapeau `--sandbox` ou `-s`.
- En définissant la variable d’environnement `QWEN_SANDBOX`.
- Le sandbox est activé par défaut lorsque vous utilisez `--yolo` ou `--approval-mode=yolo`.
Par défaut, il utilise une image Docker préconstruite nommée `qwen-code-sandbox`.
Pour répondre à des besoins spécifiques de sandboxing liés à un projet, vous pouvez créer un fichier Dockerfile personnalisé à l’emplacement `.qwen/sandbox.Dockerfile` à la racine de votre projet. Ce Dockerfile peut être basé sur l’image de base du sandbox :
FROM qwen-code-sandbox
Ajoutez ici vos dépendances ou configurations personnalisées
Par exemple :
RUN apt-get update && apt-get install -y some-package
# COPIER ./my-config /app/my-configLorsque le fichier .qwen/sandbox.Dockerfile existe, vous pouvez utiliser la variable d’environnement BUILD_SANDBOX lors de l’exécution de Qwen Code afin de générer automatiquement l’image personnalisée du bac à sable :
BUILD_SANDBOX=1 qwen -sStatistiques d’utilisation
Pour nous aider à améliorer Qwen Code, nous collectons des statistiques d’utilisation anonymisées. Ces données nous permettent de comprendre comment l’interface en ligne de commande (CLI) est utilisée, d’identifier les problèmes courants et de prioriser le développement de nouvelles fonctionnalités.
Ce que nous collectons :
- Appels d’outils : Nous enregistrons les noms des outils appelés, leur réussite ou leur échec, ainsi que leur temps d’exécution. Nous ne collectons ni les arguments transmis aux outils, ni les données qu’ils renvoient.
- Requêtes API : Nous enregistrons le modèle utilisé pour chaque requête, sa durée d’exécution et son succès ou son échec. Nous ne collectons ni le contenu des invites (prompts), ni celui des réponses.
- Informations sur la session : Nous collectons des informations relatives à la configuration de la CLI, telles que les outils activés et le mode d’approbation.
Ce que nous NE collectons PAS :
- Données à caractère personnel (PII) : Nous ne collectons aucune information personnelle, telle que votre nom, votre adresse e-mail ou vos clés API.
- Contenu des invites et des réponses : Nous n’enregistrons ni le contenu de vos invites, ni les réponses fournies par le modèle.
- Contenu des fichiers : Nous n’enregistrons pas le contenu des fichiers lus ou écrits par la CLI.
Comment désactiver la collecte :
Vous pouvez désactiver à tout moment la collecte de statistiques d’utilisation en définissant la propriété usageStatisticsEnabled sur false dans la catégorie privacy de votre fichier settings.json :
{
"privacy": {
"usageStatisticsEnabled": false
}
}Lorsque la collecte de statistiques d’utilisation est activée, les événements sont envoyés à un point de terminaison de collecte RUM d’Alibaba Cloud.