Brain : La mémoire d'agent comme wiki de connaissances
Un système de fichiers Markdown structuré, traçable et auto-améliorable, compilé hors ligne et parcouru à la demande.
Les utilisateurs de Computer effectuent un travail s'étalant sur des mois et des centaines de sessions. Dès la dixième session, le système doit être bien plus productif que lors de la première. Il doit accumuler du contexte sur l'utilisateur, ses préférences et le travail déjà accompli.
Par exemple, lorsqu'il est invité à dessiner le diagramme d'un flux de travail précédemment expliqué par l'utilisateur, Computer doit se rappeler les détails et les utiliser pour créer et restituer une figure dans le style préféré de l'utilisateur. L'utilisateur ne devrait pas avoir à réexpliquer les détails du flux de travail ni à réitérer sa préférence pour les artefacts PDF par rapport aux artefacts PNG ; le système doit être capable de récupérer précisément ce contexte à partir des sessions passées et de l'appliquer automatiquement.
La mémoire est le fondement de l'amélioration continue des agents. Un système de mémoire efficace doit être structuré, traçable et adaptable, permettant aux agents de rechercher la bonne amplitude et la bonne profondeur pour chaque tâche tout en ancrant chaque décision dans les informations les plus récentes.
Introduction
Doter les agents d'un contexte pertinent est un problème aux multiples facettes. Premièrement, les agents doivent savoir ce qui existe et comment y accéder. Deuxièmement, lorsqu'ils trouvent une information utile, ils doivent être certains qu'elle est complète, exacte et à jour. Un fait isolé a une valeur limitée à moins que l'agent ne puisse trouver des informations connexes, vérifier qu'elles proviennent d'une source de confiance et s'assurer qu'elles ne nécessitent pas d'être mises à jour avec une observation plus récente.
Insérer des fichiers de mémoire statique directement dans le contexte du modèle maximise l'accessibilité pour les agents, mais présente un compromis classique entre précision et rappel. Trop d'informations satureront la fenêtre de contexte de l'agent avec des éléments d'une pertinence de plus en plus mineure, tandis qu'trop peu dégradera la qualité des réponses en raison d'un manque de contexte pertinent. En revanche, l'accès à la demande à des bases de données externes est plus flexible, mais reporte la charge de la navigation sur l'agent. Les bases de données vectorielles stockent souvent des fragments déconnectés, et les bases de données de graphes exigent que les agents sachent comment interroger efficacement.
Récemment, nous avons introduit Brain, un composant central du système de mémoire de Computer qui offre le meilleur des deux mondes. Brain est un wiki de connaissances structuré qui repose sur des fichiers de mémoire statique et des preuves. Des citations relient les affirmations à leurs sources, et des informations connexes sont connectées latéralement. Le wiki organisé rend le contexte navigable à la demande, tandis que les artefacts détaillés sont conservés dans la couche sous-jacente.

Brain se connecte à un système de mémoire complet doté de trois composants clés : un stockage de mémoire durable, des agents de premier plan qui utilisent la mémoire pour répondre aux requêtes, et des agents d'arrière-plan qui mettent à jour et améliorent la mémoire. La figure suivante représente ces composants situés dans l'architecture globale du système de Brain.

Dans cet article, nous décrivons en détail chaque couche, en expliquant comment Brain organise la mémoire, comment les agents l'utilisent et comment les processus d'arrière-plan la maintiennent à jour. Nous présentons également les résultats d'évaluations internes qui valident la conception de Brain, démontrant qu'il améliore les performances des agents à moindre coût.
Organisation et stockage de la mémoire
La mémoire nécessite une représentation qui s'adapte à l'historique complet d'un utilisateur sans forcer chaque élément de contexte dans l'invite. Le système de mémoire de Computer représente le contexte persistant sous forme de système de fichiers. Brain synthétise les connaissances à partir de sources brutes, en connectant les sujets associés et en rattachant les affirmations aux sessions et aux fichiers qui les prennent en charge. Cette structure, détaillée ci-dessous, nous permet d'organiser la mémoire sous une forme particulièrement bien adaptée aux agents.
Mémoire basée sur le système de fichiers
Les sessions informatiques s'exécutent déjà dans un bac à sable doté d'un système de fichiers, d'un shell et d'utilitaires d'E/S. Lors de la conception de Brain, nous avons voulu introduire le moins de nouveaux mécanismes possible dans l'interface entre le modèle et la mémoire de l'agent. C'est pourquoi nous avons construit Brain sur une couche de contexte native du système de fichiers. La mémoire est matérialisée sous forme de fichiers dans le bac à sable dans un répertoire memory/, et l'agent utilise simplement sur les fichiers de mémoire les mêmes outils que ceux qu'il utilise déjà pour tout le reste.
À la racine de l'arborescence de mémoire se trouvent trois répertoires de haut niveau qui maintiennent le contexte à différents niveaux d'abstraction. knowledge/ est le Brain lui-même, un wiki de connaissances synthétisé qui relie les entités, les concepts, les projets actifs et les apprentissages passés ; notes/ contient des extraits distillés organisés en dossiers thématiques ; et sessions/ détient les index, les résumés et les transcriptions complètes en tant qu'historiques bruts. La figure ci-dessous montre une vue simplifiée de la disposition.

Les surfaces sont délibérément redondantes. Pour les questions simples à un seul saut, il suffit souvent de rechercher des extraits dans /notes pour un mot-clé, tandis que la couche /knowledge est plus utile pour les questions qui nécessitent de relier des preuves sur des semaines ou des mois de sessions Computer.
Brain : le wiki de connaissances
Brain est formaté sous la forme d'un wiki LLM, un système de fichiers Markdown liés. Cette forme de Markdown légèrement structurée offre une vue globale du contexte existant, afin que les agents puissent facilement comprendre quels enregistrements sont disponibles, comment ils sont liés et où les trouver. Chaque page est une vue maintenue d'un sujet ; elle doit rester utile lorsqu'elle est lue seule tout en facilitant une exploration ultérieure grâce à des liens.
Les liens sont de deux types. [[wikilinks]] sont des arêtes de contexte. Ils connectent les pages latéralement ; un projet peut être lié à son propriétaire, son client ou aux concepts dont il dépend. Les suivre répond à la question « que dois-je savoir d'autre ? ». Les références [cite:N] sont des arêtes de preuves. Elles connectent les affirmations vers le bas aux sessions brutes ou aux sources de connecteurs qui les prennent en charge. Les suivre répond à la question « comment puis-je savoir que c'est vrai ? ».
Les figures ci-dessous illustrent à quoi ressemblerait une partie de Brain pour un personnage synthétique, une chercheuse en accessibilité nommée Nadia. Son Brain comprend une page sur un projet exemple, un sprint de conception universelle au Japon, synthétisant les connaissances issues de sessions et de connecteurs. La vue en graphe démontre comment le contexte et les arêtes de preuves présents dans la page relient les entités et les sources associées.


Brain intègre Git pour préserver l'historique des versions, prenant ainsi en charge sa nature en constante évolution. Les pages peuvent être modifiées au fil du temps, tandis que les journaux des modifications enregistrent les mises à jour clés et permettent aux agents d'inspecter facilement les versions antérieures et les différences. Cela prend également en charge la coordination des agents, ce qui est essentiel car plusieurs agents peuvent utiliser et mettre à jour Brain simultanément.
Utilisation de Brain
Lorsqu'ils répondent à une requête d'utilisateur, les agents doivent être capables de trouver le bon contexte au bon niveau de détail. La structure de Brain permet aux agents d'explorer facilement la mémoire. Les agents peuvent choisir entre des étapes exploitables telles que suivre les liens de contexte pour trouver des informations connexes, suivre les liens de preuves pour vérifier des affirmations, ou appeler un sous-agent pour obtenir et synthétiser un contexte supplémentaire. Nous orientons le processus d'exploration des agents de plusieurs manières visant à maximiser la facilité d'accès des agents aux informations pertinentes.
Stratégie d'exploration
Nous incluons un index compact de Brain dans le message initial de l'utilisateur, afin que l'agent commence avec une connaissance active de ce qui existe déjà. L'agent interagit ensuite avec Brain en utilisant des opérations familières : lecture d'éléments spécifiques référencés par l'index, utilisation de grep pour rechercher à travers les pages, suivi des liens et inspection des citations, comparaison des révisions Git, et descente dans les sessions ou les trajectoires brutes. Le bloc de code ci-dessous illustre des exemples de commandes pour un personnage synthétique.
# 1. Orient: the index is a map of everything known
cat memory/knowledge/index.md
# 2. Target: find pages that touch the question
grep -Ril "kyoto\|sendai" memory/knowledge/
# 3. Read the page; follow context edges as needed
cat memory/knowledge/projects/japan-universal-design-sprint.md
cat memory/knowledge/entities/sora-city-laboratory.md # via [[wikilink]]
cat memory/knowledge/entities/sapphir-mobility-coop.md # via [[wikilink]]
# 4. Only if the claim must be verified: resolve evidence
# city bases → [cite:1], [cite:10] → pplx://sessions/<id>
#
# Example (pseudo, replace with your real tool):
# pplx-session-fetch 1eaf53d4-09e0-5823-bb96-c8662f582708 --slice <slice-id>
# 5. Some evidence lives outside the sessions
# meeting slots → [cite:15] → connector://google-calendar
#
# pplx-connector-fetch google-calendar --query "japan-sprint"Les agents explorent ce contexte via une boucle autogérée, plutôt qu'un pipeline fixe. Par conséquent, l'agent peut continuer à chercher jusqu'à ce qu'il soit satisfait du contexte trouvé. L'agent peut également choisir le moment d'inspecter les citations et les preuves pour trouver ou vérifier des détails. Une question mineure de préférence peut être adoptée directement à partir d'une seule page Brain, tandis qu'une décision lourde de conséquences ou un conflit entre sources peut justifier de suivre la citation et de lire l'enregistrement original. La structure basée sur un graphe permet à l'agent de choisir entre des prochaines étapes concrètes, plutôt que de chercher sans but des informations connexes.

Matérialisation des fichiers
Pour que l'exploration par les agents fonctionne, l'agent doit avoir accès à l'ensemble de l'arborescence memory/ via le système de fichiers du bac à sable. Copier l'intégralité de l'arborescence localement à chaque démarrage d'un bac à sable est coûteux et inutile, car l'agent ne touchera pas à la grande majorité de ces fichiers. Une autre option consisterait à utiliser un système de fichiers distant, afin que les agents puissent accéder à n'importe quel fichier sans les copier localement. Cependant, les agents effectuent souvent des milliers d'opérations sur le système de fichiers en une seule commande ; si chacune d'elles devient une requête réseau, le coût des allers-retours commence à dominer la boucle d'exploration. Lors de tests internes, de simples charges de travail grep sur un chemin distant pris en charge par FUSE étaient environ 400 à 500 fois plus lentes que les opérations équivalentes sur des fichiers locaux.
Au lieu de cela, nous construisons un ensemble de travail local de fichiers matérialisés, tandis que le corpus plus vaste reste derrière un système de récupération de mémoire. Computer précharge une carte initiale (tirée des souvenirs récents, sessions, résumés et connaissances disponibles) sur le bac à sable lors de son démarrage. Les agents Computer ont accès à un agent de mémoire, un sous-agent capable d'effectuer une recherche sémantique et de charger un nouvel ensemble de fichiers. Lorsque le contexte requis est absent, Computer peut appeler l'agent de mémoire avec une description des informations nécessaires. L'agent de mémoire effectue des recherches dans les fichiers, renvoyant une synthèse textuelle immédiate et matérialisant les enregistrements justificatifs sous forme de fichiers dans l'arborescence de la mémoire. De cette manière, l'ensemble de travail s'étend naturellement et progressivement au fil du temps, préservant des chemins stables et des relations de source pour les preuves déjà présentes.

Cette conception résout proprement le problème du goulot d'étranglement de la latence. Le stockage local des fichiers pertinents garantit que les opérations sur le système de fichiers requises pour l'exploration restent rapides, et la récupération par lots permet au pool de fichiers matérialisés de croître sans nécessiter d'appels distincts pour chaque fichier ni charger un grand nombre de fichiers non pertinents. La conception d'agents imbriqués confère également à Computer les avantages de la récupération par les agents sans obliger l'agent principal à rechercher directement dans le corpus principal à chaque fois, préservant ainsi sa propre fenêtre de contexte pour les informations de plus haute valeur.
Maintenance de Brain
Les utilisateurs apprennent constamment du travail qu'ils effectuent et des conversations qu'ils ont, de sorte que la mémoire des agents doit faire de même. Pour que Brain reste utile, il doit constituer une représentation concise des connaissances les plus importantes. De nouvelles pages doivent être créées pour les nouvelles entités importantes, de nouvelles informations doivent être ajoutées aux pages Brain pertinentes, et le contexte obsolète doit être supprimé en temps opportun. Par exemple, si le poste d'un utilisateur change, Brain doit refléter ce changement ; il doit contenir le nouveau poste de l'utilisateur et donner la priorité aux informations liées à ses nouvelles responsabilités et à ses nouveaux projets.
Brain est maintenu par des agents d'arrière-plan que nous appelons Dream. Les agents Dream s'exécutent hors ligne sur la mémoire basée sur les fichiers, synthétisant de nouvelles informations dans les mises à jour de Brain. Nous avons soigneusement défini la portée et le comportement des agents Dream pour exécuter efficacement cette tâche, ainsi que des garde-fous spécifiques à Dream pour garantir que les mises à jour de Brain sont cohérentes et exactes.
Dream : agents d'arrière-plan pour le raffinement de la mémoire
Les agents Dream s'exécutent dans des bacs à sable dotés d'un accès au même système de fichiers et aux mêmes outils en lecture seule qu'aurait une session Computer interactive, mais leur seul objectif est d'améliorer le contexte pour les sessions futures. Chaque exécution commence à partir du Brain produit par les exécutions précédentes plutôt que de reconstruire le contexte de l'utilisateur à partir de zéro. Il utilise ensuite ce Brain actuel pour s'orienter et produit un Brain mis à jour que les exécutions futures pourront utiliser.

Un agent Dream reçoit un environnement et décide de la manière de l'explorer, plutôt que de recevoir une entrée fixe aplatie en une seule invite. Il peut naviguer dans la mémoire basée sur les fichiers, utiliser des outils de connecteur en lecture seule approuvés pour vérifier un élément de connaissance et déléguer des parties limitées du travail à des sous-agents, y compris l'agent de mémoire. La portée et les responsabilités de l'agent Dream sont spécifiées sous forme de Skill.
De manière générale, une exécution Dream se compose de 4 phases :
- S'orienter : L'agent effectue une procédure d'orientation ordonnée. Il identifie la portée autorisée, les instructions permanentes, le journal des suppressions, les entrées supplémentaires et les conditions d'arrêt.
- Résumer les sessions : Pour chaque session nouvelle (ou comportant de nouveaux tours) depuis la dernière mise à jour, l'agent rédige (ou met à jour) un bref résumé de la session.
- Associer des faits à des sujets : L'agent ajoute chaque observation qu'il juge significative à son emplacement approprié, qui est généralement une page wiki. Il sonde et interroge les connecteurs authentifiés lorsqu'ils sont disponibles.
- Mettre à jour le wiki de connaissances : L'agent met à jour le wiki en fonction de ses constatations. Il peut produire de nouvelles pages pour les sujets durables, réviser des pages lorsque la synthèse actuelle a changé, ou ajouter de nouveaux liens ou citations étayant une affirmation factuelle. Il peut également choisir de ne pas apporter de modifications lorsque le graphe actuel est déjà correct.
Pour s'assurer que toutes les mises à jour de Brain sont complètes et cohérentes, les agents écrivent l'état proposé dans une arborescence de sortie intermédiaire. Aucun changement permanent n'est effectué tant que l'agent n'a pas effectué toutes les mises à jour qu'il juge nécessaires. Coordonner ces décisions au sein d'un processus piloté par des agents permet de mettre à jour le graphe dans son ensemble plutôt que sous forme de pages sans rapport.

Tout changement doit passer deux types de contrôles de vérification. Des contrôles de validation déterministes garantissent que les pages sont bien formées et respectent des critères objectifs, tels que le frontmatter requis et le format des citations. Des contrôles de vérification sémantique garantissent qu'une synthèse proposée est étayée par les preuves recueillies et reste cohérente avec le reste du graphe. Une fois que l'agent a terminé avec succès, une étape de synchronisation contrôlée compare la sortie mise en scène à l'état antérieur et applique les modifications au dépôt. Lorsqu'une étape de synchronisation est achevée, l'ensemble final des modifications peut être inspecté via l'historique de version Git.
Validation de Brain
Un système de mémoire utile doit préserver les preuves pertinentes, les faire surface en cas de besoin et aider l'agent à convertir ces preuves en une réponse correcte. Par conséquent, nous évaluons Brain à plusieurs niveaux : ablations hors ligne contrôlées, relecture appariée continue et expériences de production randomisées.
Évaluations hors ligne
Notre principale évaluation hors ligne utilise un ensemble de données interne de 640 questions réparties sur 44 personnages synthétiques. Les personnages reproduisent des schémas dérivés de la production en matière de cadence de sessions, de nombre de tours, de mélange de sujets et de densité de faits, tout en ne contenant aucun texte de requête de production afin de préserver la confidentialité des utilisateurs. Chaque compte est alimenté par le pipeline de mémoire de production, comprenant l'extraction de mémoire, les résumés de conversation et la compilation du wiki de connaissances par Dream. Pour chaque question, la réponse correcte est mécaniquement liée à des preuves spécifiques présentes dans l'historique du compte.
Par exemple, pour Nadia, la chercheuse en accessibilité au personnage synthétique présentée plus tôt, l'ensemble de données inclut la question : « Quelles organisations est-ce que je rencontre à Kyoto et Sendai ? » La réponse (Sora City Lab à Kyoto et Sapphir Mobility Coop à Sendai) apparaît directement sur la page Wiki correspondante.
Nous comparons les mêmes questions et comptes avec le wiki de connaissances compilé activé par rapport à désactivé. Les autres surfaces de mémoire restent disponibles dans les deux conditions. Cela permet d'isoler la contribution incrémentielle de Brain, plutôt que de comparer la mémoire à l'absence de mémoire. Globalement, Brain a fait passer l'exactitude des réponses de 0,600 à 0,661 (soit un gain de 6,1 points de pourcentage) et le rappel des preuves de 0,573 à 0,625 (soit un gain de 5,2 points de pourcentage). L'effet a été le plus prononcé pour les questions relatives aux préférences (+10,2 pp), au raisonnement temporel (+8,6 pp) et à l'extraction de détails d'une activité antérieure (+6,9 pp). Pour 84 % des questions, l'agent a atteint de manière vérifiable une source liée aux preuves de référence.

Nous avons également exécuté des ablations de Brain appariées sur des sous-ensembles de deux benchmarks publics. Sur LoCoMo, la suppression du wiki a réduit l'exactitude des réponses de 4,6 points de pourcentage en moyenne, sur trois exécutions avec des modèles différents. Sur LongMemEval-S, elle n'a produit aucun changement statistiquement significatif. Ce résultat est cohérent avec le rôle prévu de Brain. LongMemEval-S teste principalement la récupération de faits à partir de sessions individuelles, où les transcriptions sous-jacentes fournissent un chemin redondant vers la réponse. LoCoMo met davantage l'accent sur les preuves dispersées à travers les conversations, les orateurs et les dates, créant ainsi davantage d'opportunités pour la synthèse inter-sessions du wiki d'apporter sa contribution.
Globalement, avec Brain activé, l'agent de production a atteint 0,91 d'exactitude des réponses sur LongMemEval-S et 0,83 sur LoCoMo. Étant donné que ces expériences ont utilisé des sous-ensembles de benchmarks, elles ne constituent pas des résultats de benchmark définitifs. Cependant, les ablations fournissent toujours un signal fort selon lequel le wiki améliore les performances, en particulier lorsque les preuves doivent être intégrées à travers les conversations. Étant donné que Brain fait partie de Computer, plutôt que d'un système de récupération optimisé spécifique à un benchmark, nous pensons que la compétitivité ne fera que croître avec des tâches qui ressemblent davantage aux flux de travail de production.
Évaluations en ligne
Les ensembles de données hors ligne ne peuvent pas capturer toutes les caractéristiques des historiques d'utilisateurs réels, nous exécutons donc également une évaluation quotidienne par paires sur des cohortes fraîches dérivées de la production. Les mêmes questions fixes reçoivent des réponses par rapport à un état utilisateur apparié avec Brain activé et désactivé, puis sont jugées quant à l'exactitude, l'actualité et le rappel.
Les résultats préliminaires rapportés le 18 juin ont démontré que Brain augmente l'exactitude des réponses de 25 % et le rappel de 16 %. Ces gains de performance se sont maintenus ; au cours des 30 derniers jours, les sessions activées par Brain ont surpassé le groupe témoin à chaque exécution et sur chaque dimension évaluée. En termes absolus, les utilisateurs de Computer ont bénéficié d'améliorations de 9,3 points de l'exactitude, de 8,0 points de l'actualité et de 8,9 points du rappel. Les trajectoires activées par Brain ont également utilisé environ 15 % de jetons en moins, coûté 10 % de moins et achevé la génération 10 % plus rapidement.

Amélioration continue
Nous avons continué à affiner Brain pour offrir la meilleure expérience de mémoire aux utilisateurs. Un changement récent place l'index compact de Brain directement dans le contexte initial de l'agent plutôt que de lui demander de le découvrir et de le lire plus tard. Dans le cadre d'une expérience randomisée, ce pré-remplissage a accru l'utilisation de Brain et réduit l'insatisfaction liée à la mémoire de 6,9 %.
Le banc d'évaluation hors ligne fait également office de composant d'un pipeline d'amélioration autonome. Les modifications proposées au sous-agent de mémoire, aux compétences de récupération et aux invites de Brain sont exécutées via les ablations appariées sur notre ensemble de données interne et nos benchmarks publics. Les agents Computer peuvent itérer sur les résultats de manière autonome, en préservant les modifications, deltas et coûts de chaque itération sous forme d'enregistrement durable et en ne conservant que les modifications qui font bouger les chiffres. Le résultat est un système où les évaluateurs de Brain sont également ses optimiseurs, stimulant les améliorations futures.
Conclusion
L'apprentissage continu est l'un des défis majeurs de la construction de systèmes d'agents qui fonctionnent sur des semaines et des mois. Nous pensons que les architectures de mémoire sont mieux exposées en tant d'environnements que les agents peuvent explorer directement en utilisant leurs ensembles d'outils ordinaires. Exposer la mémoire sous forme de système de fichiers, avec Brain comme wiki de connaissances structuré par-dessus, rend le contexte efficacement navigable grâce à des outils simples et familiers.
Brain est conçu pour s'auto-améliorer, de sorte que le système de mémoire peut continuer à s'améliorer à mesure que l'utilisation augmente. Les agents d'arrière-plan Dream distillent de nouvelles informations dans les mises à jour de Brain, garantissant que les agents de premier plan commencent toujours une nouvelle session avec une vue organisée du contexte le plus récent. Le banc d'évaluation fait également office de terrain d'essai pour les boucles d'autorecherche sur l'architecture de mémoire principale et les interfaces destinées aux agents.
Brain a déjà permis d'obtenir des sessions d'agent plus précises et plus performantes tout en réduisant le nombre de jetons consommés. Notre co-conception minutieuse de Brain avec la pile de production de Computer garantit que ces gains se traduisent directement par de réels avantages pour les utilisateurs.
Nous continuons à développer de nouvelles fonctionnalités pour améliorer la qualité de la mémoire de Computer. Entre-temps, pour les utilisateurs dont Brain est activé, la mémoire s'améliorera à chaque session.