Compaction
Chaque modèle possède une fenêtre de contexte — le nombre maximal de tokens qu’il peut traiter. Lorsqu’une conversation approche cette limite, OpenClaw compacte les anciens messages en un résumé afin que le chat puisse continuer.Fonctionnement
- Les anciens tours de conversation sont résumés en une entrée compacte.
- Le résumé est enregistré dans la transcription de la session.
- Les messages récents sont conservés intacts.
toolResult correspondantes. Si un point
de découpe tombe au milieu d’un bloc d’outil, OpenClaw déplace la limite afin que la paire reste ensemble et
que la fin actuelle non résumée soit préservée.
L’historique complet de la conversation reste sur le disque. La compaction modifie seulement ce que le
modèle voit au tour suivant.
Compaction automatique
La compaction automatique est activée par défaut. Elle s’exécute lorsque la session approche de la limite de contexte, ou lorsque le modèle renvoie une erreur de dépassement de contexte (dans ce cas, OpenClaw compacte et réessaie). Les signatures de dépassement typiques incluentrequest_too_large, context length exceeded, input exceeds the maximum number of tokens, input token count exceeds the maximum number of input tokens, input is too long for the model et ollama error: context length exceeded.
Avant la compaction, OpenClaw rappelle automatiquement à l’agent d’enregistrer les notes importantes
dans des fichiers de mémoire. Cela évite la perte de contexte.
agents.defaults.compaction dans votre openclaw.json pour configurer le comportement de compaction (mode, tokens cibles, etc.).
La synthèse de compaction préserve les identifiants opaques par défaut (identifierPolicy: "strict"). Vous pouvez remplacer ce comportement avec identifierPolicy: "off" ou fournir un texte personnalisé avec identifierPolicy: "custom" et identifierInstructions.
Vous pouvez éventuellement spécifier un modèle différent pour la synthèse de compaction via agents.defaults.compaction.model. Cela est utile lorsque votre modèle principal est un modèle local ou de petite taille et que vous voulez que les résumés de compaction soient produits par un modèle plus performant. La surcharge accepte toute chaîne provider/model-id :
Fournisseurs de compaction enfichables
Les plugins peuvent enregistrer un fournisseur de compaction personnalisé viaregisterCompactionProvider() sur l’API du plugin. Lorsqu’un fournisseur est enregistré et configuré, OpenClaw lui délègue la synthèse au lieu du pipeline LLM intégré.
Pour utiliser un fournisseur enregistré, définissez l’identifiant du fournisseur dans votre configuration :
provider force automatiquement mode: "safeguard". Les fournisseurs reçoivent les mêmes instructions de compaction et la même politique de préservation des identifiants que le chemin intégré, et OpenClaw préserve toujours le contexte suffixe des tours récents et des tours scindés après la sortie du fournisseur. Si le fournisseur échoue ou renvoie un résultat vide, OpenClaw revient à la synthèse LLM intégrée.
Compaction automatique (activée par défaut)
Lorsqu’une session approche ou dépasse la fenêtre de contexte du modèle, OpenClaw déclenche la compaction automatique et peut réessayer la requête d’origine en utilisant le contexte compacté. Vous verrez :🧹 Auto-compaction completeen mode verbeux/statusaffichant🧹 Compactions: <count>
Compaction manuelle
Tapez/compact dans n’importe quel chat pour forcer une compaction. Ajoutez des instructions pour guider
le résumé :
Utiliser un modèle différent
Par défaut, la compaction utilise le modèle principal de votre agent. Vous pouvez utiliser un modèle plus performant pour obtenir de meilleurs résumés :Avis de démarrage de la compaction
Par défaut, la compaction s’exécute silencieusement. Pour afficher un bref avis lorsque la compaction commence, activeznotifyUser :
Compaction vs élagage
| Compaction | Élagage | |
|---|---|---|
| Ce qu’il fait | Résume les anciennes conversations | Supprime les anciens résultats d’outils |
| Enregistré ? | Oui (dans la transcription de session) | Non (en mémoire uniquement, par requête) |
| Portée | Conversation entière | Résultats d’outils uniquement |
Dépannage
Compaction trop fréquente ? La fenêtre de contexte du modèle est peut-être petite, ou les sorties des outils peuvent être volumineuses. Essayez d’activer l’élagage de session. Le contexte semble obsolète après la compaction ? Utilisez/compact Focus on <topic> pour
guider le résumé, ou activez le vidage de la mémoire afin que les notes
persistent.
Besoin de repartir de zéro ? /new démarre une nouvelle session sans compaction.
Pour la configuration avancée (tokens de réserve, préservation des identifiants, moteurs de
contexte personnalisés, compaction côté serveur OpenAI), consultez la
Analyse approfondie de la gestion de session.
Lié
- Session — gestion et cycle de vie des sessions
- Élagage de session — suppression des résultats d’outils
- Contexte — comment le contexte est construit pour les tours de l’agent
- Hooks — hooks du cycle de vie de la compaction (before_compaction, after_compaction)