NotariumDocumentation
Version de la documentation: latest
FR

Mémoire de l'agent

Dans Notarium, la mémoire de l'agent n'a rien d'une magie cachée ni d'une base à part : ce sont de simples notes de classe agent-memory, que l'agent rédige à partir de ses observations et que vous pouvez lire, corriger et supprimer. L'agent consigne des faits via remember_about_user et remember_about_project, et va chercher du contexte via recall. La discipline essentielle : chercher avant d'écrire, pour ne pas engendrer de doublons.

Deux axes : sur l'utilisateur et sur le projet

La mémoire se déploie sur deux axes orthogonaux :

  • Sur l'utilisateurremember_about_user inscrit des faits pérennes vous concernant (préférences, contexte, travail en cours) dans la mémoire privée de votre domaine personnel. Elle reste la même quel que soit l'espace où vous travaillez — elle ne se mélange pas à chaque espace.
  • Sur le projetremember_about_project inscrit de la mémoire sur un projet précis dans son sous-répertoire. Symétrique à l'écriture sur l'utilisateur, mais rattachée au projet.

Les deux axes reposent sur la classe agent-memory. L'agent ne choisit ni la classe, ni le dossier, ni l'espace : c'est l'outil lui-même qui impose tout cela. La connaissance partagée, qui doit vivre dans l'arborescence du projet en tant que user-doc, est écrite par un outil distinct, create_note, et non par « remember ».

Un fichier par catégorie, pas un fichier par observation

remember_about_user(observation, category) ajoute l'observation au fichier de la catégorie au lieu d'engendrer un micro-fichier pour chaque fait. category est une étiquette (« preferences »), pas un chemin. Une nouvelle catégorie, c'est un nouveau fichier. Le summary optionnel est un condensé d'une ligne de la catégorie, qui alimente l'index dérivé du profil.

Corriger ou supprimer un seul fait consigné, c'est simplement éditer une note ordinaire : edit_note par l'id de la note de mémoire (retourné par remember_*) en mode findReplace (un content vide retire l'extrait) ou en mode replace pour toute la catégorie. Il n'existe pas d'« adressage par observation » distinct — la mémoire s'édite avec les mêmes modes fondés sur les mots que n'importe quelle note.

Les deux outils lisent, mais résolvent des problèmes différents :

searchrecall
Ce qu'il renvoiedes extraits classés avec score et pathun bloc de contexte cohérent tenant dans un budget de tokens
Portéeles notes pertinentesles notes pertinentes plus leurs voisines dans le graphe (depth sauts à travers le graphe)
Mémoirevoit la mémoire (pour la déduplication)puise dans la connaissance et dans la mémoire personnelle
Quand l'appelertrouver quelque chose de précis, vérifier avant d'écrireassembler du contexte autour d'un sujet à traiter

recall est plus riche : il parcourt le graphe autour de ce qu'il a trouvé et compose le résultat dans la limite de budgetTokens, tandis que maxPerSource empêche une note volumineuse de dévorer tout le bloc. search est précis : c'est le mécanisme même derrière « chercher avant d'écrire ».

Chercher avant d'écrire

La mémoire est la seule classe sans protection contre les doublons fondée sur le titre ; c'est pourquoi search couvre délibérément aussi la mémoire de l'agent. Cherchez toujours avant d'écrire : cela déduplique à la fois la connaissance et la mémoire.

La discipline de déduplication

Avant remember_*, appelez search sur le sujet du fait. Si la catégorie existe déjà, ajoutez-y via ce même remember_* (il ajoute) ou corrigez-la avec edit_note, au lieu de créer un synonyme.

Ce que voit le propriétaire

La mémoire est masquée de la navigation ordinaire (l'arborescence, le Fil, la recherche courante), mais elle ne vous est pas cachée : elle apparaît via une vue Memory dédiée dans l'arborescence de l'explorateur (les notes s'ouvrent comme n'importe quelle autre, à l'adresse /m/<id>), et vous pouvez mettre une catégorie en sourdine dans Agents → Context. L'entrée du journal des révisions montre exactement ce que l'agent a consigné — c'est ainsi que vous repérez ce qu'une injection aurait pu y glisser. Vous ne pouvez pas réorganiser la mémoire : la section appartient à l'agent (un ensemble plat plus un index dérivé), mais la déplacer est techniquement sans risque — l'identité tient à l'id de la note.

Pour aller plus loin