Fonctionnement
- Les tours de conversation les plus anciens sont résumés dans 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 lorsqu’il choisit un point de séparation pour la Compaction. Si ce point se situe dans un bloc d’outil, OpenClaw déplace la limite afin de conserver la paire ensemble et de préserver la fin actuelle non résumée.
L’historique complet de la conversation reste sur le disque. La Compaction modifie uniquement ce que le modèle voit au tour suivant.
Les nouvelles configurations définissent par défaut
agents.defaults.compaction.mode sur "safeguard" (garde-fous plus stricts, audits de la qualité des résumés). Définissez explicitement mode: "default" pour désactiver ce comportement.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 du contexte (auquel cas OpenClaw compacte puis réessaie). Vous verrez :embedded run auto-compaction start/completedans les journaux normaux du Gateway.🧹 Auto-compaction completeen mode détaillé./statusaffichant🧹 Compactions: <count>.
Avant la Compaction, OpenClaw rappelle automatiquement à l’agent d’enregistrer les notes importantes dans les fichiers de mémoire. Cela évite la perte de contexte.
Schémas d’erreur de dépassement reconnus par OpenClaw
Schémas d’erreur de dépassement reconnus par OpenClaw
OpenClaw reconnaît des dizaines de chaînes d’erreur de dépassement propres aux fournisseurs (Anthropic, OpenAI, Bedrock, Gemini, Ollama, OpenRouter, entre autres). Exemples courants :
request_too_largecontext length exceededinput exceeds the maximum number of tokensinput token count exceeds the maximum number of input tokens(Bedrock)input is too long for the modelollama error: context length exceeded
Compaction manuelle
Saisissez/compact dans n’importe quelle discussion pour forcer une Compaction. Ajoutez des instructions pour orienter le résumé :
agents.defaults.compaction.keepRecentTokens est défini (valeur par défaut : 20,000), la Compaction manuelle respecte ce point de coupure et conserve la fin récente dans le contexte reconstruit. Sans budget de conservation explicite, la Compaction manuelle se comporte comme un point de contrôle strict et se poursuit uniquement à partir du nouveau résumé.
Configuration
Configurez la Compaction sousagents.defaults.compaction dans votre fichier openclaw.json. Les paramètres les plus courants sont répertoriés ci-dessous ; pour consulter la référence complète, reportez-vous à l’étude approfondie de la gestion des sessions.
Utilisation d’un autre modèle
Par défaut, la Compaction utilise le modèle principal de l’agent. Définissezagents.defaults.compaction.model pour déléguer la génération du résumé à un modèle plus performant ou spécialisé. La valeur de remplacement accepte une chaîne provider/model-id ou un alias simple configuré sous agents.defaults.models :
agents.defaults.compaction.model reste exacte et n’hérite pas de la chaîne de repli de la session.
Conservation des identifiants
La génération du résumé de Compaction conserve les identifiants opaques par défaut (identifierPolicy: "strict"). Utilisez identifierPolicy: "off" pour désactiver ce comportement, ou identifierPolicy: "custom" avec identifierInstructions pour fournir des instructions personnalisées.
Limite en octets de la transcription active
Lorsqueagents.defaults.compaction.maxActiveTranscriptBytes est défini, OpenClaw
déclenche une Compaction locale normale avant une exécution si l’historique de la transcription atteint
cette taille. Cela est utile pour les sessions de longue durée dans lesquelles la gestion du contexte
côté fournisseur peut maintenir le contexte du modèle en bon état alors que l’historique persistant de la transcription
continue de croître. Cette limite ne divise pas les octets bruts ; elle demande au pipeline normal de
Compaction de créer un résumé sémantique.
Transcriptions successeures
Lorsqueagents.defaults.compaction.truncateAfterCompaction est activé, OpenClaw ne réécrit pas la transcription existante sur place. Il crée une nouvelle transcription successeure active à partir du résumé de la Compaction, de l’état conservé et de la fin non résumée, puis enregistre les métadonnées du point de contrôle qui orientent les flux de branchement et de restauration vers cette version successeure compactée.
Les transcriptions successeures suppriment également les tours utilisateur longs qui sont des doublons exacts et arrivent
dans une courte fenêtre de nouvelle tentative, afin que les vagues de nouvelles tentatives des canaux ne soient pas reportées dans la
prochaine transcription active après la Compaction.
OpenClaw n’écrit plus de copies .checkpoint.*.jsonl distinctes pour les nouvelles
Compactions. Les fichiers de point de contrôle existants hérités peuvent encore être utilisés tant qu’ils sont référencés
et sont supprimés par le nettoyage normal des sessions.
Notifications de Compaction
Par défaut, la Compaction s’exécute silencieusement. DéfinisseznotifyUser pour afficher de brefs messages d’état au début et à la fin de la Compaction, et pour signaler un état dégradé lorsque les tentatives de vidage de la mémoire avant la Compaction sont épuisées, mais que la réponse se poursuit malgré tout :
Vidage de la mémoire
Avant la Compaction, OpenClaw peut exécuter un tour de vidage silencieux de la mémoire afin d’enregistrer des notes persistantes sur le disque. Définissezagents.defaults.compaction.memoryFlush.model lorsque ce tour de maintenance doit utiliser un modèle local plutôt que le modèle actif de la conversation :
Fournisseurs de Compaction modulaires
Les Plugins peuvent enregistrer un fournisseur de Compaction personnalisé viaregisterCompactionProvider() dans l’API du Plugin. Lorsqu’un fournisseur est enregistré et configuré, OpenClaw lui délègue la génération du résumé au lieu d’utiliser le pipeline LLM intégré.
Pour utiliser un fournisseur enregistré, définissez son identifiant dans votre configuration :
provider force automatiquement mode: "safeguard". Les fournisseurs reçoivent les mêmes instructions de Compaction et la même politique de conservation des identifiants que le chemin intégré, et OpenClaw conserve toujours le contexte suffixe des tours récents et des tours séparés après la sortie du fournisseur.
Si le fournisseur échoue ou renvoie un résultat vide, OpenClaw revient à la génération de résumé LLM intégrée.
Compaction et élagage
L’élagage de session est un complément plus léger qui réduit les sorties des outils sans les résumer.
Résolution des problèmes
Compactions trop fréquentes ? La fenêtre de contexte du modèle est peut-être petite, ou les sorties des outils sont peut-être volumineuses. Essayez d’activer l’élagage de session. Le contexte semble obsolète après la Compaction ? Utilisez/compact Focus on <topic> pour orienter le résumé, ou activez le vidage de la mémoire afin que les notes soient conservées.
Besoin de repartir de zéro ? /new démarre une nouvelle session sans effectuer de Compaction.
Pour la configuration avancée (tokens réservés, conservation des identifiants, moteurs de contexte personnalisés, Compaction côté serveur OpenAI), consultez l’étude approfondie de la gestion des sessions.
Voir aussi
- Session : gestion et cycle de vie des sessions.
- Élagage de session : réduction des résultats d’outils.
- Contexte : création du contexte pour les tours de l’agent.
- Hooks : hooks du cycle de vie de la Compaction (
before_compaction,after_compaction).