Toutes les pages
Sur cette page

Compacter une conversation

Un modèle ne peut lire qu’une quantité limitée de texte à la fois. Dans une longue conversation, l’historique remplit sa fenêtre de contexte, et tôt ou tard il faut céder quelque chose. OAR vous offre deux issues : vous pouvez démarrer avec /compact une nouvelle conversation qui emporte un résumé, et certains fournisseurs réduisent automatiquement leur propre contexte.

L’affichage de la fenêtre de contexte (le bouton 🧠) est décrit dans La fenêtre de contexte ; cette page ne traite que du compactage.

/compact #

Tapez /compact dans la zone de saisie et envoyez-le. L’autocomplétion de la zone de saisie propose aussi la commande quand vous tapez /. OAR vous demande confirmation avec la question Compact this conversation into a new one with carry-over summary? (Compacter cette conversation dans une nouvelle avec un résumé repris ?), puis :

  1. Il crée une nouvelle conversation, avec le titre de l’ancienne suivi de (compacted) (compactée).
  2. Il archive l’ancienne conversation. L’ancienne est conservée en entier et reste lisible dans la liste des archives, voir La liste des conversations.
  3. Il ouvre la nouvelle conversation, vide, avec le résumé en attente. Tout autre navigateur où l’ancienne conversation est ouverte passe aussi à la nouvelle.

Le résumé est placé devant le premier message que vous envoyez dans la nouvelle conversation : l’agent le reçoit sous [Carry-over context from previous compacted conversation] (Contexte repris de la conversation compactée précédente), suivi de votre texte sous [New user request] (Nouvelle demande de l’utilisateur). Votre propre bulle n’affiche que ce que vous avez tapé. Après ce premier message, le résumé est consommé ; les turns suivants emportent ce que l’agent garde lui-même dans son historique.

/compact ne prend aucune instruction. Il ne fonctionne que comme message entier, sans pièces jointes, dans une conversation qui n’est pas archivée. Si vous ajoutez du texte après, le message n’est pas traité comme une commande et part chez l’agent comme du texte ordinaire. OAR n’attend pas la fin d’un turn en cours et ne l’arrête pas ; envoyez donc /compact quand l’agent est inactif.

La nouvelle conversation repart de zéro

Seuls le titre et le résumé sont copiés. La nouvelle conversation ne poursuit pas l’ancienne session d’agent ; l’agent n’a donc aucun souvenir de l’ancienne conversation au-delà du résumé. Rien dans l’app ne relie les deux conversations ; pour retrouver l’ancienne, regardez dans la liste des archives. Le fournisseur, le modèle et le dossier ne sont pas copiés : choisissez-les comme pour toute nouvelle conversation. Les messages épinglés ne sont pas copiés non plus.

Ce que contient le résumé #

Le résumé est construit à partir des messages texte de l’ancienne conversation, sans demander à un modèle de le rédiger :

  • le titre de la conversation ;
  • jusqu’à 16 messages, les vôtres et ceux de l’agent, du plus ancien au plus récent, chacun réduit à une ligne et tronqué à 260 caractères ;
  • au plus 3 500 caractères au total ; un long résumé perd donc sa fin.

Les 16 sont choisis parmi les 24 messages les plus récents, et les plus anciens d’entre eux viennent en premier. Dans une conversation de plus de 24 messages, les 8 plus récents sont donc exclus du résumé. Les messages sans texte occupent une place mais n’apportent rien.

Rien d’autre ne passe : ni sortie d’outil, ni fichiers, ni images, ni thinking, ni plans de l’agent. Si l’ancienne conversation n’avait pas de texte, le résumé l’indique. La nouvelle conversation reçoit un vague rappel du sujet, pas un compte rendu fidèle. Redites à l’agent dans votre premier message tout ce qui est important, en particulier les dernières étapes.

Compactage automatique #

Certains fournisseurs compactent d’eux-mêmes une longue conversation, sur place. La conversation reste la même, avec la même session d’agent ; le fournisseur remplace l’historique ancien par une version plus courte quand la fenêtre approche de sa limite. Aucune confirmation n’est demandée.

Fournisseur Quand il compacte
Claude Quand le contexte atteint la auto-compact window (fenêtre de compactage auto), voir ci-dessous. Par défaut, elle est proche de la limite propre du modèle (environ 967k tokens sur un modèle à contexte de 1M) ; les longues conversations y arrivent donc rarement.
DeepSeek Ajouté en 0.9.17 Comme Claude, à la auto-compact window. Laissé sur Auto, un chat DeepSeek compacte à 400k tokens, bien en dessous de la fenêtre de 1M des modèles.
GitHub Copilot et OpenAI, moteur SDK En arrière-plan à 80 % de la fenêtre de contexte, et sous forme de compactage bloquant à 95 %.

Pendant ce temps, un message que vous envoyez est retenu dans la queue, et le bouton d’envoi affiche Queue (Mettre en file). Le message part une fois le compactage terminé.

Ce que vous voyez #

Sur Claude, DeepSeek et Claude Cloud, le fil de la conversation affiche un compactage sous forme de ligne pleine largeur, et le même point apparaît comme une pastille à côté de la barre de défilement :

  • Ajouté en 0.9.8 Pendant qu’il s’exécute (Claude et DeepSeek uniquement), la ligne affiche Compacting context… (Compactage du contexte…) au-dessus du turn en cours, et la bulle du turn indique Compacting the conversation… (Compactage de la conversation…).
  • Quand il se termine, la même ligne devient Context compacted · 120k → 40k tokens (Contexte compacté · 120k → 40k tokens) avec les vrais chiffres. Si seule la taille antérieure est connue, elle affiche Context compacted · was 120k tokens.
  • Un compactage qui se termine sans résultat ne laisse aucune ligne.

Sur Claude Cloud, la ligne n’apparaît qu’une fois le compactage terminé, et affiche ce que la session signale.

Sur le moteur SDK (GitHub Copilot et OpenAI), la progression s’affiche plutôt sous forme de lignes d’activité dans le turn en cours : Compacting the conversation context… (Compactage du contexte de la conversation…), puis Context compacted (removed 12 messages, 30k tokens) (Contexte compacté : 12 messages, 30k tokens supprimés) avec les vrais chiffres, ou Context compaction failed: reason (Échec du compactage du contexte : reason).

La fenêtre de compactage auto #

Sur Claude et DeepSeek, vous pouvez choisir la quantité de contexte qu’une conversation peut accumuler avant de compacter. Les fenêtres plus petites compactent plus tôt et rendent chaque turn moins cher. Le réglage appartient à la conversation.

Ouvrez le bouton de contexte 🧠 de la conversation et déplacez le curseur Auto-compact window. Il a sept crans :

Cran Signification
Auto La valeur par défaut. Claude Code choisit une fenêtre adaptée au modèle. Sur DeepSeek, Auto signifie 400k : le relais règle cette fenêtre sauf si vous choisissez un autre cran.
100k, 150k, 200k, 300k, 500k, 1M La conversation compacte quand son contexte atteint ce nombre de tokens.

À savoir :

  • La plus petite fenêtre est de 100k. Claude Code ignore toute valeur inférieure et revient à sa propre valeur par défaut ; le curseur ne la propose donc pas.
  • La fenêtre ne peut pas dépasser la limite propre du modèle. Une fenêtre de 1M sur un modèle à fenêtre de contexte plus petite n’a aucun effet au-delà de cette limite plus petite.
  • Le curseur enregistre quand vous fermez la modale. Le déplacer ne change que l’étiquette et les notes en dessous.
  • Une session en cours redémarre une fois pour l’appliquer. Claude Code ne lit la fenêtre qu’à son démarrage. Avant votre prochain message, OAR redémarre le processus de l’agent, quand rien n’y tourne, et la réponse l’indique : Restarted the session to apply the compaction window (Auto → 100k) (Session redémarrée pour appliquer la fenêtre de compactage, Auto → 100k). La note sous le curseur vous dit ce qu’attend le changement : Applies after the current turn. (S’applique après le turn en cours.), Applies when background work has finished. (S’applique une fois le travail de fond terminé.) ou Applies on the next message (the session restarts once). (S’applique au prochain message, la session redémarre une fois.)
  • Une fenêtre inférieure à ce que la conversation utilise déjà la compacte aussitôt. Le curseur vous prévient : The conversation will be compacted on the next message. (La conversation sera compactée au prochain message.)
  • La ligne sous le curseur affiche la fenêtre en vigueur et sa provenance : votre réglage, la valeur par défaut du modèle ou l’environnement. Elle se remplit après le premier turn de la conversation.

La variable d’environnement CLAUDE_CODE_AUTO_COMPACT_WINDOW peut aussi régler la fenêtre. Quand Claude Code signale qu’il a pris la fenêtre de là, la ligne sous le curseur affiche from CLAUDE_CODE_AUTO_COMPACT_WINDOW (depuis CLAUDE_CODE_AUTO_COMPACT_WINDOW). Là où les sessions tournent sous tmux (Linux et macOS), définir la variable pour le relais ne la transmet pas à Claude Code : voir quelles variables parviennent aux agents.

Ce qui est perdu et ce qui est conservé #

/compact Compactage automatique
Conversation Une nouvelle ; l’ancienne est archivée en entier. La même.
Fil de la conversation L’ancien fil reste dans la conversation archivée ; le nouveau démarre vide. Inchangé. Chaque message reste dans le fil, avec la ligne de compactage là où il a eu lieu (Claude, DeepSeek, Claude Cloud).
Ce que sait l’agent Le résumé seulement : quelques messages du passé récent, au plus 3 500 caractères. Une version plus courte de son historique, rédigée par le fournisseur.
Messages épinglés Restent avec l’ancienne conversation. Restent.
Fournisseur, modèle, dossier Non copiés. Inchangés.

Par fournisseur #

/compact Compactage automatique
GitHub Copilot et OpenAI, moteur SDK Oui Oui, à 80 % et 95 % de la fenêtre. Des lignes d’activité l’affichent.
GitHub Copilot et OpenAI, moteur d’extension Oui OAR ne règle ni n’affiche rien.
Claude Oui Oui. Fenêtre de compactage auto, ligne dans le fil, pastille à côté de la barre de défilement.
DeepSeek Ajouté en 0.9.17 Oui Comme Claude ; la fenêtre est de 400k sauf si vous en choisissez une autre.
Claude Cloud Oui La ligne dans le fil, quand la session signale un compactage ; pas de réglage de fenêtre.
Cursor Oui OAR ne règle ni n’affiche rien ; pas de réglage de fenêtre.
Grok Oui OAR ne règle ni n’affiche rien ; pas de réglage de fenêtre.

/compact fonctionne partout de la même façon, car il n’utilise jamais le compactage propre d’un fournisseur : il se contente de démarrer une nouvelle conversation. « OAR ne règle ni n’affiche rien » signifie qu’OAR ne déclenche aucun compactage et n’en marque aucun dans le fil de la conversation ; l’agent propre du fournisseur peut tout de même gérer son contexte.