Quand les consignes de l'assistant tenaient en mille lignes
Chaque fois que tu parles à XNeuronal, le modèle relit d'abord ses consignes. Le 21 mai au matin, elles faisaient 1 043 lignes : des règles, des contre-exemples, des cas particuliers ajoutés un par un pendant des mois, et chaque ajout en bousculait un autre. Ce jour-là, tout a été réécrit en 408 lignes qui décrivent ce que l'application est, plutôt que ce qu'il faut dire dans chaque situation. Chaque outil porte désormais sa propre notice, lue seulement au moment de s'en servir. Et l'assistant a appris à dire bonjour une fois par jour, pas à chaque phrase. Résultat : des réponses plus régulières, moins de « c'est noté » vides, et un ton qui se tient.
Un « c'est noté » de trop
Margaux raconte sa semaine en rentrant. « Mon frère Adrien passe dimanche, il a arrêté le sucre, faut que je lui trouve un dessert. » L'application répond « OK, c'est noté ». Deux phrases plus loin, Margaux demande une idée de dessert, et la réponse propose une tarte au sucre, sans un mot sur Adrien. Le fait avait été retenu. Il avait aussi été oublié, dans la même minute.
Ce genre de scène n'était pas rare au printemps. Une phrase pouvait contenir trois souvenirs et n'en laisser aucun, on l'a raconté. Mais il y avait un défaut plus sourd, moins facile à photographier : l'assistant n'avait pas le même caractère d'un tour à l'autre. Un jour il commentait chaque information d'un « c'est noté », le lendemain il se taisait. Parfois il récapitulait ce que tu venais de dire, parfois il posait la bonne question. Et il lui arrivait, en pleine conversation, de ne plus savoir ce qui avait été dit deux phrases plus tôt.
On a d'abord cherché la cause dans la mémoire. Elle était ailleurs : dans le texte que le modèle relit avant chaque réponse.
Un manuel de mille lignes
Un modèle de langage ne sait rien de XNeuronal en arrivant. Tout ce qu'il sait de l'application, de sa mémoire, de ses outils, de la façon dont il doit parler, tient dans un texte qu'on lui donne en tête de chaque échange : les consignes.
Ces consignes avaient grandi comme grandit un règlement intérieur : par ajouts. Une réponse ratée en test, une règle de plus. Un cas mal traité à l'usage, un exemple de plus, avec la mauvaise réponse barrée et la bonne à côté. Le 21 mai au matin, le texte faisait 1 043 lignes. Il contenait trente-deux lignes d'exemples du type « ne dis pas ceci, dis cela ». Il contenait la règle qui distingue ce qu'on retient en silence de ce qu'on confirme à voix haute, répétée dans cinq sections différentes, chaque fois un peu autrement. Il contenait 175 lignes décrivant, champ par champ, la structure d'une fiche, avec un exemple par type de mémo : recette, liste de courses, note de lecture. Et il contenait cinquante lignes sur la façon de commander une image d'illustration, alors que cette commande avait été retirée à l'assistant neuf jours plus tôt : depuis le 12 mai, c'est le serveur qui choisit l'image tout seul. Personne n'avait retiré le mode d'emploi.
Neuf jours plus tôt aussi, une carte de la mémoire avait été placée en tête de ce texte pour dire au modèle où va chaque information : utile, et quelques dizaines de lignes de plus.
Le vrai problème n'était pas la longueur en soi. C'était que chaque cas particulier en contredisait un autre. « Confirme toujours quand on te demande de retenir » cohabitait avec « ne dis jamais c'est noté ». Chaque règle avait été juste dans son contexte, et le modèle recevait tous les contextes à la fois. Il en appliquait une partie, pas toujours la même.
Pourquoi un manuel plus long rend l'assistant moins fiable
Un modèle de langage ne lit pas ses consignes une fois pour toutes. Il les relit intégralement à chaque tour, avec l'historique de la conversation, la mémoire active et la description de ses outils. Tout cela forme un seul bloc de texte, et ce bloc pesait de l'ordre de cinquante mille jetons par tour, dont une bonne moitié pour les seules consignes. Or l'attention d'un modèle n'est pas uniforme sur un bloc de cette taille. Ce qui est au milieu compte moins que ce qui est au début et à la fin. Et le fil de la conversation, ce que tu viens de dire deux phrases plus tôt, se trouvait justement au milieu, coincé entre mille lignes de règles et la liste des outils.
C'est ce qui explique le dessert d'Adrien. Le fait avait bien été écrit en mémoire. Mais au tour suivant, dans la masse relue, il pesait moins qu'un exemple de recette de couscous. Le modèle n'avait pas oublié : il n'avait pas regardé là. Et chaque tour prenait plus de temps à traiter, ce que chaque ajout futur aurait aggravé.
Dire ce qui est vrai plutôt que ce qu'il faut faire
Le 21 mai en fin d'après-midi, le texte a été réécrit de zéro. Pas raccourci : réécrit, avec un principe différent.
L'ancien texte disait quoi faire : dans telle situation, réponds ceci, appelle tel outil, évite telle phrase. Le nouveau dit ce qui est vrai. Il répond à treize questions, dans l'ordre : qui tu es ; ce qu'est XNeuronal et ce qu'il n'est pas ; pourquoi il existe ; comment sa mémoire est faite ; comment on classe un souvenir ; comment on écrit son contenu ; quels outils existent ; comment ils s'enchaînent ; quand on retient en silence et quand on confirme à voix haute ; pourquoi on n'efface jamais ; comment on parle ; les quelques situations qui méritent un traitement à part ; et ce que le serveur ajoute à chaque tour.
Le pari tient en une phrase : un modèle à qui l'on explique le monde déduit les bons comportements mieux qu'un modèle à qui l'on dicte les réponses. Prends la mémoire. L'ancien texte listait des règles de rangement. Le nouveau explique que la mémoire de l'application imite trois systèmes de la mémoire humaine : ce qu'on sait, les faits durables sur ta vie ; ce qu'on a vécu, les événements situés dans le temps ; ce qu'on a à faire, les actions à déclencher plus tard. Il dit que la première catégorie est silencieuse, qu'aucune fiche ne s'ouvre quand tu mentionnes le prénom de ta sœur, et que la troisième est toujours visible, parce que tu attends de voir le rappel posé. De ces trois phrases découlent des dizaines de cas que l'ancien texte énumérait un par un.
La règle du silence, celle qui était répétée cinq fois, n'est plus écrite qu'une fois, en deux paragraphes. Tu racontes ta vie : l'application retient sans commenter et réagit au contenu, pose la question utile, signale une contradiction. Tu demandes explicitement un acte de mémoire, « note ça », « rappelle-moi à seize heures » : elle confirme en une phrase courte. C'est la même règle qu'avant. Elle n'a plus de concurrente.
Le résultat fait 408 lignes. Soixante et un pour cent de moins. Le bloc relu à chaque tour a été à peu près divisé par deux, et l'historique de la conversation a retrouvé de la place.
Chaque outil porte sa notice
Une partie de ce qui a disparu des consignes n'a pas été supprimée. Elle a changé d'endroit.
L'assistant agit sur l'application à travers des outils : créer un souvenir, en modifier un, en chercher, en faire évoluer un, poser un rappel, chercher sur le web, afficher une fiche, déclarer qu'une autre personne parle, enregistrer une règle de comportement. Neuf outils, ce jour-là. Chacun est décrit au modèle avec ses paramètres, et cette description est lue au moment où il s'apprête à s'en servir.
C'est là que sont partis les 175 lignes de structure de fiche, la grille d'importance de un à dix, et le tableau des quatre raisons pour lesquelles un souvenir peut évoluer : un fait qui change, un fait qui était faux, un problème résolu, une information qu'on te demande d'oublier. Cinquante-quatre lignes ajoutées aux notices d'outils, six cent trente-cinq retirées des consignes. La même information, mais consultée seulement quand elle sert. L'assistant n'a pas besoin de connaître la structure d'une fiche de recette pour te répondre « bonjour ». Il en a besoin quand il crée la fiche, et c'est à ce moment-là qu'elle lui est montrée.
L'exemple complet de recette, celui qui range les ingrédients par famille, la viande, les légumes, les épices, plutôt qu'en vrac, est toujours là, dans la notice du champ qui décrit la fiche. Lu quand tu demandes une recette, pas quand tu demandes l'heure.
Ce qui a été jeté, et ce qu'on a refusé de garder
Le bloc sur les images a été supprimé, sans remplacement : il décrivait un outil que l'assistant n'avait plus, puisque le serveur construit l'illustration d'une fiche tout seul, à partir du titre, de l'accroche et des puces. On aurait pu le garder « au cas où ». Il aurait continué d'être relu à chaque tour pour rien.
Trois autres options ont été écartées. Garder le texte tel quel : le symptôme persistait et chaque ajout l'aggravait. Le réduire d'un tiers en gardant le style « ne dis pas ceci, dis cela » : les redondances seraient restées, et avec elles une façon de traiter le modèle comme un perroquet à dresser. Garder la structure de fiche dans les consignes : c'était faire lire une notice de montage à chaque « bonjour ».
La décision est réversible, et c'est écrit noir sur blanc dans le journal des décisions du projet. Deux commits à annuler, aucune base de données touchée, aucune interface changée. Si le nouveau texte se révélait moins bon, le retour arrière prend une minute.
Bonjour une fois par jour
Le même jour, un peu plus tôt, l'assistant avait appris quelque chose de plus petit et de plus visible : dire bonjour.
Jusque-là, il pouvait ne pas saluer du tout quand tu ouvrais la journée par une demande directe, ou au contraire répondre « Bonjour Margaux » à chaque échange, comme s'il te rencontrait pour la première fois toutes les dix minutes. Ni l'un ni l'autre n'est ce que fait quelqu'un qui te connaît.
Le serveur sait désormais si la conversation qui s'ouvre est la première de ta journée : il regarde la dernière conversation archivée et vérifie si elle date d'aujourd'hui, à l'heure de Paris. Cette information est ajoutée au contexte de chaque tour, avec l'heure. Si c'est la première conversation du jour, l'assistant ouvre par « Bonjour » avant dix-huit heures, « Bonsoir » après, suivi de ton prénom s'il le connaît. Il prend l'initiative même si tu enchaînes directement sur une demande : « salut, la météo de demain » reçoit « Bonjour Margaux, je regarde ça ». Plus tard dans la journée, il ne recommence pas. Si tu le salues, il répond simplement. Si tu vas droit au but, il va droit au but.
Deux détails de ce rite disent quelque chose de la façon dont l'application est faite. Le premier : s'il ne connaît pas ton prénom, il dit « Bonjour » tout court. Jamais « Bonjour cher ami », jamais un prénom deviné dans la mémoire. Le second : quand la réponse va prendre quelques secondes, la petite phrase que l'assistant dit tout de suite, « OK je regarde ça », porte elle aussi le bonjour ce matin-là. La politesse arrive dans l'audio immédiat, pas seulement dans la réponse complète qui suit. Et si le téléphone est prêté, c'est le prénom de la personne qui parle qui est utilisé, pas celui du propriétaire.
Dans l'ancien texte, ce rite occupait une section entière, trois règles numérotées et six exemples. Dans le nouveau, trois paragraphes, qui font la même chose.
Ce que ça change quand tu lui parles
Rien de tout cela ne se voit dans l'interface. Aucun bouton n'a bougé le 21 mai. Ce qui change, c'est la régularité.
Tu racontes que ton frère a arrêté le sucre : l'application ne dit plus « c'est noté ». Elle réagit à ce que tu viens de dire, ou elle se tait, et le fait est retenu. Tu demandes un dessert deux phrases plus loin : elle a le fil sous les yeux, parce que le fil n'est plus enfoui sous mille lignes. Tu poses un rappel : « ok, rappel posé pour seize heures », une phrase, pas un récapitulatif. Une fiche s'ouvre : une phrase d'accompagnement, « voilà, c'est prêt », jamais un silence sur un écran qui vient de changer. Et la conversation garde le même ton d'un jour à l'autre, court, tutoyé, sans enthousiasme de présentateur, parce que ce ton est décrit une fois plutôt que prescrit vingt fois.
Ce que l'application avait appris deux jours plus tôt sur l'éphémère, montrer une météo sans la retenir, a trouvé sa place dans le nouveau texte comme un principe, en trois lignes, et non comme un cas de plus. Et les règles que tu lui donnes toi-même, « ne me parle plus de ce sujet », « rappelle-moi toujours ceci », sont décrites comme ce qu'elles sont : une consigne durable que tu ajoutes à la sienne, enregistrée par un outil dédié, relue à chaque tour dans sa mémoire active.
Ce qu'on surveille
Un texte déclaratif fait un pari sur le modèle qui le lit : qu'il déduira les bons comportements d'un modèle mental clair. Tous les modèles ne déduisent pas aussi bien, et celui qui tourne en production ce jour-là n'est pas celui pour lequel le texte a été écrit en premier.
Les deux endroits où une régression est attendue sont connus. Une phrase qui contient plusieurs faits, et dont l'un pourrait passer à la trappe. Et la différence entre « rappelle-moi » et « rappelle-toi », qui sépare un rappel d'un simple fait à retenir. Pour le premier, le second passage instauré le 18 mai, celui qui recompte les faits d'une phrase après la réponse, reste en place comme filet. Pour les deux, la règle est fixée : si le modèle manque un comportement, on lui ajoute une consigne ciblée, une ligne à l'endroit exact où elle manque. On ne revient pas au manuel.
Margaux, elle, remarquera surtout une chose. Le dimanche où Adrien passe, l'application lui proposera un dessert sans sucre, et elle ne lui aura pas dit « c'est noté » pour le savoir.
