À suivreGuide suivant
Gestion et fragmentation de la mémoire GPU
Technique
GUIDE Technique
La gestion de l'historique des conversations est l'ensemble des techniques qui maintiennent une longue conversation ou une session d'agent sous la limite de contexte d'un modèle.
Les principaux sont la suppression des anciens tours, la synthèse des parties précédentes, le compactage de l'ensemble de l'historique dans un résumé condensé et la suppression des anciens résultats de l'outil. C'est important car un modèle de langage n'a pas de mémoire entre les appels au-delà de ce que l'application renvoie. Une fois que l’histoire dépasse la fenêtre, quelque chose doit être coupé, et ce qui est coupé décide si l’assistant reste cohérent.
La plupart des API de chat sont sans état. Chaque requête renvoie la conversation jusqu'à présent et le modèle la lit à partir de zéro. Les jetons, le coût et la latence augmentent donc à mesure que la session s'allonge, jusqu'à ce que l'historique atteigne la limite de contexte et que la requête échoue ou soit tronquée. La qualité peut chuter même avant ce point, car les détails pertinents sont enfouis parmi les vieux documents. La stratégie la plus simple est la troncature, généralement sous forme de fenêtre glissante : conservez l'invite du système et les tours les plus récents, et supprimez le reste. C'est peu coûteux et prévisible, mais il oublie les premiers faits, tels que les contraintes énoncées par l'utilisateur au début. Une amélioration courante consiste à épingler les messages importants afin qu’ils ne soient jamais supprimés. Le résumé continu remplace les tours plus anciens par un résumé écrit par modèle qui est mis à jour à mesure que la conversation se développe. Il conserve l'essentiel dans beaucoup moins de jetons. Le coût est que les résumés perdent des détails et peuvent introduire des erreurs, et ces erreurs s'aggravent lorsqu'un résumé est lui-même à nouveau résumé. Le compactage est une version plus délibérée utilisée dans les outils d'agent. Lorsque l'utilisation du jeton dépasse un seuil, le système demande au modèle d'écrire un transfert structuré couvrant l'objectif, la progression, les décisions, les problèmes ouverts et les noms de fichiers clés. Il démarre alors un nouveau contexte avec ce transfert ainsi que les tours les plus récents. Claude Code, par exemple, dispose d'une commande compacte et peut également compacter automatiquement près de la limite. La suppression des résultats des outils cible la plus grande source de surcharge dans les sessions d'agent : les résultats volumineux issus des recherches, des lectures de fichiers et des commandes qui étaient utiles autrefois. Les échanger contre de courts espaces réservés libère de l'espace et enregistre toujours l'appel. La mémoire externe stocke les faits dans un fichier ou une base de données et les récupère lorsque cela est pertinent, afin qu'ils survivent à tout découpage. Une idée fausse courante est que le modèle se souvient seul des parties antérieures d’une conversation. Toute continuité provient de ce que l'application choisit de renvoyer ou de récupérer.
Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.
La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.
De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.
Les fournisseurs ont commencé à intégrer la gestion de l’historique dans leurs plateformes. Les fonctionnalités incluent l'état de conversation côté serveur, le compactage automatique et l'édition de contexte qui efface les anciens résultats de l'outil. Cela réduit le passe-partout, mais les développeurs doivent encore décider de ce qui ne doit jamais être oublié. La recherche se poursuit sur des modèles qui utilisent des contextes longs de manière plus fiable et sur des systèmes de mémoire qui stockent et récupèrent des faits au fil des sessions. Le compactage deviendra probablement un comportement par défaut dans les frameworks d'agents, mais le compromis entre détail et espace ne disparaîtra pas. Aucune méthode ne permet de tout garder gratuitement, donc tester ce qui est perdu fera partie du travail.
Un chatbot conserve l'invite du système ainsi que les 20 derniers messages et supprime tout ce qui est plus ancien. C'est bon marché, mais il oublie le nom et le budget donnés par l'utilisateur dans le premier message.
Tous les 10 tours, un modèle plus petit résume la partie la plus ancienne de la conversation en un seul paragraphe qui reste en haut du contexte. Ceci est un résumé glissant.
Un agent de codage proche de ses limites écrit un transfert : l'objectif, les fichiers modifiés, les bugs ouverts et les décisions prises. Il démarre ensuite un nouveau contexte contenant ce transfert et les fichiers les plus récents.
Un agent remplace les résultats de recherche datant de plus de quelques tours par un court espace réservé, tel que « [résultat de recherche Web effacé : 12 résultats] ». Les résultats bruts sont rarement nécessaires une fois que l’agent a agi en conséquence.
L’optimisation d’un benchmark peut masquer des faiblesses plus larges du système.
Les coûts d’infrastructure et de maintenance sont souvent sous-estimés.
Les lacunes en matière de sécurité et d’observabilité peuvent se creuser à mesure que les systèmes deviennent plus complexes.
Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.
Benchmark dans des conditions de charge et de données réalistes.
Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.
Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.
Free newsletter
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
La gestion de l'historique des conversations est l'ensemble des techniques qui maintiennent une longue conversation ou une session d'agent sous la limite de contexte d'un modèle. Les principaux sont la suppression des anciens tours, la synthèse des parties précédentes, le compactage de l'ensemble de l'historique dans un résumé condensé et la suppression des anciens résultats de l'outil. C'est important car un modèle de langage n'a pas de mémoire entre les appels au-delà de ce que l'application renvoie. Une fois que l’histoire dépasse la fenêtre, quelque chose doit être coupé, et ce qui est coupé décide si l’assistant reste cohérent.
Les API sans état traitent l'intégralité de l'historique de chaque appel. À mesure que l’historique s’allonge, les jetons, le coût et la latence de chaque requête augmentent également.
Conserver uniquement les virages récents est peu coûteux et prévisible, mais tout ce qui tombe par la fenêtre disparaît à moins qu'il ne soit épinglé.
Chaque tour de résumé entraîne une perte. Une erreur dans un résumé se répercute dans le suivant, de sorte que les erreurs peuvent s'accumuler au cours d'une longue session.
Compaction condense la session en un brief délibéré et ouvre un nouveau contexte avec elle et les tournants les plus récents. L'agent peut continuer sans l'historique complet.
Les résultats des outils peuvent être très volumineux et ne sont souvent utiles qu’une seule fois. Les échanger contre des espaces réservés libère beaucoup d'espace et conserve une trace de l'appel.
Continuez à apprendre
Plus de guides sélectionnés pour ce sujet
À suivreGuide suivant
Gestion et fragmentation de la mémoire GPU
Technique