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
Continuer une longue session Qwen Code : compression et contexte

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ômeCause la plus probableAction suivante
/context indique une forte occupation ou la requête est trop longueFenêtre de contexte de la sessionSauvegarder l’état, puis compresser
Le fournisseur mentionne solde, abonnement, quota, fréquence ou compteQuota du service ou de l’APIVérifier la console du fournisseur ; la compression n’ajoute aucun quota
/context affiche une fenêtre totale irréalisteMauvaise hypothèse de Qwen CodeCorriger la valeur et l’emplacement de contextWindowSize
Le contexte baisse mais l’erreur de quota resteLe problème n’est pas le contexteVé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

CommandeEffetQuand l’utiliserRisque principal
/summaryÉcrit l’état du projet dans un fichier sans remplacer l’historiqueAvant une compression, une pause ou une nouvelle sessionLe résumé doit être relu
/compressRemplace l’historique par un résuméTâches riches en décisions, contraintes et dépendancesDes détails peuvent disparaître de l’ancien historique
/compress-fastSans IA, retire d’anciens résultats d’outils et contenus de raisonnementSessions 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
/clearVide la conversationLorsque vous abandonnez volontairement l’ancien chatLe 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 :

  1. .qwen/PROJECT_SUMMARY.md, qui conserve l’état de la tâche ;
  2. 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, contextWindowSize peut 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ômeCause probableCorrection et vérification
/compress-fast est inconnueVersion ancienne/status, mise à jour, puis confirmation avec /help
L’ancien seuil ne change rienLa clé est ignoréeMigrer vers context.autoCompactThreshold
Le réglage utilisateur ne s’applique pasProjet ou système prioritaireVérifier .qwen/settings.json, politiques et arguments
Avec 0.85, la compression arrive plus tôtLa fenêtre doit réserver le résuméObserver fenêtre et usage avec /context
/context affiche une fenêtre énormeValeur ou niveau incorrectMettre la limite effective dans le generationConfig du provider actif
Le serveur signale encore un overflowLa valeur dépasse sa limite réelleRéduire à la limite effective et revérifier
L’erreur de quota reste après compressionSolde, offre ou rate limitVérifier la console du fournisseur
Le modèle ne connaît plus la prochaine étapePoint de contrôle incompletInjecter PROJECT_SUMMARY.md, comparer Git et tests

Quatre règles à retenir

  1. Contexte et quota sont distincts. La compression réduit l’historique, pas les limites du compte.
  2. Sauvegardez avant de compresser. Git protège le code ; /summary protège l’état de la tâche.
  3. Utilisez /compress pour une continuité complexe et /compress-fast pour l’excès de tool output. Vérifiez dans les deux cas.
  4. Réglez le niveau effectif. Utilisez context.autoCompactThreshold et placez le contextWindowSize d’un provider dans son entrée modelProviders.

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.

Prêt à optimiser votre workflow LLM ?

Connectez vos modèles via une API unique, gérez les clés et maîtrisez vos dépenses d’IA.

Commencer gratuitement