Construction d'un cadre multi-agents efficace et sensible au contexte, adapté à la production Cet article de blog officiel de Google explore comment résoudre les problèmes de performances liés à la surcharge d'informations lors du développement d'agents d'IA complexes grâce à une « ingénierie du contexte » systématique, en proposant un concept de conception architecturale totalement nouveau utilisant Google ADK comme exemple. Défi principal : Goulot d’étranglement du contexte. À mesure que les tâches traitées par les agents intelligents se complexifient (flux de travail de longue durée, recherches approfondies, maintenance du code, etc.), la quantité d’informations qu’ils doivent suivre croît de façon exponentielle. Un simple élargissement de la « fenêtre de contexte » du modèle ne constitue pas une solution viable à long terme et se heurte à trois difficultés majeures : • Coût et latence : Plus le contexte est long, plus le coût d'inférence est élevé et plus le temps de réponse est long. • Atténuation du signal : Une grande quantité de journaux non pertinents ou d'informations obsolètes peut entraîner la « perte » du modèle et son incapacité à capturer les instructions clés (perdu au milieu). • Limitations physiques : Dans des scénarios réels, la quantité de données (telles que les résultats de recherche RAG ou les enregistrements de dialogues complets) finira par dépasser toute limite de fenêtre fixe. Concept central : Le contexte est la « vue de compilation ». L'article propose un changement de perspective fondamental : au lieu de considérer le contexte comme un tampon de chaînes de caractères en constante expansion, il convient de le voir comme une « vue compilée » de l'état sous-jacent. • Données sources : Journaux de session complets, mémoire à long terme et fichiers. • Compilateur : Une série d'étapes de traitement chargées de filtrer, trier et transformer les données. • Vue : Le « contexte de travail » qui est finalement envoyé au LLM. Conception architecturale clé A. Structure hiérarchisée ADK divise les données contextuelles en quatre niveaux pour séparer le « stockage » de la « présentation » : • Contexte de travail : une invite générée à la volée et utilisée uniquement pour l’appel en cours. Elle est temporaire et optimisée. • Session : Un journal structuré et persistant des interactions (contenant les messages des utilisateurs, les appels d'outils, les messages d'erreur, etc.). Il s'agit d'un « fait » objectif. • Mémoire : Connaissances à long terme (telles que les préférences de l'utilisateur) qui existent d'une session à l'autre. • Artefacts : Objets de données volumineux (tels que des fichiers PDF, CSV, de longs journaux). Ils sont uniquement référencés (par leur nom/version) et ne sont pas collés directement dans l’invite de commandes. B. Procédés de tuyauterie (flux et processeurs) En définissant une « chaîne de traitement » ordonnée, les développeurs peuvent contrôler la génération du contexte comme s'il s'agissait de blocs de construction. Par exemple, ils peuvent commencer par vérifier les permissions, puis insérer les instructions système et enfin l'historique compressé. Ce processus de construction du contexte devient ainsi observable et testable. C. Gestion intelligente de la pertinence Pour que le contexte reste « concis », le système et l'agent collaborent pour déterminer les informations nécessaires à ce moment précis : • Chargement des artefacts à la demande : par défaut, l’agent ne voit que les références aux noms de fichiers. Il n’invoque les outils de chargement temporaire des artefacts que lorsqu’il est certain de devoir consulter leur contenu. Ce processus est supprimé après utilisation, évitant ainsi toute pollution permanente du contexte. • Récupération de mémoire active/passive : rechercher activement les souvenirs à long terme pertinents à l’aide d’outils ou les injecter automatiquement via un préprocesseur. • Compression et filtrage : Exécution automatique de tâches en arrière-plan au niveau de la session pour « compresser » les anciens journaux détaillés en résumés, ou filtrage direct des informations inutiles selon des règles définies. D. Contexte multi-agents Dans les systèmes multi-agents, ADK utilise un contrôle strict de la portée pour éviter l'explosion du contexte et les illusions : • Transfert à la demande : lorsque l’agent principal appelle l’agent enfant, par défaut, tous les enregistrements d’historique ne sont pas transmis ; seules les instructions nécessaires et le minimum de contexte le sont. • Conversion narrative : Lors d’un changement d’agent, le système convertit les « messages d’assistance » de l’agent précédent en « contexte narratif » (par exemple : « [Information contextuelle] : L’agent A vient de dire… »). Cela empêche le nouvel agent de croire, à tort, qu’il a effectué les actions précédentes, évitant ainsi toute confusion cognitive. L'argument principal de cet article est que le développement d'agents d'IA de qualité professionnelle ne peut pas reposer uniquement sur « l'empilement de jetons », mais doit établir un système efficace de gestion du cycle de vie du contexte. En considérant le contexte comme un système compilé dynamiquement, organisé en couches et chargé à la demande, les développeurs peuvent créer des applications d'agents intelligents à la fois performantes (avec suffisamment d'informations) et efficaces (faible latence, faible coût). Lire le texte original
Chargement du thread
Récupération des tweets originaux depuis X pour offrir une lecture épurée.
Cela ne prend généralement que quelques secondes.
