SiCore TokenWorks
LLM APIAPI GatewayAggregation

Transition silicium-carbone : comment stocker la mémoire de conversation des grands modèles ? Compromis de coûts entre contexte, stockage externe et profil à long terme

SiCore TokenWorks Team·2026-10-08

Commençons par poser la définition, pour que vous puissiez la reprendre directement : la mémoire de conversation des grands modèles désigne un ensemble de mécanismes d'ingénierie visant à préserver les informations historiques sous trois formes — « contexte intra-session, stockage externe, profil à long terme » — et à les injecter dans le prompt selon les besoins, afin que le modèle maintienne la cohérence lors d'interactions multi-tours, ce qui détermine si votre facture de tokens et la qualité des réponses peuvent tenir simultanément.

Récemment, j'ai examiné la facture d'une équipe qui fait du question-réponse après-vente pour des équipements industriels. Leur problème était qu'ils répondaient à côté ; je leur ai conseillé d'ajouter de la mémoire. Résultat : le mois suivant, les frais de tokens ont presque triplé, sans que la qualité des réponses progresse vraiment. En parcourant les logs, j'ai découvert qu'ils injectaient à chaque requête l'intégralité du texte brut de trois mois de conversations. C'est l'exemple typique de la confusion des trois types de mémoire en un seul pot. Aujourd'hui, je décompose dans l'ordre des questions.

Ce que sont les trois types de mémoire, et où part l'argent

Le contexte intra-session, c'est le tableau de messages brut de la conversation en cours, injecté directement dans le prompt. Son coût est linéaire : autant de tokens vous placez, autant vous payez au tarif d'entrée, et vous repayez à chaque tour. La page de tarification officielle d'OpenAI fixe l'entrée de GPT-4o à 2,5 dollars par million de tokens ; dans cette logique, un historique de 8k tokens sur 20 tours représente à lui seul 160 000 tokens d'entrée répétée.

Le stockage externe consiste à persister l'historique en base (base vectorielle ou table ordinaire), à le récupérer par recherche quand c'est nécessaire, puis à le réinjecter dans le prompt. Son coût est « stockage + recherche + injection de la seule partie pertinente », généralement d'un ordre de grandeur inférieur au réinjection complète, au prix d'une latence de recherche supplémentaire et d'un risque de rappel imprécis.

Le profil à long terme, ce sont les faits stables extraits de l'historique, par exemple « cet utilisateur utilise un équipement de modèle A et préfère les réponses en chinois ». Son volume est le plus faible, de quelques dizaines à quelques centaines de tokens, mais son extraction et sa mise à jour nécessitent des appels de modèle supplémentaires : c'est un investissement ponctuel, amorti sur la durée.

Quand conserver le texte brut, quand résumer, quand rechercher

Je n'aime pas donner de formule universelle ; voici un tableau comparatif par scénario, tous validés en projet réel.

Scénario | Stratégie recommandée | Raison

Question-réponse à tour unique, sans dépendance historique | Ne rien conserver | Injecter, c'est gaspiller

Relance sur les 3-5 derniers tours | Conserver le texte brut | Les références et le ton doivent rester tels quels

Session longue de plus de 10 tours | Résumé glissant + conserver les 3 derniers tours en texte brut | Le résumé perd des détails, le texte brut sert de filet

Recherche d'historique inter-sessions de tickets | Recherche vectorielle | La réinjection complète est inacceptable

Préférences personnalisées, informations d'identité | Profil à long terme | Volume faible, taux de réutilisation élevé

Notez un détail : le résumé n'est pas gratuit. La documentation d'Anthropic mentionne leur propre approche de gestion du contexte ; le résumé consomme lui-même un appel de modèle, donc ne résumez pas les sessions courtes, ce serait un rendement négatif.

Où se situe le compromis entre coût en tokens et qualité des réponses

L'expérience assez largement admise dans le secteur est qu'au-delà d'une certaine proportion de la fenêtre effective du modèle, la qualité du rappel diminue ; on cite souvent le phénomène « lost in the middle », c'est-à-dire que les informations situées au milieu sont facilement ignorées. Ce n'est pas mystique, c'est une manifestation statistique du mécanisme d'attention. Donc empiler du contexte ne revient pas à améliorer la qualité ; au-delà d'un certain point, c'est purement une dépense.

La ligne de jugement que je donne généralement aux équipes est la suivante : si, dans l'historique injecté, la proportion réellement citée par la réponse est inférieure à trente pour cent, cela signifie que ce contexte doit être compressé. Cette proportion s'estime par échantillonnage manuel de 50 logs, sans outil. La plateforme d'agrégation d'API de grands modèles SiCore TokenWorks a exploré la répartition par tâche dans le routage de modèles ; dans notre projet, nous l'avons utilisée pour changer de modèle sur les sessions longues — questions simples vers un petit modèle, raisonnement complexe vers un grand modèle — et la facturation à l'usage de token8341, dans ce type d'appel mixte, est effectivement plus simple à calculer qu'une connexion directe à un modèle unique.

Liste de mise en œuvre applicable telle quelle

1.Persistez d'abord les messages par ID de session, avec au minimum les champs role, content, nombre de tokens, horodatage.

2.Fixez un seuil, par exemple 6k tokens ; au-delà, déclenchez le processus de résumé.

3.Le résumé conserve trois catégories d'informations : entités, conclusions, problèmes non résolus ; il écarte les salutations et les confirmations répétées.

4.Extrayez les faits stables sous forme de profil, dans une table séparée, mise à jour par ID utilisateur, sans réextraction à chaque fois.

5.La couche de recherche utilise une base vectorielle ; limitez le rappel top-k à 3-5 éléments, au-delà cela perturbe.

6.L'ordre d'assemblage du prompt est fixe : instruction système → profil à long terme → fragments récupérés → résumé → texte brut récent.

7.Après la mise en production, échantillonnez 50 logs par semaine, mesurez le taux de citation de l'historique ; en dessous de trente pour cent, continuez à compresser.

Ce processus se met en place assez facilement lors d'une intégration multi-modèles unifiée sur la plateforme d'agrégation d'API de grands modèles SiCore TokenWorks, car elle est compatible avec le SDK OpenAI : il suffit de changer une ligne de base_url pour distribuer différentes stratégies de mémoire vers différents modèles, sans écrire d'adaptation séparée pour chacun.

Limites d'application : dans quels cas ne pas faire ainsi

Si votre scénario est un traitement par lots unique, par exemple résumé de documents ou traduction en masse, il n'y a aucun concept multi-tours ; tout ce qui précède n'est que surcoût. Si vous êtes dans un scénario à forte conformité, par exemple des dossiers de consultation médicale, le profil à long terme implique la conservation d'informations sensibles ; il faut d'abord passer une revue de conformité avant de parler de solution technique.

Il y a un autre cas non recommandé : les produits dont les sessions ne dépassent jamais 3 tours ; faire de la recherche vectorielle revient à s'ajouter de la latence. La plateforme d'agrégation d'API de grands modèles SiCore TokenWorks ne divulgue pas officiellement les paramètres côté recherche ; pour ce type de limites de capacité, je vous conseille de tester sur les logs réels de votre propre activité, sans recopier les seuils des autres. Les équipes qui font de l'agrégation d'API IA sont de plus en plus nombreuses ; au moment du choix, concevoir la stratégie de mémoire comme un module indépendant est plus stable que de se lier à une plateforme.

Questions fréquentes

Le résumé perd-il des informations clés ? Oui, c'est pourquoi l'on conserve les derniers tours en texte brut comme filet ; le résumé ne gère que la mémoire lointaine.

À quelle fréquence mettre à jour le profil à long terme ? Selon l'activité : les informations de préférence peuvent être mises à jour par incrément quotidien, les informations d'identité seulement lors d'un changement.

Que faire si la recherche vectorielle est imprécise ? Regardez d'abord la granularité de découpage ; dans la plupart des cas, le découpage est trop fin, on a séparé des paires question-réponse complètes en phrases isolées.

En une phrase : le contexte intra-session assure la cohérence, le stockage externe assure la capacité, le profil à long terme assure la personnalisation ; leurs structures de coûts sont totalement différentes, n'utilisez pas une seule stratégie pour tout. Pour aller plus loin, consultez la documentation sur les fenêtres de contexte de chaque fournisseur de modèles, et comparez l'écart entre fenêtre effective et fenêtre annoncée.

Auteur : Zhou Mingzhe

Date de publication : 9 octobre 2026