L’ingénierie contextuelle désigne l’art et la science de remplir la fenêtre de contexte d’un agent d’intelligence artificielle avec les informations pertinentes à chaque étape de son exécution. Cette discipline s’inspire d’une analogie proposée par Andrej Karpathy, qui compare les grands modèles de langage (LLM) à un système d’exploitation, où le modèle agit comme un processeur et sa fenêtre de contexte comme une mémoire vive (RAM), limitée en capacité. Ainsi, comme un système d’exploitation gère ce qui est chargé en RAM, l’ingénierie contextuelle optimise ce qui est injecté dans la fenêtre de contexte pour éviter les problèmes de performance, de coût ou de latence.
Les contextes à gérer dans les applications basées sur les LLM se répartissent en trois catégories principales : les instructions (prompts, exemples, descriptions d’outils), les connaissances (faits, mémoires) et les retours d’outils (résultats des appels à des fonctions externes). Avec l’essor des agents autonomes, capables d’enchaîner des raisonnements et des appels à des outils sur des tâches longues, la gestion du contexte devient cruciale. En effet, l’accumulation de données (retours d’outils, historiques de conversation) peut saturer la fenêtre de contexte, entraînant des phénomènes néfastes comme la pollution contextuelle (hallucinations intégrées au contexte), la distraction (surcharge nuisant à la concentration du modèle), la confusion (influence indésirable de données superflues) ou les conflits (contradictions internes dans le contexte). Des acteurs comme Cognition ou Anthropic soulignent d’ailleurs que l’ingénierie contextuelle est désormais la priorité absolue pour concevoir des agents efficaces.
Pour relever ces défis, quatre stratégies principales émergent, illustrées par des exemples concrets. La première, écrire (write), consiste à externaliser certaines informations hors de la fenêtre de contexte pour les conserver sans alourdir le traitement. Une méthode phare est l’utilisation de blocs-notes (scratchpads), comme dans le système multi-agents d’Anthropic, où un agent chef de projet enregistre ses plans en mémoire persistante pour éviter qu’ils ne soient tronqués lorsque la limite de tokens est atteinte. Cette approche imite la prise de notes humaine, permettant à l’agent de retrouver des éléments clés sans surcharger sa mémoire de travail.
Les autres stratégies incluent la sélection (select), qui filtre les informations pertinentes parmi un corpus plus large (par exemple, en utilisant des techniques de récupération sémantique pour ne garder que les données utiles à la tâche en cours), la compression (compress), qui réduit la taille du contexte via des résumés ou des reformulations, et l’isolation (isolate), qui segmente le contexte en sous-ensembles dédiés à des sous-tâches spécifiques pour limiter les interférences. Ces méthodes sont souvent combinées pour adapter dynamiquement le contenu de la fenêtre de contexte aux besoins immédiats de l’agent, comme le permet l’architecture de LangGraph, conçue pour faciliter leur implémentation.
L’enjeu de l’ingénierie contextuelle dépasse la simple optimisation technique : il s’agit de garantir que les agents conservent une capacité de raisonnement cohérente et efficace sur des séquences complexes, tout en maîtrisant les coûts et les ressources. À mesure que les agents deviennent plus ambitieux (comme ceux capables de mener des recherches autonomes ou de collaborer en équipes), cette discipline se positionne comme un pilier central de leur conception, au même titre que l’amélioration des modèles eux-mêmes.