Les agents conversationnels et systèmes autonomes basés sur de grands modèles de langage se heurtent à une limite technique récurrente : la fenêtre de contexte. Celle-ci, bien que pouvant atteindre 200 000 tokens sur certains modèles, est souvent saturée par l'accumulation de l'historique de la conversation, des résultats d'outils, des pièces jointes et des instructions système. Une simple concaténation de toutes ces données provoque un dépassement de la fenêtre et l'échec de l'appel, tandis qu'une troncature arbitraire par le début ou par la fin risque de supprimer des informations critiques comme la requête initiale ou le dernier résultat d'outil.

Le catalogue de patrons de conception « Agent Patterns Catalog » propose une réponse à ce problème sous la forme du patron Context Window Packing (également appelé Context Compression, Token Budget Management, Fit in Context ou Token Cost Reduction). Ce patron définit une politique délibérée de gestion du budget de tokens, appliquée de manière cohérente à chaque appel du modèle.

Solution et mécanisme

La solution consiste à définir une politique de « packing » qui réserve un nombre fixe de tokens pour les éléments invariants — le prompt système, les définitions d'outils, et la réservation nécessaire pour la réponse du modèle. Le reste du budget disponible est ensuite alloué dynamiquement entre trois catégories : l'historique conversationnel (compressé), les morceaux d'information récupérés (après un classement par pertinence), et l'état courant de l'agent. Le patron autorise trois types de stratégies : l'éviction (suppression des éléments les plus anciens), la synthèse (compression par résumé), ou la sélection (classement par pertinence). Un audit des comptes de tokens est effectué avant chaque appel pour vérifier que le budget n'est pas dépassé.

Cas d'usage et exemples

Le patron est particulièrement indiqué lorsque la concaténation naïve dépasse la fenêtre de contexte pour des entrées réalistes, lorsqu'une partie du contexte est fixe et que le reste doit être alloué dynamiquement, et lorsqu'il est possible d'auditer les comptes de tokens avant chaque appel. Il est en revanche déconseillé si les entrées sont toujours petites et tiennent confortablement dans la fenêtre, s'il n'y a pas de différence de qualité mesurable entre les politiques de packing, ou si une couche de mémoire externe ou de récupération contrôle déjà ce qui parvient au modèle.

Un exemple concret décrit un agent de support client ayant une fenêtre de 200k tokens et une conversation de trente tours, avec des sorties d'outils, deux documents PDF de 80 pages chacun, et la charte du système. La concaténation naïve échoue ; la troncature par la fin perd le ticket original, la troncature par le début perd le dernier tour. L'équipe met en place une étape de Context Window Packing : chaque tour, elle note les éléments par récence, pertinence et statut d'épinglage, puis ajuste un sous-ensemble budgété en remplaçant le reste par des résumés. La fenêtre ne déborde plus et l'état critique reste visible.

Interactions avec d'autres patrons

Ce patron s'inscrit dans un écosystème plus vaste de patrons de conception pour agents. Il est utilisé par des patrons plus larges comme le Reasoning Trace Carry-Forward (pour préserver la trace de raisonnement d'un modèle au sein d'une même tâche, mais l'effacer aux limites des tours utilisateur) et le Todo-List-Driven Autonomous Agent (où l'agent crée un plan, coche les tâches accomplies et réinjecte le plan restant dans le contexte).

Il utilise lui-même le patron Episodic Summaries pour compresser les épisodes passés en résumés qui préservent l'essentiel tout en réduisant le coût en tokens. D'autres patrons le complètent, comme Dynamic Scaffolding (injection d'éléments d'échafaudage dans le prompt uniquement lorsque le type de tâche le justifie), Self-Archaeology (synthèse de l'historique de pensée de l'agent en notes de trajectoire), Tool Search Lazy Loading (chargement différé des schémas d'outils), Sleep-Time Compute (pré-calcul de résumés pendant les temps d'inactivité), et Information Chunking for Agent Memory (structuration des entrées en segments thématiques avant le passage en mémoire à court terme, avec une amélioration de précision observée d'environ 40% dans un déploiement de service client).

Il se présente comme une alternative à d'autres approches comme MemGPT-Style Paging (traitement de la fenêtre de contexte comme de la RAM et du stockage externe comme un disque, avec des appels d'outils pour paginer la mémoire), Salience Attention Mechanism (sélection par score de saillance), et Lost in the Middle (biais positionnel où la précision chute quand l'information pertinente se trouve au milieu du prompt plutôt qu'au début ou à la fin).

Mise en œuvre et coûts

Ce patron procure un comportement prévisible à la limite de la fenêtre de contexte et des compromis inspectables. En contrepartie, il introduit une complexité dans la logique de packing et des artefacts de compression. Une règle impérative est énoncée : le total de tokens passé au modèle ne doit pas excéder la fenêtre moins le budget réservé pour la réponse.

Adoption dans les frameworks

Le catalogue référence plusieurs frameworks et produits qui mettent en œuvre ce patron, à divers degrés. Sparrot, un framework expérimental pour agents de domaine, en fait un patron de première classe avec une gestion délibérée du prompt (préfixe stable, registre récent, espace de travail courant, variante active). LangChain, un framework d'orchestration mature, documente le problème via la classe SummarizationMiddleware et le trimming de tokens. OpenHands, un framework pour agents de codage mature, utilise le chargement à la demande des compétences avec résumé préalable comme tactique explicite de packing, avec un fichier AGENTS.md toujours présent. Kimi (Moonshot), un agent conversationnel mature, fait de la longue fenêtre de contexte (initialement 128K, puis 256K) sa signature distinctive.

Le patron est également utilisé dans une recette d'architecture mémoire intitulée « Memory Architecture ».

Ce catalogue, dont la page est hébergée sur le site agentpatternscatalog.org, se présente sous la forme d'un livre en ligne structuré en patrons, compositions, méthodologies et formations. Le patron Context Window Packing y est classé dans le livre « Memory » avec un niveau de maturité de deux étoiles (sur trois), indiquant une certaine consolidation.