- J’ai réalisé une traduction résumée de Effective context engineering for AI agents, publié par Anthropic le 29 septembre. Dans l’article de blog, les images et liens du texte original ont été conservés autant que possible.
Prompt engineering vs ingénierie de contexte
- Le prompt engineering vise à mieux formuler une requête isolée.
- L’ingénierie de contexte, surtout pour les agents, consiste à ne sélectionner parmi divers contextes que ce qui est réellement nécessaire.
Pourquoi l’ingénierie de contexte est importante pour construire des agents
- Les agents actuels sont développés pour utiliser « plus longtemps et avec davantage d’outils ».
- Cela allonge inévitablement le contexte, mais les LLM, à l’instar des humains, ont du mal à rester concentrés quand le contexte est saturé de données, ce qui complique l’extraction des informations voulues.
- C’est pourquoi le contrôle efficace du contexte est crucial dans le développement d’agents.
Anatomie d’un contexte efficace
Une bonne ingénierie de contexte consiste à trouver le plus petit ensemble possible de tokens à fort signal qui maximise la probabilité du résultat souhaité.
> Smallest possible set of high-signal tokens that maximize the likelihood of some desired outcome
1) Prompt système
- Le prompt système doit être extrêmement clair, simple et direct, avec exactement le bon niveau de précision. Trop spécifique, il ne couvrira pas des cas variés ; trop abstrait, il laissera trop d’éléments à inférer au LLM.
- Commencez par une description minimale du comportement attendu, puis améliorez-la en n’ajoutant des instructions explicites et des exemples que pour les cas où les modèles de pointe échouent.
- Séparez les sections avec des techniques proches du XML ou du Markdown, sans chercher à respecter une syntaxe trop stricte.
2) Tools
- Les tools doivent renvoyer l’information de manière efficace en tokens, tout en incitant l’agent à fonctionner lui aussi avec efficacité en tokens. Ils doivent être présentés sous une forme facile à comprendre pour le LLM, avec un minimum de chevauchement fonctionnel entre eux.
- L’erreur la plus fréquente consiste à faire couvrir trop de fonctions par un seul outil, ou à créer une situation où le LLM a du mal à décider quel outil utiliser. Si un ingénieur humain a du mal à savoir quoi utiliser et quand, ce sera également difficile pour un agent IA.
- Le few-shot prompting avec des exemples est toujours fortement recommandé. En revanche, inclure trop de cas limites réduit la généralité. Mieux vaut intégrer divers exemples montrant avec soin le comportement attendu.
Extraction de contexte et recherche agentique
- Un agent est une entité qui exécute des outils de façon autonome dans une boucle pour atteindre un objectif. Plus le modèle devient puissant, plus on peut accorder d’autorité (d’autonomie) à l’agent.
- Avec l’évolution des approches agentiques, on voit de plus en plus de stratégies consistant à fournir le contexte en JIT (Just in Time). Claude Code l’utilise très bien : il repère les chemins de fichiers et liens présents dans le prompt et va les récupérer sur le moment.
- Pour charger un bon contexte en JIT, il faut dès le départ stocker l’information dans une bonne structure. Cela inclut aussi la réflexion sur les métadonnées à conserver pour faciliter l’extraction. La structure des dossiers, les conventions de nommage, les horodatages et d’autres signaux importants et significatifs pour les humains aident aussi grandement les agents à exploiter l’information.
Ingénierie de contexte pour les tâches de longue durée (long-horizon tasks)
Les tâches longues dépassent généralement sans difficulté la fenêtre de contexte d’un LLM. Il devient donc essentiel de faire en sorte que l’agent conserve un bon contexte tout en progressant régulièrement vers l’objectif.
Selon la nature de la tâche, on peut utiliser trois grandes techniques.
- La compression est utile pour maintenir le fil de la conversation dans les tâches exigeant des échanges bilatéraux étendus.
- La prise de notes structurée convient bien au développement itératif de tâches avec des jalons clairs.
- L’architecture à sous-agents est adaptée aux recherches et analyses complexes où l’exploration parallèle est efficace.
1) Compression
- Lorsqu’on approche de la limite de la fenêtre de contexte, il s’agit de résumer le contenu important pour le transmettre à une nouvelle fenêtre. Dans Claude Code, on transmet l’historique des messages pour en produire un résumé : décisions d’architecture, bugs non résolus, détails d’implémentation, etc.
- Toute la subtilité de la compression réside dans le choix de ce qu’il faut garder ou jeter. Les éléments les plus faciles à éliminer sont généralement les appels d’outils et leurs résultats. S’ils figurent déjà dans l’historique des messages, il est rarement nécessaire de les conserver.
- Depuis Sonnet 4.5, le memory tool permet le Context Editing : https://www.anthropic.com/news/context-management
2) Prise de notes structurée
- On parle aussi de mémoire agentique. Cette technique consiste à laisser régulièrement des notes hors de la fenêtre de contexte, c’est-à-dire dans le système de fichiers, puis à les récupérer plus tard.
- Là aussi, depuis Sonnet 4.5, le memory tool rend cette technique plus facile à utiliser.
3) Architecture à sous-agents
- L’agent principal planifie et coordonne à haut niveau, tandis que les sous-agents effectuent des travaux techniques approfondis ou utilisent des tools pour trouver les informations pertinentes.
- Voir l’article décrivant comment a été construit un système de recherche multi-agents.
Conclusion
- À mesure que les modèles gagnent en puissance, il ne suffit plus de bien écrire les prompts : il devient essentiel de sélectionner, à chaque étape, quelles informations doivent entrer dans le « budget d’attention ».
- Qu’il s’agisse d’implémenter la compression pour des tâches de long terme, de concevoir des outils efficaces en tokens ou de permettre à un agent d’explorer son environnement au bon moment, le principe directeur reste le même : trouver le plus petit ensemble de tokens à fort signal qui maximise la probabilité du résultat souhaité.
- Les techniques présentées dans cet article continueront d’évoluer avec l’amélioration des modèles et des agents plus autonomes, mais l’idée selon laquelle « le contexte est une ressource précieuse et finie » restera au cœur de la construction d’agents fiables et efficaces.
- Pour aller plus loin, consultez le cookbook sur la mémoire et la gestion du contexte.
Aucun commentaire pour le moment.