Continuer une longue session Qwen Code : compression et contexte
Quand une session Qwen Code approche de sa limite de contexte, ne videz pas l’historique et n’augmentez pas arbitrairement la fenêtre. Sauvegardez d’abord le code et l’état de la tâche, choisissez une compression avec résumé ou une compression rapide, vérifiez la continuité, puis placez autoCompactThreshold et contextWindowSize au niveau réellement appliqué.
Sommaire

Lorsqu’une longue session Qwen Code est presque pleine, ne commencez pas par /clear et n’augmentez pas contextWindowSize au hasard. L’ordre le plus sûr est le suivant : distinguer la capacité de contexte du quota du compte, sauvegarder le code et l’état de la tâche, choisir le bon mode de compression, vérifier le résultat, puis corriger le seuil automatique et la fenêtre du modèle.
Les commandes et réglages ci-dessous ont été vérifiés le 11 octobre 2026 dans la documentation des commandes, la référence des paramètres et la référence Model Providers de Qwen Code. Commencez par la version réellement installée.
Distinguez d’abord le contexte du quota
| Symptôme | Cause la plus probable | Action suivante |
|---|---|---|
/context indique une forte occupation ou la requête est trop longue | Fenêtre de contexte de la session | Sauvegarder l’état, puis compresser |
| Le fournisseur mentionne solde, abonnement, quota, fréquence ou compte | Quota du service ou de l’API | Vérifier la console du fournisseur ; la compression n’ajoute aucun quota |
/context affiche une fenêtre totale irréaliste | Mauvaise hypothèse de Qwen Code | Corriger la valeur et l’emplacement de contextWindowSize |
| Le contexte baisse mais l’erreur de quota reste | Le problème n’est pas le contexte | Vérifier clé, solde, offre et limitation de débit |
contextWindowSize indique seulement la capacité que Qwen Code doit utiliser dans ses calculs. Il n’augmente pas la limite réelle du serveur et ne restaure ni abonnement ni crédit.
Vérifiez la version et l’utilisation actuelle
Exécutez :
/status
/help
/model
/doctor
/context detail
Attendez la fin de chaque commande. Utilisez /status pour la version, /model pour vérifier le modèle sélectionné, /doctor pour l’authentification et l’environnement, et /context detail pour la répartition du contexte.
Si /summary, /compress-fast ou un réglage présenté ici n’existe pas dans votre version, consultez d’abord les instructions officielles d’installation. Modifier plusieurs fois une clé inconnue de votre client ne la rendra pas active.
Sauvegardez deux états avant la compression
La compression modifie l’historique de conversation. Elle ne sauvegarde pas automatiquement le code non validé et ne garantit pas que toutes les contraintes implicites figureront dans le résumé.
Sauvegardez l’état du code
Dans un dépôt Git :
!git status --short
!git diff --stat
Consultez le diff complet si nécessaire ou créez un commit de contrôle. Vous devez connaître les fichiers modifiés, les fichiers non suivis et les tests encore absents.
Sauvegardez l’état de la tâche
Demandez un passage de relais explicite sans autoriser de nouvelles modifications :
Sans modifier les fichiers, crée un point de contrôle contenant :
- objectif final
- travail terminé
- fichiers modifiés et changements essentiels
- contraintes à ne pas modifier
- vérifications exécutées et résultats
- problèmes non résolus
- une seule prochaine action et sa commande de vérification
Relisez-le, puis lancez :
/summary
Sans chemin personnalisé, le fichier documenté est :
.qwen/PROJECT_SUMMARY.md
/summary est non destructif : il écrit un résumé sans remplacer le chat. Réinjectez le fichier pour un audit en lecture seule :
@.qwen/PROJECT_SUMMARY.md Vérifie l’objectif, les contraintes, les fichiers, les contrôles et la prochaine étape. Signale uniquement les omissions ; ne modifie pas le code.
Conservez le chemin par défaut si vous utilisez le flux welcome-back. La documentation précise qu’il ne détecte pas les résumés enregistrés ailleurs.
Choisissez la bonne commande
| Commande | Effet | Quand l’utiliser | Risque principal |
|---|---|---|---|
/summary | Écrit l’état du projet dans un fichier sans remplacer l’historique | Avant une compression, une pause ou une nouvelle session | Le résumé doit être relu |
/compress | Remplace l’historique par un résumé | Tâches riches en décisions, contraintes et dépendances | Des détails peuvent disparaître de l’ancien historique |
/compress-fast | Sans IA, retire d’anciens résultats d’outils et contenus de raisonnement | Sessions gonflées par les logs dont l’objectif est déjà documenté | Les anciens résultats d’outils supprimés peuvent contenir des informations utiles plus tard ; consignez-les et vérifiez-les d’abord dans le checkpoint |
/clear | Vide la conversation | Lorsque vous abandonnez volontairement l’ancien chat | Le contexte précédent disparaît |
Pour la plupart des tâches complexes : /summary → relecture manuelle → /compress. Utilisez /compress-fast si la compression normale échoue, si l’appel au fournisseur est indisponible ou si d’anciens tool outputs occupent l’essentiel de la fenêtre.
/summarize n’est pas la commande de sauvegarde : la documentation actuelle en fait un alias de /compress.
Une procédure complète et vérifiable
1. Préparez l’entrée
Avant de compresser, assurez-vous d’avoir enregistré l’objectif, les contraintes, l’état Git, les contrôles effectués et restants, la prochaine étape, son signal de réussite et un .qwen/PROJECT_SUMMARY.md relu.
2. Lancez la compression
Pour une tâche complexe :
/compress
Pour une session dominée par les sorties d’outils avec un bon point de contrôle :
/compress-fast
Attendez la fin de l’opération et le retour de l’invite. N’envoyez pas d’instruction de modification pendant la compression.
3. Conservez les sorties
Gardez deux résultats indépendants :
.qwen/PROJECT_SUMMARY.md, qui conserve l’état de la tâche ;- l’arbre de travail et le diff Git, qui conservent les modifications réelles.
Le chat compressé ne doit pas être votre seule source de vérité. Les fichiers, tests et diffs indiquent ce qui a réellement changé.
4. Vérifiez la réussite
Exécutez de nouveau :
/context
L’occupation doit diminuer sensiblement. Puis effectuez un contrôle de continuité sans modifier les fichiers :
Ne modifie pas encore les fichiers. Réponds :
1. Quel est l’unique objectif actuel ?
2. Quelles contraintes ne doivent pas changer ?
3. Quels fichiers ont été modifiés ?
4. Quels contrôles ont réussi et lesquels restent à faire ?
5. Quelle est la prochaine action et son signal de réussite ?
Comparez la réponse à PROJECT_SUMMARY.md, git status et aux résultats réels. Lorsqu’ils concordent, exécutez une seule petite étape et le contrôle le plus proche.
5. Récupérez la tâche en cas d’échec
- Si
/compresséchoue après la sauvegarde, essayez/compress-fast; sinon, ouvrez une nouvelle session et injectez@.qwen/PROJECT_SUMMARY.md. - Si une contrainte manque, réinjectez le résumé, corrigez l’omission et demandez une nouvelle restitution du point de contrôle avant toute édition.
- Si le contexte baisse mais que l’appel échoue encore, vérifiez si le message concerne le solde, l’offre, le rate limit ou l’authentification.
- Si le serveur refuse toujours la taille,
contextWindowSizepeut dépasser la limite effective du fournisseur.
Corrigez le seuil automatique : l’ancienne clé est obsolète
La clé actuelle est :
{
"context": {
"autoCompactThreshold": 0.85
}
}
La valeur doit être supérieure à 0 et inférieure ou égale à 1 ; la valeur par défaut est 0.85. C’est un plafond, pas la garantie d’un déclenchement exact à 85 %. Une petite fenêtre peut compresser plus tôt pour réserver de la place au résumé.
Le chemin remplacé et ignoré sans avertissement est model.chatCompression.contextPercentageThreshold :
{
"model": {
"chatCompression": {
"contextPercentageThreshold": 0.7
}
}
}
Lors d’une migration, déplacez la valeur vers context.autoCompactThreshold et observez d’abord le défaut. Ne baissez le seuil que si la compression arrive régulièrement trop tard ; ne l’augmentez pas uniquement pour retarder l’opération.
Choisissez volontairement la portée du réglage
~/.qwen/settings.json: tous les projets de l’utilisateur ;.qwen/settings.jsonà la racine : uniquement ce projet, avec priorité sur le fichier utilisateur.
L’ordre documenté est : valeurs par défaut, defaults système, utilisateur, projet, paramètres système, variables d’environnement, arguments de ligne de commande. Si le fichier utilisateur semble sans effet, recherchez une couche prioritaire.
/config modifie les valeurs simples :
/config context.autoCompactThreshold=0.85
Mais la commande écrit dans ~/.qwen/settings.json. Pour une valeur propre au dépôt, modifiez directement .qwen/settings.json.
Validez le JSON si nécessaire :
!python3 -m json.tool ~/.qwen/settings.json >/dev/null
!python3 -m json.tool .qwen/settings.json >/dev/null
Placez contextWindowSize au niveau réellement utilisé
Indiquez la limite effective du fournisseur pour le modèle sélectionné, pas un maximum marketing ni une valeur souhaitée. Une valeur trop élevée retarde la compression ; une valeur trop faible la déclenche trop tôt.
Modèle défini dans modelProviders
La valeur doit être dans l’entrée correspondante. 128000 n’est qu’un exemple de structure :
{
"modelProviders": {
"openai": [
{
"id": "your-model-id",
"name": "Your model",
"baseUrl": "https://provider.example/v1",
"envKey": "OPENAI_API_KEY",
"generationConfig": {
"contextWindowSize": 128000
}
}
]
},
"security": { "auth": { "selectedType": "openai" } },
"model": { "name": "your-model-id" }
}
Les entrées provider sont fermées : model.generationConfig ne complète pas leurs champs manquants. La même règle de placement vaut pour tout endpoint personnalisé compatible OpenAI — par exemple BetterToken comme service d’API possible — après vérification du client, de la ressource et du modèle choisis.
Modèle runtime hors de modelProviders
Dans ce cas seulement, utilisez le niveau supérieur :
{
"model": {
"generationConfig": {
"contextWindowSize": 128000
}
}
}
Ne définissez pas deux valeurs contradictoires. Vérifiez le modèle avec /model, l’authentification avec /doctor, identifiez la source du modèle et gardez un seul emplacement correct.
Diagnostic rapide
| Symptôme | Cause probable | Correction et vérification |
|---|---|---|
/compress-fast est inconnue | Version ancienne | /status, mise à jour, puis confirmation avec /help |
| L’ancien seuil ne change rien | La clé est ignorée | Migrer vers context.autoCompactThreshold |
| Le réglage utilisateur ne s’applique pas | Projet ou système prioritaire | Vérifier .qwen/settings.json, politiques et arguments |
| Avec 0.85, la compression arrive plus tôt | La fenêtre doit réserver le résumé | Observer fenêtre et usage avec /context |
/context affiche une fenêtre énorme | Valeur ou niveau incorrect | Mettre la limite effective dans le generationConfig du provider actif |
| Le serveur signale encore un overflow | La valeur dépasse sa limite réelle | Réduire à la limite effective et revérifier |
| L’erreur de quota reste après compression | Solde, offre ou rate limit | Vérifier la console du fournisseur |
| Le modèle ne connaît plus la prochaine étape | Point de contrôle incomplet | Injecter PROJECT_SUMMARY.md, comparer Git et tests |
Quatre règles à retenir
- Contexte et quota sont distincts. La compression réduit l’historique, pas les limites du compte.
- Sauvegardez avant de compresser. Git protège le code ;
/summaryprotège l’état de la tâche. - Utilisez
/compresspour une continuité complexe et/compress-fastpour l’excès de tool output. Vérifiez dans les deux cas. - Réglez le niveau effectif. Utilisez
context.autoCompactThresholdet placez lecontextWindowSized’un provider dans son entréemodelProviders.
Commencez par /status, /model, /doctor, /context detail et /summary. Relisez le point de contrôle avant de compresser afin de conserver un chemin de reprise, même si le résumé final n’est pas parfait.