Skip to Content
Guide utilisateurConfigurationParamètres

Configuration de Qwen Code

Tip

Authentification / Clés API : L’authentification (clé API, Alibaba Cloud Coding Plan) et les variables d’environnement liées à l’authentification (comme OPENAI_API_KEY) sont documentées dans Authentification.

Note

Note sur 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 offre plusieurs façons de configurer son comportement, notamment les variables d’environnement, les arguments de ligne de commande et les fichiers de paramètres. Ce document décrit les différentes méthodes de configuration et les paramètres disponibles.

Couches de configuration

La configuration est appliquée selon l’ordre de priorité suivant (les numéros les plus bas sont remplacés par les plus élevés) :

NiveauSource de configurationDescription
1Valeurs par défautValeurs par défaut codées en dur dans l’application
2Fichier système par défautParamètres système par défaut pouvant être remplacés par d’autres fichiers
3Fichier utilisateurParamètres globaux pour l’utilisateur actuel
4Fichier du projetParamètres spécifiques au projet
5Fichier systèmeParamètres système qui remplacent tous les autres fichiers de configuration
6Variables d’environnementVariables système ou de session, potentiellement chargées depuis des fichiers .env
7Arguments de ligne de commandeValeurs passées lors du lancement de la CLI

Fichiers de configuration

Qwen Code utilise des fichiers JSON pour la configuration persistante. Il existe quatre emplacements pour ces fichiers :

Type de fichierEmplacementPortée
Fichier système par défautLinux : /etc/qwen-code/system-defaults.json
Windows : C:\ProgramData\qwen-code\system-defaults.json
macOS : /Library/Application Support/QwenCode/system-defaults.json
Le chemin peut être remplacé via la variable d’environnement QWEN_CODE_SYSTEM_DEFAULTS_PATH.
Fournit une couche de base de paramètres système par défaut. Ces paramètres ont la priorité la plus basse et sont destinés à être remplacés par les paramètres utilisateur, projet ou système.
Fichier utilisateur~/.qwen/settings.json (où ~ est votre répertoire personnel).S’applique à toutes les sessions Qwen Code pour l’utilisateur actuel.
Fichier du projet.qwen/settings.json à la racine de votre projet.S’applique uniquement lorsque vous exécutez Qwen Code depuis ce projet spécifique. Les paramètres du projet remplacent les paramètres utilisateur.
Fichier systèmeLinux : /etc/qwen-code/settings.json
Windows : C:\ProgramData\qwen-code\settings.json
macOS : /Library/Application Support/QwenCode/settings.json
Le chemin peut être remplacé via 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 être utile pour les administrateurs système en entreprise.
Note

Note sur les variables d’environnement dans les paramètres : Les valeurs de chaîne dans vos fichiers settings.json peuvent référencer des variables d’environnement en utilisant la syntaxe $VAR_NAME ou ${VAR_NAME}. Ces variables seront automatiquement résolues lors du chargement des paramètres. Par exemple, si vous avez une variable d’environnement MY_API_TOKEN, vous pouvez l’utiliser dans settings.json comme ceci : "apiKey": "$MY_API_TOKEN".

Le répertoire .qwen dans votre projet

En plus d’un fichier de configuration 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 :

Migration de la configuration

Qwen Code migre automatiquement les paramètres de configuration hérités vers le nouveau format. Les anciens fichiers de paramètres sont sauvegardés avant la migration. Les paramètres suivants ont été renommés d’une nomenclature négative (disable*) à positive (enable*) :

Ancien paramètreNouveau paramètreRemarques
disableAutoUpdate + disableUpdateNaggeneral.enableAutoUpdateFusionné en un seul paramètre
disableLoadingPhrasesui.accessibility.enableLoadingPhrases
disableFuzzySearchcontext.fileFiltering.enableFuzzySearch
disableCacheControlmodel.generationConfig.enableCacheControl
Note

Inversion de valeur booléenne : 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 cette politique : si l’un ou l’autre de disableAutoUpdate ou disableUpdateNag est true, alors enableAutoUpdate devient false :

disableAutoUpdatedisableUpdateNagenableAutoUpdate après migration
falsefalsetrue
falsetruefalse
truefalsefalse
truetruefalse

Paramètres disponibles dans settings.json

Les paramètres sont organisés par catégories. La plupart des paramètres doivent être placés dans leur objet de catégorie de niveau supérieur correspondant dans votre fichier settings.json. Quelques paramètres de niveau supérieur comme proxy et plansDirectory restent des clés racines directes pour des raisons de compatibilité.

general

ParamètreTypeDescriptionValeur par défaut
general.preferredEditorstringL’éditeur préféré pour ouvrir les fichiers.undefined
general.vimModebooleanActiver les raccourcis clavier Vim.false
general.enableAutoUpdatebooleanActiver la vérification automatique des mises à jour et leur installation au démarrage.true
general.showSessionRecapbooleanAfficher automatiquement un récapitulatif d’une ligne « où vous en étiez » en revenant au terminal après une absence. Désactivé par défaut. Utilisez /recap pour le déclencher manuellement, indépendamment de ce paramètre.false
general.sessionRecapAwayThresholdMinutesnumberMinutes d’inactivité du terminal avant qu’un récapitulatif automatique ne s’affiche lors du retour. Utilisé uniquement si showSessionRecap est activé.5
general.gitCoAuthor.commitbooleanAjouter une signature « Co-authored-by » aux messages de commit git ET attacher une note d’attribution AI par fichier (refs/notes/ai-attribution) pour les commits effectués via Qwen Code. Désactiver pour ignorer les deux.true
general.gitCoAuthor.prbooleanAjouter une ligne d’attribution Qwen Code dans les descriptions de pull requests lors de l’exécution de gh pr create.true
general.defaultFileEncodingstringEncodage par défaut pour les nouveaux fichiers. Utilisez "utf-8" (défaut) pour UTF-8 sans BOM, ou "utf-8-bom" pour UTF-8 avec BOM. Ne modifiez ce paramètre que si votre projet nécessite explicitement un BOM."utf-8"
general.cleanupPeriodDaysnumberJours de conservation des sauvegardes de session ~/.qwen/file-history/ utilisées par /rewind. Les sauvegardes plus anciennes sont supprimées par une tâche d’arrière-plan au maximum une fois par jour. 0 = rétention minimale (~1 heure) : conserve les sessions touchées dans la dernière heure plus la session active. Le changement prend effet après redémarrage.30
general.languageenumLangue de l’interface utilisateur. Utilisez "auto" pour détecter depuis les paramètres système, ou un code de langue (par exemple "zh-CN", "fr"). Des codes personnalisés peuvent être ajoutés en plaçant des fichiers de locale JS dans ~/.qwen/locales/. Voir i18n. Nécessite un redémarrage."auto"
general.outputLanguagestringLangue pour les réponses du modèle. Utilisez "auto" pour détecter depuis les paramètres système, ou définissez une langue spécifique. Nécessite un redémarrage."auto"
general.dynamicCommandTranslationbooleanActiver la traduction IA des descriptions des commandes dynamiques slash. Lorsqu’il est désactivé, les commandes dynamiques conservent leurs descriptions originales et ignorent les appels au modèle de traduction.false

output

ParamètreTypeDescriptionValeur par défautValeurs possibles
output.formatstringLe format de la sortie de la CLI."text""text", "json"
output.showTimestampsbooleanAfficher un horodatage [HH:MM:SS] avant chaque réponse de l’assistant.false

ui

ParamètreTypeDescriptionValeur par défaut
ui.themestringLe thème de couleur pour l’interface. Voir Themes pour les options disponibles."Qwen Dark"
ui.customThemesobjectDéfinitions de thèmes personnalisés.{}
ui.statusLineobjectConfiguration personnalisée de la ligne d’état. Prend en charge les options command, refreshInterval, respectUserColors et hideContextIndicator. Voir Status Line.undefined
ui.hideWindowTitlebooleanMasquer la barre de titre de la fenêtre.false
ui.hideTipsbooleanMasquer toutes les astuces (de démarrage et post-réponse) dans l’interface. Voir Contextual Tips.false
ui.hideBannerbooleanMasquer le logo ASCII de démarrage et le panneau d’informations. Les astuces et la zone de saisie restent affichées sauf si ui.hideTips est également défini.false
ui.customBannerTitlestringRemplacer le titre par défaut >_ Qwen Code dans le panneau d’informations. Le suffixe de version (vX.Y.Z) est toujours ajouté ; les lignes d’authentification, de modèle et de chemin ne sont pas affectées. Nettoyé ; limité à 80 caractères.""
ui.customBannerSubtitlestringLigne de sous-titre facultative affichée entre le titre de la bannière et la ligne d’authentification/modèle, à la place de l’espace vide par défaut. Nettoyée ; limitée à 160 caractères. Vide (défaut) conserve l’espace vide d’origine.""
ui.customAsciiArtstring | objectRemplacer le logo ASCII QWEN dans la bannière. Accepte une chaîne simple (utilisée pour les deux niveaux de largeur), { "path": "./brand.txt" } (les chemins relatifs sont résolus par rapport au répertoire du fichier de paramètres ; lu une fois au démarrage avec O_NOFOLLOW sur POSIX, limité à 64 Ko), ou { "small": ..., "large": ... } pour une sélection sensible à la largeur. Nettoyé ; limité à 200 lignes × 200 colonnes par niveau.undefined
ui.showLineNumbersbooleanAfficher les numéros de ligne dans les blocs de code de la sortie CLI.true
ui.renderModestringMode d’affichage par défaut du Markdown. Utilisez "render" pour un aperçu visuel riche ou "raw" pour afficher le Markdown orienté source par défaut. Basculer pendant une session avec Alt/Option+M ; sur macOS, le terminal doit envoyer Option comme Meta. Voir Markdown Rendering."render"
ui.showCitationsbooleanAfficher les citations pour le texte généré dans la discussion.false
ui.history.collapseOnResumebooleanSi l’historique doit être réduit par défaut lors de la reprise d’une session. Peut être basculé via /history collapse-on-resume et /history expand-on-resume.false
ui.compactModebooleanMasquer les sorties des outils et la réflexion pour une vue plus épurée. Basculer avec Ctrl+O pendant une session ou via la boîte de dialogue des paramètres. Les invites d’approbation des outils ne sont jamais masquées, même en mode compact. Le paramètre persiste d’une session à l’autre.false
ui.shellOutputMaxLinesnumberNombre maximal de lignes de sortie shell affichées en ligne. Mettez à 0 pour désactiver la limite et afficher la sortie complète. Les lignes masquées sont signalées par l’indicateur +N lignes. Les erreurs, les commandes utilisateur préfixées par !, les outils de confirmation et les shells embarqués ciblés affichent toujours la sortie complète.5
ui.enableWelcomeBackbooleanAfficher la boîte de dialogue de bienvenue en revenant à un projet avec un historique de conversation. Lorsqu’elle est activée, Qwen Code détecte automatiquement si vous revenez à un projet avec un résumé de projet précédemment généré (.qwen/PROJECT_SUMMARY.md) et affiche une boîte de dialogue vous permettant de continuer votre conversation précédente ou de recommencer à zéro. Si vous choisissez Démarrer une nouvelle session de discussion, ce choix est mémorisé pour le projet actuel jusqu’à ce que le résumé du projet change. Cette fonctionnalité s’intègre à la commande /summary et à la boîte de dialogue de confirmation de sortie.true
ui.accessibility.enableLoadingPhrasesbooleanActiver les phrases de chargement (désactiver pour l’accessibilité).true
ui.accessibility.screenReaderbooleanActive le mode lecteur d’écran, qui ajuste l’interface TUI pour une meilleure compatibilité avec les lecteurs d’écran.false
ui.customWittyPhrasesarray of stringsUne liste de phrases personnalisées à afficher pendant les états de chargement. Lorsqu’elle est fournie, la CLI parcourra ces phrases au lieu de celles par défaut.[]
ui.showResponseTokensPerSecondbooleanAfficher une estimation en direct des tokens/seconde à côté du compteur de tokens de réponse pendant le streaming. Il s’agit d’un indicateur de vitesse de génération, pas d’une ETA ou d’un pourcentage d’achèvement. Prend effet lors de la prochaine session.false
ui.enableFollowupSuggestionsbooleanActiver les suggestions de suivi qui prédisent ce que vous voulez taper ensuite après la réponse du modèle. Les suggestions apparaissent sous forme de texte indicatif et sont acceptées avec Tab, Entrée ou Flèche droite (elles remplissent l’entrée, ne la soumettent pas automatiquement). Activé par défaut ; définissez false pour désactiver.true
ui.enableCacheSharingbooleanUtiliser des requêtes fourchues tenant compte du cache pour la génération de suggestions. Réduit les coûts sur les fournisseurs prenant en charge le préfixe de cache (expérimental).true
ui.enableSpeculationbooleanExécuter de manière spéculative les suggestions acceptées avant la soumission. Les résultats apparaissent instantanément lorsque vous les acceptez (expérimental).false

ide

ParamètreTypeDescriptionPar défaut
ide.enabledbooleanActiver le mode d’intégration IDE.false
ide.hasSeenNudgebooleanIndique si l’utilisateur a vu l’invitation d’intégration IDE.false

privacy

ParamètreTypeDescriptionPar défaut
privacy.usageStatisticsEnabledbooleanActiver la collecte de statistiques d’utilisation.true

model

ParamètreTypeDescriptionPar défaut
model.namestringLe modèle Qwen à utiliser pour les conversations.undefined
model.maxSessionTurnsnumberNombre maximum de tours utilisateur/modèle/outil à conserver dans une session. -1 signifie illimité.-1
model.maxWallTimeSecondsnumberBudget de temps réel pour les exécutions headless / non supervisées, en secondes. -1 signifie illimité. Remplaçable par invocation via --max-wall-time, qui nécessite une durée positive (90, 30s, 5m, 1h, 1.5h); le minimum est 1 seconde — les valeurs inférieures à la seconde (500ms, 0.5) sont rejetées comme des fautes de frappe. Omettre le drapeau pour revenir à ce paramètre. Abandon avec le code de sortie 55 si dépassé.-1
model.maxToolCallsnumberBudget cumulé d’appels d’outils pour une exécution (compte chaque outil exécuté, succès ou échec; structured_output sous --json-schema est exempté). -1 signifie illimité; 0 signifie ‘aucun appel d’outil autorisé’. Plafonné à 1 000 000 pour détecter les fautes de frappe. Remplaçable via --max-tool-calls. Abandon avec le code de sortie 55 si dépassé.-1
model.generationConfigobjectRemplacements avancés passés au générateur de contenu sous-jacent. Prend en charge des contrôles de requête tels que timeout, maxRetries, enableCacheControl, splitToolMedia (par défaut true; divise les médias retournés par les outils — y compris les images lues par le read_file intégré — en un message utilisateur de suivi au lieu du message role: "tool" violant la spécification, afin que les serveurs stricts compatibles OpenAI comme doubao / new-api / LM Studio puissent les voir; définissez false pour restaurer le comportement hérité d’incorporation dans l’outil), toolResultContentFormat (par défaut "parts"; définissez "string" uniquement pour les environnements d’exécution hérités compatibles OpenAI dont les modèles d’outil ignorent les parties de contenu textuel), contextWindowSize (remplace la taille de la fenêtre de contexte 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 de corps supplémentaires pour les requêtes API compatibles OpenAI uniquement), ainsi que des boutons de réglage fin sous samplingParams (par exemple temperature, top_p, max_tokens). Laissez non défini pour vous fier aux valeurs par défaut du fournisseur.undefined
model.chatCompression.contextPercentageThresholdnumberSUPPRIMÉ. La compaction automatique utilise désormais une échelle de seuil à trois niveaux (avertissement / automatique / dur) calculée en interne à partir de la fenêtre de contexte du modèle via la fonction computeThresholds() — n’est plus configurable par l’utilisateur. La définition de ce champ dans settings.json est ignorée silencieusement (aucun avertissement au démarrage). Il n’existe actuellement aucun remplacement pour ‘désactiver complètement la compression’ — la récupération réactive de débordement reste le filet de sécurité au niveau de l’API si la compression échoue. (Voir PR #4345 / docs/design/auto-compaction-threshold-redesign.md pour la justification de la refonte.)N/A
model.chatCompression.maxRecentFilesToRetainnumberNombre de fichiers les plus récemment touchés dont le contenu actuel est restauré (incorporé s’il est petit, sinon référencé par chemin) dans l’historique après la compaction automatique. 0 n’en restaure aucun. Remplacement par variable d’environnement : QWEN_COMPACT_MAX_RECENT_FILES.5
model.chatCompression.maxRecentImagesToRetainnumberNombre d’images les plus récentes (captures d’écran d’outils / collages utilisateur) restaurées dans l’historique après la compaction automatique. 0 n’en restaure aucune. Remplacement par variable d’environnement : QWEN_COMPACT_MAX_RECENT_IMAGES.3
model.chatCompression.enableScreenshotTriggerbooleanLorsque true, la compaction automatique se déclenche également une fois que le nombre d’images retournées par les outils accumulées dans l’historique atteint screenshotTriggerThreshold, indépendamment de l’utilisation des jetons — visant les sessions d’utilisation d’ordinateur où des captures d’écran fréquentes diluent l’attention du modèle. Compte uniquement les images retournées dans les résultats d’outils, pas les images collées par l’utilisateur. Remplacement par variable d’environnement : QWEN_COMPACT_SCREENSHOT_TRIGGER (1/true/0/false).true
model.chatCompression.screenshotTriggerThresholdnumberNombre d’images retournées par les outils à partir duquel le déclencheur de capture d’écran s’active (uniquement lorsque enableScreenshotTrigger). La compaction réinitialise le compteur — les images survivantes sont réincorporées en tant que parties de niveau supérieur, que le déclencheur ne compte pas — donc il ne se réactive pas immédiatement. Remplacement par variable d’environnement : QWEN_COMPACT_SCREENSHOT_THRESHOLD.50
model.skipNextSpeakerCheckbooleanIgnorer la vérification du prochain locuteur.true
model.skipLoopDetectionbooleanDésactive les vérifications de détection de boucle de streaming. Par défaut true (la détection de boucle est ignorée) pour éviter que des faux positifs n’interrompent des workflows légitimes. Définissez false pour réactiver la détection de boucle de streaming — utile comme garde-fou dans les exécutions headless / non interactives où une répétition bloquée pourrait autrement gaspiller du budget.true
model.skipStartupContextbooleanIgnore l’envoi du contexte de l’espace de travail au démarrage (résumé de l’environnement et accusé de réception) au début de chaque session. Activez ceci si vous préférez fournir le contexte manuellement ou souhaitez économiser des jetons au démarrage.false
model.enableOpenAILoggingbooleanActive la journalisation des appels API OpenAI pour le débogage et l’analyse. Lorsque activé, les requêtes et réponses API sont enregistrées dans des fichiers JSON.false
model.openAILoggingDirstringChemin de répertoire personnalisé pour les journaux API OpenAI. Si non spécifié, la valeur par défaut est logs/openai dans le répertoire de travail actuel. Prend en charge les chemins absolus, les chemins relatifs (résolus à partir du répertoire de travail actuel) et l’expansion ~ (répertoire personnel).undefined
Exemple de model.generationConfig :
{ "model": { "generationConfig": { "timeout": 60000, "contextWindowSize": 128000, "modalities": { "image": true }, "enableCacheControl": true, "toolResultContentFormat": "parts", "customHeaders": { "X-Client-Request-ID": "req-123" }, "extra_body": { "enable_thinking": true }, "samplingParams": { "temperature": 0.2, "top_p": 0.8, "max_tokens": 1024 } } } }

max_tokens (jetons de sortie adaptatifs) :

Lorsque samplingParams.max_tokens n’est pas défini, Qwen Code utilise une stratégie adaptative de jetons de sortie pour optimiser l’utilisation des ressources GPU :

  1. Les requêtes démarrent avec une limite par défaut de 8K jetons de sortie
  2. Si la réponse est tronquée (le modèle atteint la limite), Qwen Code relance automatiquement avec 64K jetons
  3. La sortie partielle est ignorée et remplacée par la réponse complète de la nouvelle tentative

Ce processus est transparent pour l’utilisateur — vous pouvez brièvement voir un indicateur de nouvelle tentative en cas d’escalade. Comme 99 % des réponses font moins de 5K jetons, la nouvelle tentative est rare (<1 % des requêtes).

Pour modifier ce comportement, définissez samplingParams.max_tokens dans vos paramètres ou utilisez la variable d’environnement QWEN_CODE_MAX_OUTPUT_TOKENS.

toolResultContentFormat :

Contrôle la façon dont les résultats d’outils textuels sont sérialisés dans les requêtes compatibles OpenAI. La valeur par défaut "parts" conserve la structure standard de tableau de parties de contenu. Définissez "string" uniquement pour les environnements d’exécution compatibles OpenAI hérités dont les templates d’outils ignorent les parties de contenu textuel, comme les anciens templates GLM-5.1 vLLM/SGLang. Les médias renvoyés par les outils sont toujours contrôlés par splitToolMedia.

contextWindowSize :

Remplace la taille de fenêtre de contexte par défaut pour le modèle sélectionné. Qwen Code détermine la fenêtre de contexte en utilisant les valeurs par défaut intégrées basées sur la correspondance du nom du modèle, avec une valeur de repli constante. Utilisez ce paramètre lorsque la limite de contexte effective d’un fournisseur diffère de la valeur par défaut de Qwen Code. Cette valeur définit la capacité de contexte maximale supposée du modèle, et non une limite de jetons par requête.

Lorsque le modèle sélectionné est défini dans modelProviders, définissez contextWindowSize dans l’entrée generationConfig de ce fournisseur plutôt que dans le model.generationConfig de haut niveau. Les entrées de modèle de fournisseur sont scellées, donc les paramètres de génération de haut niveau ne remplissent pas les champs manquants du fournisseur.

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) en fonction de la correspondance du nom du modèle. Utilisez ce paramètre lorsque la détection automatique est incorrecte — par exemple, pour activer pdf pour 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 sur false pour les types non pris en charge.

customHeaders :

Permet d’ajouter des en-têtes HTTP personnalisés à toutes les requêtes API. Utile pour le traçage des requêtes, la surveillance, le routage de passerelle API, ou lorsque différents modèles nécessitent des en-têtes différents. Pour les modèles de fournisseur, définissez customHeaders dans modelProviders[].generationConfig.customHeaders. Pour les modèles d’exécution sans entrée de fournisseur correspondante, définissez-le dans model.generationConfig.customHeaders. Aucune fusion n’est effectuée entre les deux niveaux.

Le champ extra_body permet d’ajouter des paramètres personnalisés au corps de la requête envoyée à l’API. Utile pour des options spécifiques au fournisseur qui ne sont pas 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. Pour les modèles de fournisseur, définissez extra_body dans modelProviders[].generationConfig.extra_body. Pour les modèles d’exécution sans entrée de fournisseur correspondante, définissez-le dans model.generationConfig.extra_body.

Exemples de model.openAILoggingDir :

  • "~/qwen-logs" - Journalise dans le répertoire ~/qwen-logs
  • "./custom-logs" - Journalise dans ./custom-logs relatif au répertoire actuel
  • "/tmp/openai-logs" - Journalise dans le chemin absolu /tmp/openai-logs

fastModel

ParamètreTypeDescriptionValeur par défaut
fastModelstringModèle utilisé pour générer des suggestions d’invite et l’exécution spéculative. Laissez vide pour utiliser le modèle principal. Un modèle plus petit/rapide (par exemple, qwen3-coder-flash) réduit la latence et les coûts. Peut également être défini via /model --fast.""

context

ParamètreTypeDescriptionValeur par défaut
context.fileNamestring ou tableau de stringsLe(s) nom(s) du ou des fichiers de contexte.undefined
context.importFormatstringLe format à utiliser lors de l’importation de la mémoire.undefined
context.includeDirectoriesarrayRépertoires supplémentaires à inclure dans le contexte de l’espace de travail. Spécifie un tableau de chemins supplémentaires absolus ou relatifs à 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 faire référence au répertoire personnel de l’utilisateur. Ce paramètre peut être combiné avec l’option de ligne de commande --include-directories.[]
context.loadFromIncludeDirectoriesbooleanContrôle le comportement de la commande /memory refresh. Si true, les fichiers QWEN.md doivent être chargés depuis tous les répertoires ajoutés. Si false, les fichiers QWEN.md doivent être chargés uniquement depuis le répertoire actuel.false
context.fileFiltering.respectGitIgnorebooleanRespecter les fichiers .gitignore lors de la recherche.true
context.fileFiltering.respectQwenIgnorebooleanRespecter les fichiers .qwenignore et les fichiers d’ignor personnalisés configurés lors de la recherche.true
context.fileFiltering.customIgnoreFilesarrayFichiers d’ignor relatifs à la racine du projet à utiliser à la place des fichiers de compatibilité par défaut (.agentignore, .aiignore) lorsque respectQwenIgnore est activé. .qwenignore est toujours inclus.[".agentignore", ".aiignore"]
context.fileFiltering.enableRecursiveFileSearchbooleanActiver ou non la recherche récursive de noms de fichiers sous l’arborescence actuelle lors de la complétion des préfixes @ dans l’invite.true
context.fileFiltering.enableFuzzySearchbooleanLorsque true, active les capacités de recherche floue lors de la recherche de fichiers. Mettre à false pour améliorer les performances sur les projets avec un grand nombre de fichiers.true
context.clearContextOnIdle.toolResultsThresholdMinutesnumberMinutes d’inactivité avant de nettoyer l’ancien contenu des résultats d’outils. Utilisez -1 pour désactiver le déclencheur d’inactivité.60
context.clearContextOnIdle.toolResultsNumToKeepintegerNombre entier de résultats d’outils compactables les plus récents à conserver lors du nettoyage. Les valeurs inférieures à 1 sont arrondies à 1.5
context.clearContextOnIdle.toolResultsTotalCharsThresholdnumberNombre total de caractères de sortie des résultats d’outils compactables autorisé dans l’historique avant de nettoyer les résultats les plus anciens. Utilisez -1 pour désactiver le déclencheur de taille. Il s’agit d’un seuil souple : les résultats d’outils récents protégés peuvent maintenir le total au-dessus de ce seuil.500000

Résolution des problèmes de performances de recherche de fichiers

Si vous rencontrez des problèmes de performances avec la recherche de fichiers (par exemple, avec les complétions @), en particulier dans les projets avec un très grand nombre de fichiers, voici quelques pistes à essayer, par ordre de recommandation :

  1. Utilisez un fichier d’ignor : Créez un fichier .qwenignore ou un fichier d’ignor personnalisé configuré à 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, artefacts de build, journaux, node_modules). Réduire le nombre total de fichiers parcourus est le moyen le plus efficace d’améliorer les performances.
  2. Désactivez la recherche floue : Si l’ignor de fichiers ne suffit pas, vous pouvez désactiver la recherche floue en définissant enableFuzzySearch sur false dans votre fichier settings.json. Cela utilisera un algorithme de correspondance plus simple, non flou, qui peut être plus rapide.
  3. Désactivez la recherche récursive de fichiers : En dernier recours, vous pouvez désactiver complètement la recherche récursive de fichiers en définissant enableRecursiveFileSearch sur false. Ce sera l’option la plus rapide car elle évite un parcours récursif de votre projet. Cependant, cela signifie que vous devrez saisir le chemin complet des fichiers lors de l’utilisation des complétions @.

tools

ParamètreTypeDescriptionValeur par défautNotes
tools.sandboxboolean ou stringEnvironnement d’exécution sandbox (peut être un booléen ou un chemin).undefined
tools.sandboxImagestringURI de l’image sandbox utilisée par Docker/Podman lorsque --sandbox-image et QWEN_SANDBOX_IMAGE ne sont pas définis.undefined
tools.shell.enableInteractiveShellbooleanUtilisez node-pty pour une expérience de shell interactif. Le repli sur child_process s’applique toujours.true
tools.corearray of stringsObsolète. Sera supprimé dans la prochaine version. Utilisez permissions.allow + permissions.deny à la place. Restreint les outils intégrés à une liste d’autorisation. Tous les outils ne figurant pas dans la liste sont désactivés.undefined
tools.excludearray of stringsObsolète. Utilisez permissions.deny à la place. Noms d’outils à exclure de la découverte. Automatiquement migré vers le format permissions au premier chargement.undefined
tools.allowedarray of stringsObsolète. Utilisez permissions.allow à la place. Noms d’outils qui contournent la boîte de dialogue de confirmation. Automatiquement migré vers le format permissions au premier chargement.undefined
tools.approvalModestringDéfinit le mode d’approbation par défaut pour l’utilisation des outils.defaultValeurs possibles : plan (analyser uniquement, ne pas modifier les fichiers ni exécuter les commandes), default (exiger une approbation avant les modifications de fichiers ou l’exécution de commandes shell), auto-edit (approuver automatiquement les modifications de fichiers), auto (le classifieur LLM approuve automatiquement les actions sûres, bloque les risquées), yolo (approuver automatiquement tous les appels d’outils)
tools.discoveryCommandstringCommande à exécuter pour la découverte d’outils.undefined
tools.callCommandstringDéfinit une commande shell personnalisée pour appeler un outil spécifique qui a été découvert en utilisant tools.discoveryCommand. La commande shell doit répondre aux critères suivants : Elle doit prendre le nom de la fonction (exactement comme dans la déclaration de fonction ) comme premier argument de ligne de commande. Elle doit lire les arguments de la fonction en JSON sur stdin, analogue à functionCall.args. Elle doit renvoyer la sortie de la fonction en JSON sur stdout, analogue à functionResponse.response.content.undefined
tools.useRipgrepbooleanUtilisez ripgrep pour la recherche de contenu de fichier au lieu de l’implémentation de repli. Offre des performances de recherche plus rapides.true
tools.useBuiltinRipgrepbooleanUtilisez le binaire ripgrep fourni. Lorsqu’il est défini sur false, la commande rg système sera utilisée à la place. Ce paramètre n’est effectif que lorsque tools.useRipgrep est true.true
tools.truncateToolOutputThresholdnumberTronque la sortie de l’outil si elle dépasse ce nombre de caractères. S’applique aux outils Shell, Grep, Glob, ReadFile et ReadManyFiles.25000Nécessite un redémarrage : Oui
tools.truncateToolOutputLinesnumberNombre maximum de lignes ou d’entrées conservées lors de la troncature de la sortie de l’outil. S’applique aux outils Shell, Grep, Glob, ReadFile et ReadManyFiles.1000Nécessite un redémarrage : Oui
tools.computerUse.enabledbooleanActivez les outils Computer Use intégrés (automatisation de bureau native par cua-driver). Lorsque true (par défaut), les outils computer_use__* sont enregistrés comme modules intégrés différés ; le premier appel télécharge le binaire cua-driver épinglé et signé dans ~/.qwen/computer-use/ et parcourt les permissions d’Accessibilité / Enregistrement d’écran macOS.trueNécessite un redémarrage : Oui
tools.computerUse.maxImageDimensionnumberLimite maximale de pixels sur le bord le plus long appliquée aux captures d’écran de cua-driver (via max_image_dimension de set_config). -1 (par défaut) conserve la valeur par défaut intégrée de cua-driver (1568) ; 0 désactive le redimensionnement (pleine résolution) ; une valeur positive limite le bord le plus long. Des limites plus basses réduisent le coût en jetons de vision au détriment des détails fins.-1Nécessite un redémarrage : Oui. Substitution par variable d’environnement : QWEN_COMPUTER_USE_MAX_IMAGE_DIMENSION (un entier non négatif ; a priorité sur ce paramètre)
Note

Migration depuis tools.core / tools.exclude / tools.allowed : Ces paramètres hérités sont obsolètes et migrés automatiquement vers le nouveau format permissions au premier chargement. Préférez configurer directement permissions.allow / permissions.deny. Utilisez /permissions pour gérer les règles de manière interactive.

mémoire

ParamètreTypeDescriptionPar défaut
memory.enableManagedAutoMemorybooleanActiver l’extraction en arrière-plan des souvenirs à partir des conversations.true
memory.enableManagedAutoDreambooleanActiver la consolidation automatique (déduplication et nettoyage) des souvenirs collectés.true
memory.enableAutoSkillbooleanActiver la vérification en arrière-plan pour les compétences de projet réutilisables après des sessions riches en outils.true
memory.autoSkillConfirmbooleanDemander confirmation avant d’ajouter les compétences générées automatiquement à la bibliothèque de compétences. Sinon, elles sont enregistrées immédiatement.true

Voir Mémoire pour les détails sur le fonctionnement de la mémoire automatique et l’utilisation des commandes /memory, /remember et /dream.

permissions

Le système de permissions offre un contrôle fin sur les outils autorisés, ceux nécessitant une confirmation et ceux bloqués.

Priorité de décision (la plus élevée en premier) : deny > ask > allow > (défaut/mode interactif)

La première règle correspondante l’emporte. Les règles utilisent le format "NomOutil" ou "NomOutil(préciseur)".

ParamètreTypeDescriptionPar défaut
permissions.allowtableau de chaînesRègles pour les appels d’outils auto-approuvés (aucune confirmation nécessaire). Fusionnées pour tous les contextes (utilisateur + projet + système).undefined
permissions.asktableau de chaînesRègles pour les appels d’outils nécessitant toujours une confirmation utilisateur. Priorité sur allow.undefined
permissions.denytableau de chaînesRègles pour les appels d’outils bloqués. Priorité maximale — remplace à la fois allow et ask.undefined

Alias de noms d’outils (n’importe lequel fonctionne dans les règles) :

AliasOutil canoniqueRemarques
Bash, Shellrun_shell_command
Read, ReadFileread_fileMéta-catégorie — voir ci-dessous
Edit, EditFileeditMéta-catégorie — voir ci-dessous
Write, WriteFilewrite_file
NotebookEditnotebook_edit
NotebookEditToolnotebook_edit
Grep, SearchFilesgrep_search
Glob, FindFilesglob
ListFileslist_directory
WebFetchweb_fetch
Agenttask
Skillskill

Méta-catégories :

Certains noms de règles couvrent automatiquement plusieurs outils :

Nom de règleOutils couverts
Readread_file, grep_search, glob, list_directory
Editedit, write_file, notebook_edit

[!important] Read(/chemin/**) correspond aux quatre outils de lecture (lecture de fichier, grep, glob et liste de répertoires). Pour restreindre uniquement la lecture de fichiers, utilisez ReadFile(/chemin/**) ou read_file(/chemin/**).

Exemples de syntaxe de règles :

RègleSignification
"Bash"Toutes les commandes shell
"Bash(git *)"Commandes shell commençant par git (limite de mot : PAS gitk)
"Bash(git push *)"Commandes shell comme git push origin main
"Bash(npm run *)"Tout script npm run
"Read"Toutes les opérations de lecture de fichiers (read, grep, glob, list)
"Read(./secrets/**)"Lire tout fichier sous ./secrets/ récursivement
"Edit(/src/**/*.ts)"Éditer des fichiers TypeScript sous la racine du projet /src/
"WebFetch(api.example.com)"Récupérer depuis api.example.com et tous ses sous-domaines
"mcp__puppeteer"Tous les outils du serveur MCP puppeteer

Préfixes de motifs de chemin :

PréfixeSignificationExemple
//Chemin absolu depuis la racine du système de fichiers//etc/passwd
~/Relatif au répertoire personnel~/Documents/*.pdf
/Relatif à la racine du projet/src/**/*.ts
./Relatif au répertoire de travail actuel./secrets/**
(aucun)Identique à ./secrets/**

Prévention du contournement des commandes shell :

Les règles de permissions pour Read, Edit et WebFetch sont également appliquées lorsque l’agent exécute des commandes shell équivalentes. Par exemple, si Read(./.env) est dans deny, l’agent ne peut pas contourner cela via cat .env dans une commande shell. Les commandes shell prises en charge incluent cat, grep, curl, wget, cp, mv, rm, chmod, et bien d’autres. Les commandes inconnues/sûres (par exemple git) ne sont pas affectées par les règles de fichiers/réseau.

Migration depuis les paramètres hérités :

Paramètre héritéRègle permissions équivalenteRemarques
tools.allowedpermissions.allowMigré automatiquement au premier chargement
tools.excludepermissions.denyMigré automatiquement au premier chargement
tools.corepermissions.allow (liste blanche)Migré automatiquement ; les outils non listés sont désactivés au niveau du registre

Exemple de configuration :

{ "permissions": { "allow": ["Bash(git *)", "Bash(npm run *)", "Read(//Users/alice/code/**)"], "ask": ["Bash(git push *)", "Edit"], "deny": ["Bash(rm -rf *)", "Read(.env)", "WebFetch(malicious.com)"] } }

[!tip] Utilisez /permissions dans le CLI interactif pour voir, ajouter et supprimer des règles sans éditer directement settings.json.

slashCommands

Contrôle les commandes slash disponibles dans le CLI. Utile pour verrouiller la surface de commande dans les déploiements multi-utilisateurs ou en entreprise.

ParamètreTypeDescriptionPar défaut
slashCommands.disabledtableau de chaînesNoms des commandes slash à masquer et à refuser d’exécuter. La correspondance est insensible à la casse avec le nom final de la commande (pour les commandes d’extension, il s’agit de la forme désambiguïsée, par exemple myext.deploy). Fusionné en union pour tous les contextes, donc les paramètres de l’espace de travail peuvent ajouter mais pas supprimer les entrées définies dans les paramètres utilisateur ou système.undefined

La même liste de blocage peut également être fournie via le drapeau CLI --disabled-slash-commands (séparé par des virgules ou répété) et la variable d’environnement QWEN_DISABLED_SLASH_COMMANDS ; les valeurs des trois sources sont fusionnées en une union.

Exemple — verrouiller les commandes intégrées pour un déploiement en bac à sable :

{ "slashCommands": { "disabled": ["auth", "mcp", "extensions", "ide", "quit"] } }

Avec ces valeurs dans un fichier settings.json de niveau système (/etc/qwen-code/settings.json ou QWEN_CODE_SYSTEM_SETTINGS_PATH), les utilisateurs ne peuvent pas réduire la liste de blocage depuis leur propre contexte, et les commandes désactivées n’apparaîtront pas dans l’autocomplétion ni ne s’exécuteront lorsqu’elles seront tapées.

[!note] Ce paramètre ne concerne que les commandes slash (par exemple /auth, /mcp). Il n’affecte pas les permissions des outils — voir permissions.deny pour cela. Il n’intercepte pas non plus les raccourcis clavier comme Ctrl+C ou Echap.

mcp

ParamètreTypeDescriptionPar défaut
mcp.serverCommandchaîneCommande pour démarrer un serveur MCP.undefined
mcp.allowedtableau de chaînesUne liste blanche des serveurs MCP autorisés. Permet de spécifier une liste de noms de serveurs MCP qui doivent être mis à la disposition du modèle. Cela peut être utilisé pour restreindre l’ensemble des serveurs MCP auxquels se connecter. Notez que cela sera ignoré si --allowed-mcp-server-names est défini.undefined
mcp.excludedtableau de chaînesUne liste noire des serveurs MCP à exclure. Un serveur listé à la fois dans mcp.excluded et mcp.allowed est exclu. Notez que cela sera ignoré si --allowed-mcp-server-names est défini.undefined
Note

Note de sécurité pour les serveurs MCP : Ces paramètres utilisent une correspondance simple de chaînes sur les noms de serveurs MCP, qui peut être modifiée. Si vous êtes un administrateur système cherchant à empêcher les utilisateurs de contourner cela, envisagez de configurer les mcpServers au niveau des paramètres système afin que l’utilisateur ne puisse pas configurer ses propres serveurs MCP. Cela ne doit pas être utilisé comme un mécanisme de sécurité étanche.

lsp

[!warning] Fonctionnalité expérimentale : La prise en charge LSP est actuellement expérimentale et désactivée par défaut. Activez-la à l’aide du drapeau de ligne de commande --experimental-lsp.

Language Server Protocol (LSP) fournit des fonctionnalités d’intelligence de code comme aller à la définition, trouver les références et les diagnostics.

La configuration du serveur LSP se fait via des fichiers .lsp.json dans le répertoire racine de votre projet, et non via settings.json. Voir la documentation LSP pour les détails de configuration et des exemples.

security

ParamètreTypeDescriptionPar défaut
security.folderTrust.enabledbooleanParamètre pour suivre si la confiance de dossier est activée.false
security.auth.selectedTypechaîneLe type d’authentification actuellement sélectionné.undefined
security.auth.enforcedTypechaîneLe type d’authentification requis (utile pour les entreprises).undefined
security.auth.useExternalbooleanIndique s’il faut utiliser un flux d’authentification externe.undefined

advanced

ParamètreTypeDescriptionPar défaut
advanced.autoConfigureMemorybooleanConfigurer automatiquement les limites de mémoire de Node.js.false
advanced.dnsResolutionOrderchaîneL’ordre de résolution DNS.undefined
advanced.excludedEnvVarstableau de chaînesVariables d’environnement à exclure du contexte du projet. Spécifie les variables d’environnement qui ne doivent pas être chargées à partir des fichiers .env du projet. Cela empêche les variables d’environnement spécifiques au projet (comme DEBUG=true) d’interférer avec le comportement du CLI. Les variables des fichiers .qwen/.env ne sont jamais exclues.["DEBUG","DEBUG_MODE"]
advanced.bugCommandobjetConfiguration de la commande de rapport de bug. Remplace l’URL par défaut de la commande /bug. Propriétés : urlTemplate (chaîne) : 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
plansDirectorychaîneRépertoire personnalisé pour les fichiers du Mode Plan approuvés. Les chemins relatifs sont résolus à partir de la racine du projet, et le chemin résolu doit rester dans la racine du projet. Si non défini, les fichiers de plan sont stockés dans ~/.qwen/plans. Nécessite un redémarrage. Si le répertoire se trouve dans la racine du projet, ajoutez-le à .gitignore pour éviter de commiter les fichiers de plan.undefined

experimental

Warning

Fonctionnalités expérimentales. Ces bascules activent des fonctionnalités en cours de développement et peuvent changer ou être supprimées dans les versions futures.

ParamètreTypeDescriptionPar défaut
experimental.cronbooleanActiver les outils cron/loop en session (cron_create, cron_list, cron_delete) afin que le modèle puisse créer des rappels récurrents. Peut être désactivé via la variable d’environnement QWEN_CODE_DISABLE_CRON=1. Nécessite un redémarrage.true
experimental.agentTeambooleanActiver les outils de collaboration en équipe d’agents (team_create, task_create, task_update, send_message, etc.) pour la coordination multi-agents. Peut également être activé via QWEN_CODE_ENABLE_AGENT_TEAM=1. Nécessite un redémarrage.false
experimental.artifactbooleanActiver l’outil Artifact, permettant au modèle de publier une page HTML autonome et de l’ouvrir dans le navigateur. Sessions interactives non-SDK uniquement. Basculer via QWEN_CODE_ENABLE_ARTIFACT=1 / QWEN_CODE_DISABLE_ARTIFACT=1. Nécessite un redémarrage.false
experimental.emitToolUseSummariesbooleanGénérer une courte étiquette basée sur LLM après chaque lot d’appels d’outils terminé. Voir Résumés d’utilisation d’outils. Nécessite qu’un modèle rapide soit configuré (fastModel) ; ignoré silencieusement sinon. Peut être remplacé par session avec QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0 ou =1.true

mcpServers

Configure les connexions à un ou plusieurs serveurs Model-Context Protocol (MCP) pour découvrir et 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 avec le même nom, les noms d’outils seront préfixés par l’alias du serveur que vous avez défini dans la configuration (par exemple, aliasServeur__nomOutilRéel) pour éviter les conflits. Notez que le système peut supprimer certaines propriétés de schéma des définitions d’outils MCP pour des raisons de compatibilité. Au moins l’un de command, url ou httpUrl doit être fourni. Si plusieurs sont spécifiés, l’ordre de priorité est httpUrl, puis url, puis command.

PropriétéTypeDescriptionOptionnel
mcpServers.<NOM_SERVEUR>.commandchaîneLa commande à exécuter pour démarrer le serveur MCP via l’entrée/sortie standard.Oui
mcpServers.<NOM_SERVEUR>.argstableau de chaînesArguments à passer à la commande.Oui
mcpServers.<NOM_SERVEUR>.envobjetVariables d’environnement à définir pour le processus du serveur.Oui
mcpServers.<NOM_SERVEUR>.cwdchaîneLe répertoire de travail dans lequel démarrer le serveur.Oui
mcpServers.<NOM_SERVEUR>.urlchaîneL’URL d’un serveur MCP qui utilise les événements envoyés par le serveur (SSE) pour la communication.Oui
mcpServers.<NOM_SERVEUR>.httpUrlchaîneL’URL d’un serveur MCP qui utilise HTTP streamable pour la communication.Oui
mcpServers.<NOM_SERVEUR>.headersobjetUne carte d’en-têtes HTTP à envoyer avec les requêtes à url ou httpUrl.Oui
mcpServers.<NOM_SERVEUR>.timeoutnombreDélai d’attente en millisecondes pour les requêtes vers ce serveur MCP.Oui
mcpServers.<NOM_SERVEUR>.trustbooleanFaire confiance à ce serveur et contourner toutes les confirmations d’appels d’outils.Oui
mcpServers.<NOM_SERVEUR>.descriptionchaîneUne brève description du serveur, qui peut être utilisée à des fins d’affichage.Oui
mcpServers.<NOM_SERVEUR>.includeToolstableau de chaînesListe des noms d’outils à inclure de ce serveur MCP. Lorsqu’elle est spécifiée, seuls les outils listés ici seront disponibles à partir de ce serveur (comportement de liste blanche). Si non spécifié, tous les outils du serveur sont activés par défaut.Oui
mcpServers.<NOM_SERVEUR>.excludeToolstableau de chaînesListe des noms d’outils à exclure de ce serveur MCP. Les outils listés ici ne seront pas disponibles pour le 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ètreTypeDescriptionPar défaut
telemetry.enabledbooleanIndique si la télémétrie est activée ou non.
telemetry.targetstringÉtiquette informative pour la destination de la télémétrie (local ou gcp). Ne contrôle pas le routage de l’exportateur ; définissez telemetry.otlpEndpoint ou telemetry.outfile pour configurer où les données sont envoyées.
telemetry.otlpEndpointstringLe point de terminaison pour l’exportateur OTLP.
telemetry.otlpProtocolstringLe protocole pour l’exportateur OTLP (grpc ou http).
telemetry.logPromptsbooleanIndique s’il faut inclure le contenu des invites utilisateur dans les journaux.
telemetry.includeSensitiveSpanAttributesbooleanLorsqu’il est activé, attache textuellement les invites utilisateur, les invites système, les entrées/sorties des outils et les réponses du modèle aux attributs natifs des spans OTel (en plus des spans de pont journalisation-span). ⚠️ Diffuse des données sensibles (contenu de fichiers, commandes shell, historique de conversation) vers votre backend OTLP.false
telemetry.sensitiveSpanAttributeMaxLengthnumberLongueur maximale en caractères JavaScript pour chaque charge utile de contenu d’attribut natif de span OTel sensible. Doit être comprise entre 1 et 104857600 (100 Mio). Définissez une valeur plus basse si votre collecteur ou backend rejette les attributs volumineux.1048576
telemetry.outfilestringChemin pour écrire la télémétrie dans un fichier. Lorsqu’il est défini, remplace l’exportation OTLP.

Exemple de settings.json

Voici un exemple de fichier settings.json avec la structure imbriquée, nouvelle depuis la v0.3.0 :

{ "proxy": "http://localhost:7890", "plansDirectory": "./.qwen/plans", "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", "sandboxImage": "ghcr.io/qwenlm/qwen-code:0.14.1", "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, "includeSensitiveSpanAttributes": false, "sensitiveSpanAttributeMaxLength": 1048576 }, "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 des commandes shell

Le CLI conserve un historique des commandes shell que vous exécutez. Pour éviter les conflits entre différents projets, cet historique est stocké dans un répertoire spécifique au projet 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 sont un moyen courant de configurer les applications, en particulier pour les informations sensibles (comme les jetons) ou pour les paramètres qui peuvent varier entre les environnements.

Qwen Code peut charger automatiquement les variables d’environnement à partir de fichiers .env. Pour les variables liées à l’authentification (comme OPENAI_*) et l’approche recommandée .qwen/.env, consultez Authentification.

Tip

Exclusion des variables d’environnement : Certaines variables d’environnement (comme DEBUG et DEBUG_MODE) sont automatiquement exclues des fichiers .env du projet par défaut pour éviter toute interférence avec le comportement du CLI. Les variables provenant des fichiers .qwen/.env ne sont jamais exclues. Vous pouvez personnaliser ce comportement en utilisant le paramètre advanced.excludedEnvVars dans votre fichier settings.json.

Tableau des variables d’environnement

VariableDescriptionNotes
QWEN_HOMEPersonnalise le répertoire de configuration global (par défaut : ~/.qwen). Accepte un chemin absolu ou relatif (les chemins relatifs sont résolus à partir du répertoire de travail courant). Le ~ en tête est étendu au répertoire personnel de l’utilisateur.Stocke les identifiants, les paramètres, la mémoire, les compétences et autres états globaux. Lorsqu’il est défini, les répertoires .qwen/ au niveau du projet ne sont pas affectés. Une chaîne vide est traitée comme non définie.
QWEN_RUNTIME_DIRRemplace le répertoire de sortie d’exécution (conversations, journaux, todos). Lorsqu’il n’est pas défini, la valeur par défaut est le répertoire QWEN_HOME.Utilisez ceci pour séparer les données d’exécution éphémères de la configuration persistante. Utile lorsque QWEN_HOME se trouve sur un système de fichiers partagé ou lent.
QWEN_TELEMETRY_ENABLEDDéfinissez à true ou 1 pour activer la télémétrie. Toute autre valeur est considérée comme la désactivant.Remplace le paramètre telemetry.enabled.
QWEN_TELEMETRY_TARGETDéfinit une étiquette informative pour la destination de la télémétrie (local ou gcp). Ne contrôle pas le routage ; utilisez QWEN_TELEMETRY_OTLP_ENDPOINT ou QWEN_TELEMETRY_OUTFILE pour configurer où les données sont envoyées.Remplace le paramètre telemetry.target.
QWEN_TELEMETRY_OTLP_ENDPOINTDéfinit le point de terminaison OTLP pour la télémétrie.Remplace le paramètre telemetry.otlpEndpoint.
QWEN_TELEMETRY_OTLP_PROTOCOLDéfinit le protocole OTLP (grpc ou http).Remplace le paramètre telemetry.otlpProtocol.
QWEN_TELEMETRY_LOG_PROMPTSDéfinissez à true ou 1 pour activer ou désactiver la journalisation des invites utilisateur. Toute autre valeur est considérée comme la désactivant.Remplace le paramètre telemetry.logPrompts.
QWEN_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTESDéfinissez à true ou 1 pour attacher textuellement les invites utilisateur, les invites système, les E/S des outils et les réponses du modèle aux attributs natifs des spans OTel (et conserver prompt / function_args / response_text sur les spans de pont journalisation-span). Toute autre valeur le désactive.Remplace le paramètre telemetry.includeSensitiveSpanAttributes. ⚠️ Diffuse des données sensibles vers votre backend OTLP.
QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTHDéfinit la longueur maximale en caractères JavaScript pour chaque charge utile de contenu d’attribut natif de span OTel sensible. Doit être un entier positif ne dépassant pas 104857600 (100 Mio).Remplace le paramètre telemetry.sensitiveSpanAttributeMaxLength. La valeur par défaut est 1048576 (1 Mio) ; réduisez-la si votre collecteur ou backend rejette les attributs de span volumineux.
QWEN_TELEMETRY_OUTFILEDéfinit le chemin du fichier pour écrire la télémétrie. Lorsqu’il est défini, remplace l’exportation OTLP.Remplace le paramètre telemetry.outfile.
QWEN_SANDBOXAlternative au paramètre sandbox dans settings.json.Accepte true, false, docker, podman ou une chaîne de commande personnalisée.
QWEN_SANDBOX_IMAGERemplace la sélection de l’image du bac à sable pour Docker/Podman.Prédomine sur tools.sandboxImage.
SEATBELT_PROFILE(spécifique à macOS) Change le profil Seatbelt (sandbox-exec) sur 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 les opérations par défaut. <nom_profil> : Utilise un profil personnalisé. Pour définir un profil personnalisé, créez un fichier nommé sandbox-macos-<nom_profil>.sb dans le répertoire .qwen/ de votre projet (par exemple, mon-projet/.qwen/sandbox-macos-custom.sb).
DEBUG ou DEBUG_MODE(souvent utilisé par les bibliothèques sous-jacentes ou le CLI lui-même) Définissez à true ou 1 pour activer la journalisation de débogage verbeuse, ce qui peut être utile pour le dépannage.Remarque : Ces variables sont automatiquement exclues des fichiers .env du projet par défaut pour éviter toute interférence avec le comportement du CLI. Utilisez les fichiers .qwen/.env si vous devez les définir spécifiquement pour Qwen Code.
NO_COLORDéfinissez à n’importe quelle valeur pour désactiver toute sortie colorée dans le CLI.
FORCE_HYPERLINKRemplace la détection des liens cliquables OSC 8 dans le moteur de rendu Markdown. Définissez à 1 (ou tout entier non nul, ou chaîne vide) pour forcer l’activation ; définissez à 0 ou une valeur non numérique comme false / off pour forcer la désactivation. Honore NO_COLOR / QWEN_DISABLE_HYPERLINKS ci-dessus.Utilisez ceci pour activer OSC 8 dans tmux / GNU screen (l’auto-détection refuse par défaut car les capacités du terminal hôte sont cachées derrière le multiplexeur). Nécessite set -g allow-passthrough on sur tmux 3.3+. Active également Hyper, qui n’est pas détecté automatiquement.
QWEN_DISABLE_HYPERLINKSDéfinissez à 1 pour désactiver complètement les hyperliens cliquables OSC 8 dans le moteur de rendu Markdown, même sur les terminaux qui s’auto-détectent comme capables.Utile lorsqu’un terminal annonce un support mais casse sur les longues URL, ou lorsque la sortie est redirigée via un intermédiaire qui modifie les séquences d’échappement. Le moteur de rendu revient à un rendu label (url) simple.
CLI_TITLEDéfinissez sur une chaîne pour personnaliser le titre du CLI.
CODE_ASSIST_ENDPOINTSpécifie le point de terminaison pour le serveur d’assistance de code.Utile pour le développement et les tests.
QWEN_CODE_MAX_OUTPUT_TOKENSRemplace le nombre maximum de jetons de sortie par réponse. Lorsqu’il n’est pas défini, Qwen Code utilise une stratégie adaptative : commence avec 8K jetons et réessaie automatiquement avec 64K si la réponse est tronquée. Définissez une valeur spécifique (par exemple 16000) pour utiliser une limite fixe à la place.Prévaut sur la valeur par défaut limitée (8K) mais est remplacé par samplingParams.max_tokens dans les paramètres. Désactive l’escalade automatique lorsqu’il est défini. Exemple : export QWEN_CODE_MAX_OUTPUT_TOKENS=16000
QWEN_CODE_UNATTENDED_RETRYDéfinissez à true ou 1 pour activer le mode de nouvelle tentative persistante. Lorsqu’il est activé, les erreurs de capacité API transitoires (HTTP 429 Limite de débit et 529 Surcharge) sont réessayées indéfiniment avec un backoff exponentiel (plafonné à 5 minutes par tentative) et des signaux de vie toutes les 30 secondes sur stderr.Conçu pour les pipelines CI/CD et l’automatisation en arrière-plan où les tâches de longue durée doivent survivre aux pannes API temporaires. Doit être défini explicitement — CI=true seul n’active pas ce mode. Voir Mode sans tête pour les détails. Exemple : export QWEN_CODE_UNATTENDED_RETRY=1
QWEN_CODE_PROFILE_STARTUPDéfinissez à 1 pour activer le profilage des performances de démarrage. Écrit un rapport de synchronisation JSON dans ~/.qwen/startup-perf/ avec les durées par phase.Actif uniquement dans le processus enfant du bac à sable (ou avec QWEN_CODE_PROFILE_STARTUP_OUTER=1). Aucun surcoût lorsqu’il n’est pas défini. Exemple : export QWEN_CODE_PROFILE_STARTUP=1
QWEN_CODE_PROFILE_STARTUP_OUTERDéfinissez à 1 avec QWEN_CODE_PROFILE_STARTUP=1 pour également collecter un profil de démarrage dans le processus externe (avant le bac à sable). Les rapports du processus externe reçoivent un préfixe outer- pour les distinguer de ceux du processus enfant du bac à sable.Désactivé par défaut — seul le processus enfant du bac à sable collecte, pour éviter les rapports en double. Utile pour le développement local où le CLI n’est pas relancé dans un bac à sable.
QWEN_CODE_PROFILE_STARTUP_NO_HEAPDéfinissez à 1 avec QWEN_CODE_PROFILE_STARTUP=1 pour ignorer les instantanés process.memoryUsage() par point de contrôle. Utile pour mesurer le surcoût Heisenberg du profileur lui-même.Désactivé par défaut. Les instantanés de tas coûtent environ 50 µs chacun (bien en dessous de 1% du démarrage total), donc la plupart des utilisateurs devraient laisser ce paramètre inchangé.
QWEN_CODE_LEGACY_MCP_BLOCKINGDéfinissez à 1 pour restaurer le comportement MCP pré-progressif où Config.initialize() attend de manière synchrone la poignée de main de découverte de chaque serveur MCP configuré avant de retourner.Désactivé par défaut. Le qwen-code moderne permet aux serveurs MCP de démarrer en arrière-plan alors que l’interface utilisateur est déjà interactive ; le modèle voit chaque lot de nouveaux outils dans environ 16 ms après que le serveur se soit stabilisé. Ce drapeau est conservé comme échappatoire de rollback pour au moins 1 version. Exemple : export QWEN_CODE_LEGACY_MCP_BLOCKING=1
Lorsque les deux fichiers .env de niveau utilisateur définissent la même variable, le fichier spécifique à Qwen est prioritaire : <QWEN_HOME>/.env (ou ~/.qwen/.env si QWEN_HOME n’est pas défini) est chargé avant ~/.env, et les valeurs d’environnement existantes ne sont pas écrasées.

Arguments en ligne de commande

Les arguments passés directement lors de l’exécution de la CLI peuvent surcharger les autres configurations pour cette session spécifique.

Pour la sélection de l’image sandbox, la priorité est : --sandbox-image > QWEN_SANDBOX_IMAGE > tools.sandboxImage > image par défaut intégrée.

Tableau des arguments en ligne de commande

ArgumentAliasDescriptionValeurs possiblesRemarques
--model-mSpécifie le modèle Qwen à utiliser pour cette session.Nom du modèleExemple : npm start -- --model qwen3-coder-plus
--prompt-pUtilisé pour passer un prompt directement à la commande. Cela exécute Qwen Code en mode non interactif.Votre texte de promptPour des exemples de script, utilisez le drapeau --output-format json pour obtenir une sortie structurée.
--prompt-interactive-iLance une session interactive avec le prompt fourni comme entrée initiale.Votre texte de promptLe prompt est traité dans la session interactive, pas avant. Ne peut pas être utilisé lors d’un pipeline d’entrée depuis stdin. Exemple : qwen -i "explique ce code"
--system-promptRemplace le prompt système principal intégré pour cette exécution.Votre texte de promptLes fichiers de contexte chargés tels que QWEN.md sont toujours ajoutés après cette surcharge. Peut être combiné avec --append-system-prompt.
--append-system-promptAjoute des instructions supplémentaires au prompt système principal de la session pour cette exécution.Votre texte de promptAppliqué après le prompt intégré et les fichiers de contexte chargés. Peut être combiné avec --system-prompt. Voir Mode sans tête pour des exemples.
--output-format-oSpécifie le format de sortie de la CLI pour le mode non interactif.text, json, stream-jsontext : (Par défaut) La sortie standard lisible par l’humain. json : Une sortie JSON lisible par machine émise à la fin de l’exécution. stream-json : Des messages JSON en flux émis au fur et à mesure de l’exécution. Pour une sortie structurée et des scripts, utilisez les drapeaux --output-format json ou --output-format stream-json. Voir Mode sans tête pour des informations détaillées.
--input-formatSpécifie le format consommé depuis l’entrée standard.text, stream-jsontext : (Par défaut) Entrée texte standard depuis stdin ou les arguments en ligne de commande. stream-json : Protocole de message JSON via stdin pour la communication bidirectionnelle. Condition : --input-format stream-json nécessite que --output-format stream-json soit défini. Lors de l’utilisation de stream-json, stdin est réservé aux messages du protocole. Voir Mode sans tête pour des informations détaillées.
--include-partial-messagesInclure les messages partiels de l’assistant lors de l’utilisation du format de sortie stream-json. Lorsque activé, émet des événements de flux (message_start, content_block_delta, etc.) au fur et à mesure du streaming.Par défaut : false. Condition : Nécessite que --output-format stream-json soit défini. Voir Mode sans tête pour des informations détaillées sur les événements de flux.
--sandbox-sActive le mode sandbox pour cette session.
--sandbox-imageDéfinit l’URI de l’image sandbox.
--debug-dActive le mode débogage pour cette session, fournissant une sortie plus verbose.
--all-files-aSi défini, inclut récursivement tous les fichiers du répertoire courant comme contexte pour le prompt.
--help-hAffiche les informations d’aide sur les arguments en ligne de commande.
--show-memory-usageAffiche l’utilisation actuelle de la mémoire.
--yoloActive le mode YOLO, qui approuve automatiquement tous les appels d’outil.
--approval-modeDéfinit le mode d’approbation pour les appels d’outil.plan, default, auto-edit, auto, yoloModes pris en charge : plan : Analyser uniquement—ne pas modifier les fichiers ni exécuter de commandes. default : Demander une approbation pour les modifications de fichiers ou les commandes shell (comportement par défaut). auto-edit : Approuver automatiquement les outils d’édition (edit, write_file, notebook_edit) tout en demandant pour les autres. auto : Le classifieur LLM approuve automatiquement les actions sûres et bloque les risquées. yolo : Approuver automatiquement tous les appels d’outil (équivalent à --yolo). Ne peut pas être utilisé avec --yolo. Utilisez --approval-mode=yolo au lieu de --yolo pour la nouvelle approche unifiée. Exemple : qwen --approval-mode auto-edit
Voir plus à propos du Mode d’approbation.
--allowed-toolsUne liste séparée par des virgules des noms d’outils qui contourneront la boîte de dialogue de confirmation.Noms d’outilsExemple : qwen --allowed-tools "Shell(git status)"
--disabled-slash-commandsNoms des commandes slash à masquer/désactiver (séparés par des virgules ou répétés). Associé au paramètre slashCommands.disabled et à la variable d’environnement QWEN_DISABLED_SLASH_COMMANDS. La correspondance est insensible à la casse avec le nom final de la commande.Noms de commandesExemple : qwen --disabled-slash-commands "auth,mcp,extensions"
--telemetryActive la télémétrie.
--telemetry-targetDéfinit la cible de télémétrie.Voir télémétrie pour plus d’informations.
--telemetry-otlp-endpointDéfinit le point de terminaison OTLP pour la télémétrie.Voir télémétrie pour plus d’informations.
--telemetry-otlp-protocolDéfinit le protocole OTLP pour la télémétrie (grpc ou http).Par défaut : grpc. Voir télémétrie pour plus d’informations.
--telemetry-log-promptsActive la journalisation des prompts pour la télémétrie.Voir télémétrie pour plus d’informations.
--acpActive le mode ACP (Agent Client Protocol). Utile pour les intégrations IDE/éditeur comme Zed.Stable. Remplace le drapeau obsolète --experimental-acp.
--experimental-lspActive la fonctionnalité expérimentale LSP (Language Server Protocol) pour l’intelligence du code (aller à la définition, trouver les références, diagnostics, etc.).Expérimental. Nécessite que des serveurs de langage soient installés.
--extensions-eSpécifie une liste d’extensions à utiliser pour la session.Noms d’extensionsSi non 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-lListe toutes les extensions disponibles et quitte.
--proxyDéfinit le proxy pour la CLI.URL du proxyExemple : --proxy http://localhost:7890.
--include-directoriesInclut des répertoires supplémentaires dans l’espace de travail pour la prise en charge de plusieurs répertoires.Chemins de répertoiresPeut être spécifié plusieurs fois ou sous forme de valeurs séparées par des virgules. 5 répertoires maximum peuvent être ajoutés. Exemple : --include-directories /path/to/project1,/path/to/project2 ou --include-directories /path/to/project1 --include-directories /path/to/project2
--screen-readerActive le mode lecteur d’écran, qui ajuste le TUI pour une meilleure compatibilité avec les lecteurs d’écran.
--versionAffiche la version de la CLI.
--openai-loggingActive la journalisation des appels API OpenAI pour le débogage et l’analyse.Ce drapeau remplace le paramètre enableOpenAILogging dans settings.json.
--openai-logging-dirDéfinit un chemin de répertoire personnalisé pour les journaux de l’API OpenAI.Chemin de répertoireCe drapeau remplace le paramètre openAILoggingDir dans settings.json. Prend en charge les chemins absolus, relatifs et l’expansion ~. Exemple : qwen --openai-logging-dir "~/qwen-logs" --openai-logging

Fichiers de contexte (contexte instructionnel hiérarchique)

Bien qu’il ne s’agisse pas strictement d’une configuration du comportement de la CLI, les fichiers de contexte (par défaut QWEN.md mais configurables via le paramètre context.fileName) sont essentiels pour configurer le contexte instructionnel (également appelé « mémoire »). Cette fonctionnalité puissante vous permet de donner des instructions spécifiques au projet, des guides de style de codage ou toute information de contexte pertinente à l’IA, rendant ses réponses plus adaptées et précises à vos besoins. La CLI inclut des éléments d’interface utilisateur, comme 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 du contexte que vous souhaitez que le modèle Qwen connaisse lors de vos interactions. Le système est conçu pour gérer ce contexte instructionnel de manière hiérarchique.

Exemple de contenu de fichier de contexte (p. ex. QWEN.md)

Voici un exemple conceptuel de ce qu’un fichier de contexte à la racine d’un projet TypeScript pourrait contenir :

# Project: My Awesome TypeScript Library ## General Instructions: - When generating new TypeScript code, please follow the existing coding style. - Ensure all new functions and classes have JSDoc comments. - Prefer functional programming paradigms where appropriate. - All code should be compatible with TypeScript 5.0 and Node.js 22+. ## Coding Style: - Use 2 spaces for indentation. - Interface names should be prefixed with `I` (e.g., `IUserService`). - Private class members should be prefixed with an underscore (`_`). - Always use strict equality (`===` and `!==`). ## Specific Component: `src/api/client.ts` - This file handles all outbound API requests. - When adding new API call functions, ensure they include robust error handling and logging. - Use the existing `fetchWithRetry` utility for all GET requests. ## Regarding Dependencies: - Avoid introducing new external dependencies unless absolutely necessary. - If a new dependency is required, please state the reason.

Cet exemple montre comment vous pouvez fournir un contexte général de projet, des conventions de codage spécifiques, et même des notes sur des fichiers ou composants particuliers. Plus vos fichiers de contexte sont pertinents et précis, plus l’IA peut vous aider efficacement. Les fichiers de contexte spécifiques au projet sont fortement encouragés pour établir des conventions et un contexte.

  • Chargement hiérarchique et précédence : La CLI implémente un système de mémoire hiérarchique en chargeant les fichiers de contexte (par exemple, QWEN.md) depuis plusieurs emplacements. Le contenu des fichiers situés plus bas dans cette liste (plus spécifiques) remplace ou complète généralement le contenu des fichiers situés plus haut (plus généraux). L’ordre exact de concaténation et le contexte final peuvent être inspectés depuis la boîte de dialogue /memory. L’ordre de chargement typique est le suivant :
    1. Fichier de contexte global :
      • Emplacement : ~/.qwen/<nom-du-fichier-de-contexte-configuré> (par exemple, ~/.qwen/QWEN.md dans votre répertoire personnel).
      • Portée : Fournit des instructions par défaut pour tous vos projets.
    2. Fichiers de contexte de la racine du projet et des répertoires parents :
      • Emplacement : La CLI cherche le fichier de contexte configuré dans le répertoire de travail actuel, puis dans chaque répertoire parent jusqu’à la racine du projet (identifiée par un dossier .git) ou votre répertoire personnel.
      • Portée : Fournit un contexte pertinent pour l’ensemble du projet ou une partie significative de celui-ci.
  • Concaténation et indicateur UI : Le contenu de tous les fichiers de contexte trouvés est concaténé (avec des séparateurs indiquant leur origine et leur chemin) et fourni dans le prompt système. Le pied de page de la CLI affiche le nombre de fichiers de contexte chargés, vous donnant un aperçu visuel rapide du contexte instructionnel actif.
  • Importation de contenu : Vous pouvez modulariser vos fichiers de contexte en important d’autres fichiers Markdown en utilisant la syntaxe @chemin/vers/fichier.md. Pour plus de détails, consultez la documentation sur la mémoire.
  • Commandes de gestion de la mémoire :
    • Utilisez /memory pour ouvrir la boîte de dialogue de gestion de la mémoire.
    • Rafraîchissez la mémoire depuis la boîte de dialogue pour re-scanner et recharger les fichiers de contexte depuis tous les emplacements configurés.
    • Consultez la documentation sur les commandes pour plus de détails sur la commande /memory.

En comprenant et en utilisant ces couches de configuration et 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 et des modifications de fichiers) dans un environnement sandboxé pour protéger votre système.

Le Sandbox est désactivé par défaut, mais vous pouvez l’activer de plusieurs manières :

  • En utilisant le drapeau --sandbox ou -s.
  • En définissant la variable d’environnement QWEN_SANDBOX.
  • En définissant tools.sandbox dans les paramètres.

⚠️ --yolo n’active pas automatiquement un sandbox. Le mode YOLO se contente d’approuver automatiquement les appels d’outils ; le sandboxing doit toujours être activé via --sandbox, QWEN_SANDBOX ou tools.sandbox. Dans les exécutions sans tête / non interactives avec --yolo (ou --approval-mode=yolo) et sans sandbox, le modèle peut exécuter les outils shell, d’écriture et d’édition au niveau de privilège du processus actuel — Qwen Code affiche un avertissement sur stderr dans ce cas. Supprimez-le avec QWEN_CODE_SUPPRESS_YOLO_WARNING=1 après avoir examiné le compromis.

Par défaut, il utilise une image Docker pré-construite qwen-code-sandbox.

Pour des besoins de sandboxing spécifiques au projet, vous pouvez créer un Dockerfile personnalisé dans .qwen/sandbox.Dockerfile à la racine de votre projet. Ce Dockerfile peut être basé sur l’image sandbox de base :

FROM qwen-code-sandbox # Add your custom dependencies or configurations here # For example: # RUN apt-get update && apt-get install -y some-package # COPY ./my-config /app/my-config

Lorsque .qwen/sandbox.Dockerfile existe, vous pouvez utiliser la variable d’environnement BUILD_SANDBOX lors de l’exécution de Qwen Code pour construire automatiquement l’image sandbox personnalisée :

BUILD_SANDBOX=1 qwen -s

Statistiques d’utilisation

Pour nous aider à améliorer Qwen Code, nous collectons des statistiques d’utilisation anonymisées. Ces données nous aident à comprendre comment la CLI est utilisée, à identifier les problèmes courants et à prioriser les nouvelles fonctionnalités.

Ce que nous collectons :

  • Appels d’outils : Nous enregistrons les noms des outils appelés, s’ils réussissent ou échouent, et le temps qu’ils prennent pour s’exécuter. Nous ne collectons pas les arguments passés aux outils ni les données qu’ils retournent.
  • Requêtes API : Nous enregistrons le modèle utilisé pour chaque requête, la durée de la requête et si elle a réussi. Nous ne collectons pas le contenu des prompts ou des réponses.
  • Informations de session : Nous collectons des informations sur la configuration de la CLI, comme les outils activés et le mode d’approbation.

Ce que nous NE collectons PAS :

  • Informations personnelles identifiables (PII) : Nous ne collectons aucune information personnelle, comme votre nom, adresse e-mail ou clés API.
  • Contenu des prompts et des réponses : Nous ne journalisons pas le contenu de vos prompts ni les réponses du modèle.
  • Contenu des fichiers : Nous ne journalisons pas le contenu des fichiers lus ou écrits par la CLI.

Comment se désinscrire :

Vous pouvez vous désinscrire de la collecte de statistiques d’utilisation à tout moment en définissant la propriété usageStatisticsEnabled sur false dans la catégorie privacy de votre fichier settings.json :

{ "privacy": { "usageStatisticsEnabled": false } }
Note

Lorsque les statistiques d’utilisation sont activées, les événements sont envoyés à un point de terminaison de collecte Alibaba Cloud RUM.

Last updated on