Skip to main content

Au-delà de la fenêtre de contexte : pourquoi les compagnons IA perdent le fil

La plupart des compagnons IA commencent avec précision, puis deviennent flous. Ce n'est pas le modèle qui se désintéresse : c'est la conversation qui sort peu à peu de la fenêtre où il peut la voir.

A line of glowing manuscript pages leads through a dark archive hall to a framed portrait of a woman, while the other pages dissolve into ash.

L'illusion de la mémoire

La première heure passée avec un compagnon IA classique a quelque chose d'étrange. Il reprend le fil, se souvient du prénom de votre sœur, revient sur la dispute qui a eu lieu deux scènes plus tôt. On a l'impression d'être vraiment connu.

Puis, aux alentours du trentième message, il commence à dériver. Il vous demande quelque chose auquel vous avez déjà répondu. Un personnage qui a quitté la pièce se remet soudain à parler. La blessure d'hier a guéri sans que personne ne la soigne.

Rien n'a cassé. Vous avez simplement atteint la limite de ce que le modèle pouvait voir.

Un modèle de langage n'a pas de mémoire d'un appel à l'autre. Chaque échange est une nouvelle requête qui emporte avec elle toute la conversation, et cette requête a une taille maximale : la fenêtre de contexte. Dès qu'on la dépasse, les éléments les plus anciens sont supprimés. Vos premières scènes tombent par l'arrière et, du point de vue du modèle, elles n'ont jamais existé.

À quoi ressemble vraiment l'érosion du contexte

Dans la plupart des applications de compagnons IA, la défaillance est rarement spectaculaire. C'est une perte progressive de précision, ce qui explique pourquoi on accuse si facilement le modèle d'être « paresseux ».

  • Les noms se brouillent. Deux personnages secondaires se fondent en un seul, ou un même nom est attribué à quelqu'un de nouveau.
  • Les promesses s'évaporent. Un personnage qui avait juré de vous retrouver au port n'a plus la moindre idée de ce dont vous parlez.
  • Les enjeux retombent à zéro. La dette, la blessure, le secret que quelqu'un dissimule — l'intrigue revient doucement à l'état neutre.
  • Les faits établis s'inversent. Un personnage qui ne sait pas nager va se baigner.

Pris séparément, chacun de ces ratés prête à hausser les épaules. Ensemble, ils font la différence entre une histoire et une suite de scènes agréables mais sans lien — et expliquent pourquoi les longues parties de roleplay s'essoufflent si souvent au lieu de s'achever.

Quatre façons de retenir le passé

Quatre approches sont utilisées aujourd'hui, et chacune cède à un endroit différent.

ApprocheComment elle conserve le passéSon point de rupture
Fenêtre glissanteLes N derniers messages, mot pour motTout ce qui est plus ancien disparaît. Souvenir parfait à l'intérieur de la fenêtre, amnésie totale au-delà.
Fenêtre très largeDes dizaines ou des centaines de milliers de tokens, mot pour motLe coût et la latence augmentent à chaque échange, tandis que l'attention se dilue au milieu d'un long contexte : le modèle peut voir un détail sans lui accorder de poids.
Recherche vectorielle (RAG)Les anciens messages sont transformés en vecteurs, puis recherchés par similaritéElle renvoie un texte qui semble pertinent. Elle ne sait pas ce qui est vrai à l'instant présent : un fait et sa correction ultérieure paraissent tout aussi valables.
État structuré de l'histoireLes faits, personnages, relations et événements sont consignés au fil de l'actionSa maintenance demande un vrai travail et sa qualité ne dépasse jamais celle de ce qui est consigné : ce qui n'est pas enregistré est perdu.

Je voulais un monde qui note les choses. Quand elle se souvient de votre troisième soirée ensemble, c'est parce qu'elle l'a vraiment vécue avec vous.

Fondateur, projectDigo

Pourquoi une fenêtre plus grande ne suffit pas

La solution évidente consiste à agrandir considérablement la fenêtre. C'est aussi la plus coûteuse, et elle ne produit pas le résultat espéré.

L'intégralité du contexte est renvoyée et relue à chaque échange. Une conversation qui contient cent mille tokens d'historique les refacture donc à chaque message — et vous fait attendre davantage chaque réponse. Pire encore, un modèle qui lit un contexte très long ne le parcourt pas de manière uniforme : ce que votre personnage a dit quarante scènes plus tôt peut être techniquement présent, mais pratiquement invisible.

Une grande fenêtre achète du temps. Elle ne change pas la nature du problème, car le problème n'est pas la capacité : c'est l'absence de décision sur ce qui compte.

Ce que nous faisons à la place

projectDigo conserve une trace de l'histoire.

Ce qui compte — qui existe, ce qui s'est passé entre les personnages, ce qui est vrai maintenant — est conservé dans l'état propre de l'histoire, au lieu d'être abandonné à une conversation qui finira par sortir du champ. Les scènes suivantes sont écrites à partir de cet état. La scène quatre cents sait ce que la scène trois a établi, parce que la scène trois a été consignée et pas seulement prononcée.

La façon dont ce relevé est constitué, mis à jour et réutilisé est la partie à laquelle nous avons consacré le plus de temps — et celle que nous gardons pour nous. Ce qu'il permet est en revanche très simple : une continuité qui tient, quelle que soit la durée de la partie.

Le vrai compromis

Ce n'est pas gratuit. Tenir un relevé demande plus de travail par scène que de faire suivre une transcription, et une histoire ne peut se souvenir que de ce qui méritait d'être consigné : tout oubli est perdu aussi sûrement qu'avec une fenêtre glissante.

En échange, l'histoire s'enrichit. Au bout de dix heures, le monde possède un passé que vous pouvez montrer du doigt, et les personnages se comportent comme des gens qui l'ont réellement vécu.

Les questions qu'on nous pose

Pourquoi ne pas utiliser simplement un modèle avec une fenêtre de contexte d'un million de tokens ?

Parce que vous payez l'intégralité du contexte à chaque échange, en argent comme en latence, et que l'attention se dilue au milieu d'un contexte très long : un détail peut être présent tout en étant pratiquement ignoré. Une grande fenêtre repousse l'érosion du contexte, mais ne la supprime pas.

Est-ce la même chose que le RAG ?

C'est lié, mais ce n'est pas la même chose. La recherche retrouve des passages qui ressemblent à la requête, ce qui est utile pour consulter des informations mais peu fiable pour savoir ce qui est vrai maintenant : un fait et sa correction ultérieure ressemblent tous deux à de bonnes correspondances. Un relevé d'histoire conserve un état — ce qui est vrai à présent — plutôt qu'un texte aux formulations similaires.

Jusqu'où un personnage peut-il réellement se souvenir ?

Dans projectDigo, jusqu'au début de la session. Ce qui persiste, c'est l'état de l'histoire plutôt que la formulation de chaque message : la mémoire ne se dégrade donc pas à mesure que la session s'allonge.

Le modèle peut-il contredire ses propres souvenirs ?

Oui — c'est pourquoi projectDigo vérifie la cohérence avant qu'une scène ne vous parvienne. Le plus souvent, la correction s'effectue sans que vous la voyiez. Rien ne détecte tout, mais la défaillance devient un accroc occasionnel plutôt qu'une dérive permanente.

← Tous les articles