Brain: Memòria agèntica com a wiki de coneixement

Un sistema de fitxers Markdown estructurat, traçable i d'autoregulació, compilat fora de línia i navegat sota demanda.

AutorsPerplexity Engineering

Els usuaris de Computer fan feina que abasta mesos i centenars de sessions. En la desena sessió, el sistema hauria de ser molt més productiu que en la primera. Hauria d'acumular context sobre l'usuari, les seves preferències i la feina que ja s'ha fet.

Per exemple, quan se li demana que dibuixi un diagrama d'un flux de treball que l'usuari ha explicat prèviament, Computer ha de recordar els detalls i utilitzar-los per crear i generar una figura en l'estil preferit de l'usuari. L'usuari no hauria de necessitar tornar a explicar els detalls del flux de treball ni reiterar la seva preferència per PDF en lloc d'artefactes PNG; el sistema hauria de poder recuperar amb precisió aquest context de sessions passades i aplicar-lo automàticament.

La memòria és la base de la millora contínua de l'agent. Un sistema de memòria eficaç ha de ser estructurat, traçable i adaptable, permetent als agents cercar a l'amplitud i profunditat adequades per a cada tasca alhora que fonamenten cada decisió en la informació més actual.

Introducció

Imbuir els agents amb context rellevant és un problema polifacètic. Primer, els agents han de saber què existeix i com accedir-hi. Segon, quan troben una peça d'informació útil, han d'estar segurs que és completa, precisa i actualitzada. Un fet aïllat té un valor limitat tret que l'agent pugui trobar informació relacionada, verificar que prové d'una font de confiança i assegurar-se que no cal actualitzar-la amb una observació més recent.

Introduir fitxers de memòria estàtics directament al context del model maximitza l'accessibilitat per als agents, però presenta un compromís clàssic entre precisió i recuperació. Massa informació saturarà la finestra de context de l'agent amb elements d'importància cada cop més menor, mentre que massa poca degradarà la qualitat de les respostes a causa d'una manca de context rellevant. En canvi, l'accés sota demanda a bases de dades externes és més flexible, però desplaça la càrrega de la navegació sobre l'agent. Les bases de dades vectorials sovint emmagatzemen fragments desconnectats, i les bases de dades de grafs requereixen que els agents sàpiguen com consultar eficaçment.

Recentment, hem presentat Brain, un component bàsic del sistema de memòria de Computer que ofereix el millor de tots dos mons. Brain és un wiki de coneixement estructurat que se situa al damunt de fitxers de memòria estàtics i evidències. Les citacions enllacen les afirmacions amb les seves fonts, i les peces d'informació relacionades es connecten lateralment. El wiki organitzat fa que el context sigui navegable sota demanda, mentre que els artefactes detallats es retenen a la capa de sota.

El wiki de coneixement de Brain visualitzat com un graf, amb entitats com a nodes i arestes que connecten temes relacionats.
Un Brain de mostra basat en un personatge sintètic.

Brain es connecta a un sistema de memòria complet amb tres components clau: emmagatzematge de memòria durador, agents de primer pla que utilitzen la memòria per respondre consultes i agents de fons que actualitzen i milloren la memòria. La figura següent descriu aquests components situats dins de l'arquitectura general del sistema de Brain.

Diagrama d'arquitectura que mostra l'emmagatzematge de memòria durador, els agents de primer pla que llegeixen la memòria i els agents de fons que actualitzen la memòria.
El sistema de memòria consisteix en memòria duradora compartida, agents de primer pla que utilitzen la memòria i agents de fons que actualitzen la memòria.

En aquest article, descrivim cada capa en profunditat, explicant com Brain organitza la memòria, com l'utilitzen els agents i com els processos de fons la mantenen actualitzada. També presentem resultats d'avaluacions internes que validen el disseny de Brain, demostrant que millora el rendiment de l'agent a un cost inferior.

Organització i emmagatzematge de la memòria

La memòria necessita una representació que s'esali a l'historial complet d'un usuari sense obligar a introduir cada peça de context al missatge. El sistema de memòria de Computer representa el context persistent com un sistema de fitxers. Brain sintetitza el coneixement a través de fonts primeres, connectant temes relacionats i connectant les afirmacions amb les sessions i els fitxers que els donen suport. Aquesta estructura, detallada a continuació, ens permet organitzar la memòria en una forma especialment adequada per als agents.

Memòria basada en el sistema de fitxers

Les sessions de Computer ja viuen en un entorn de proves amb un sistema de fitxers, un intèrpret d'ordres i utilitats d'E/S. En dissenyar Brain, volíem introduir tan poca maquinària nova com fos possible en la interfície entre el model i la memòria de l'agent. És per això que hem construït Brain sobre una capa de context nativa del sistema de fitxers. La memòria es materialitza com a fitxers a l'entorn de proves sota un directori memory/, i l'agent simplement utilitza les mateixes eines en els fitxers de memòria que ja utilitza en tot allò altre.

A l'arrel de l'arbre de memòria hi ha tres directoris de nivell superior que mantenen el context a diferents nivells d'abstracció. knowledge/ és el propi Brain, un wiki de coneixement sintetitzat que enllaça entitats, conceptes, projectes actius i aprenentatges passats; notes/ conté fragments destil·lats organitzats com a carpetes temàtiques; i sessions/ conté índexs, resums i transcripcions completes com a historials primers. La figura següent mostra una vista simplificada de la disposició.

Arbre de directoris que mostra memory/ amb subcarpetes knowledge/, notes/ i sessions/.
Una vista de mostra de la disposició del sistema de fitxers de memòria.

Les superfícies són deliberadament redundants. Per a preguntes senzilles d'un sol salt, sovint n'hi ha prou amb cercar fragments dins de /notes per a una paraula clau, mentre que la capa /knowledge és més útil per a preguntes que requereixen unir evidències al llarg de setmanes o mesos de sessions de Computer.

Brain: El wiki de coneixement

Brain té el format d'un wiki d'LLM, un sistema de fitxers Markdown enllaçats. Aquesta forma de Markdown lleugerament estructurat proporciona una visió holística del context existent, de manera que els agents poden entendre fàcilment quins registres estan disponibles, com es relacionen i on trobar-los. Cada pàgina és una vista mantinguda d'un tema; ha de continuar sent útil quan es llegeix sola alhora que facilita una exploració posterior mitjançant enllaços.

Els enllaços són de dos tipus. [[wikilinks]] són arestes de context. Connecten les pàgines lateralment; un projecte pot enllaçar amb el seu propietari, el seu client o els conceptes dels quals depèn. Seguir-los respon a «què més he de saber?». Les referències [cite:N] són arestes d'evidència. Connecten les afirmacions cap avall amb les sessions primeres o les fonts de connectors que els donen suport. Seguir-los respon a «com sé que això és cert?».

Les figures següents descriuen com seria una porció de Brain per a un personatge sintètic, una investigadora d'accessibilitat anomenada Nadia. El seu Brain inclou una pàgina sobre un projecte de mostra, un sprint de disseny universal al Japó, sintetitzant coneixement de sessions i connectors. La vista de graf demostra com el context i les arestes d'evidència presents a la pàgina enllacen entitats i fonts relacionades.

Una pàgina wiki de Brain de mostra renderitzada com a Markdown, que mostra wikilinks i arestes de citació en línia.
Brain és un sistema de fitxers Markdown.
Un subgraf d'una pàgina wiki de Brain de mostra, visualitzat com un graf d'entitats i fonts connectades.
El context incrustat i les arestes d'evidència formen una estructura de graf per a una navegació fàcil.

Brain té el suport de Git per preservar l'historial de versions, donant suport a la seva naturalesa en constant evolució. Les pàgines es poden editar amb el temps, mentre que els registres de canvis registren les actualitzacions clau i permeten als agents inspeccionar fàcilment les versions anteriors i les diferències. Això també admet la coordinació agèntica, la qual cosa és fonamental ja que diversos agents poden utilitzar i actualitzar Brain al mateix temps.

Ús de Brain

Quan responen a una consulta d'usuari, els agents han de poder trobar el context adequat al nivell de detall adequat. L'estructura de Brain facilita que els agents explorin la memòria. Els agents poden triar entre passos accionables com ara seguir enllaços de context per trobar informació relacionada, seguir enllaços d'evidència per verificar afirmacions o trucar a un subagent per obtenir i sintetitzar context addicional. Guiem el procés d'exploració agèntica d'una sèrie de maneres adreçades a maximitzar la facilitat d'accés dels agents a la informació rellevant.

Estratègia d'exploració

Incloem un índex compacte de Brain dins del missatge d'usuari inicial, de manera que l'agent comença amb coneixement pràctic del que ja existeix. A continuació, l'agent interactua amb Brain utilitzant operacions familiars: llegir elements específics referenciats per l'índex, utilitzar grep per cercar entre pàgines, seguir enllaços i inspeccionar citacions, comparar revisions de Git i descendir a sessions o trajectòries primeres. El bloc de codi següent descriu ordres de mostra per a un personatge sintètic.

bash
# 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"

Els agents exploren aquest context a través d'un bucle autodirigit, en lloc d'una canonada fixa. Per tant, l'agent pot continuar cercant fins que estigui satisfet amb el context trobat. L'agent també pot triar quan inspeccionar citacions i evidències per trobar o verificar detalls. Un assumpte menor de preferència es pot adoptar directament d'una sola pàgina de Brain, mentre que una decisió conseqüent o un conflicte entre fonts pot justificar seguir la citació i llegir el registre original. L'estructura basada en grafs permet a l'agent triar entre passos següents concrets, en lloc de cercar sense rumb informació relacionada.

Diagrama de flux d'un agent que explora progressivament Brain seguint enllaços entre pàgines i citacions a fonts primeres.
L'agent pot seguir enllaços de Brain a noves pàgines de Brain o fonts d'evidència fins que estigui satisfet que té prou context per a la tasca.

Materialització de fitxers

Perquè l'exploració agèntica funcioni, l'agent necessita tenir accés a tot l'arbre memory/ a través del sistema de fitxers de l'entorn de proves. Copiar tot l'arbre localment cada vegada que s'inicia un entorn de proves és costós i innecessari, ja que l'agent no tocarà la gran majoria d'aquests fitxers. Una altra opció seria utilitzar un sistema de fitxers remot, de manera que els agents puguin accedir a qualsevol fitxer sense copiar-los localment. Tanmateix, els agents solen dur a terme milers d'operacions del sistema de fitxers en una sola ordre; si cadascuna es converteix en una sol·licitud de xarxa, el cost de l'anada i tornada comença a dominar el bucle d'exploració. En les proves internes, les càrregues de treball de grep senzilles sobre un camí remot amb suport FUSE eren aproximadament entre 400 i 500 vegades més lentes que les operacions equivalents sobre fitxers locals.

En lloc d'això, construïm un conjunt de treball local de fitxers materialitzats, mentre que el corpus més gran roman dôté d'un sistema de recuperació de memòria. Computer pretanca un mapa inicial (pres de memòries recents, sessions, resums i coneixement disponible) a l'entorn de proves quan s'inicia. Els agents de Computer tenen accés a un agent de memòria, un subagent que pot realitzar una cerca semàntica i carregar un nou conjunt de fitxers. Quan falta el context necessari, Computer pot trucar a l'agent de memòria amb una descripció de la informació requerida. L'agent de memòria cerca entre fitxers, retornant una síntesi de text immediata i materialitzant els registres de suport com a fitxers sota l'arbre de memòria. D'aquesta manera, el conjunt de treball s'expandeix de manera natural i gradual amb el temps, preservant camins estables i relacions de fonts per a l'evidència ja present.

Diagrama que mostra la precàrrega inicial de fitxers més la recuperació de l'agent de memòria sota demanda que materialitza fitxers a l'entorn de proves.
La precàrrega de sessions i la recuperació semàntica per part de l'agent de memòria carreguen un mapa inicial de fitxers que és més probable que l'agent necessiti.

Aquest disseny resol clarament el coll d'ampolla de la latència. Emmagatzemar fitxers rellevants localment garanteix que les operacions del sistema de fitxers necessàries per a l'exploració continuïn sent ràpides, i la recuperació per lots permet que el grup de fitxers materialitzats creixi sense requerir trucades separades per a cada fitxer o carregar un gran nombre de fitxers irellevants. El disseny d'agents niats també ofereix a Computer els avantatges de la recuperació agèntica sense requerir que l'agent principal cerqui directament al corpus de rerefons complet cada vegada, preservant la seva pròpia finestra de context per a la informació de més valor.

Manteniment de Brain

Els usuaris aprenen constantment de la feina que fan i de les converses que tenen, de manera que la memòria agèntica ha de fer el mateix. Perquè Brain continuï sent útil, ha de ser una representació concisa del coneixement més important. S'han de crear pàgines noves per a entitats noves importants, s'ha d'afegir informació nova a les pàgines de Brain rellevants i s'ha de eliminar el context obsolet de manera oportuna. Per exemple, si la feina d'un usuari canvia, Brain ha de reflectir aquest canvi; ha de contenir la nova feina de l'usuari i prioritzar la informació relacionada amb les seves noves responsabilitats i projectes.

Brain és mantingut per agents de fons que anomenem Dream. Els agents de Dream s'executen fora de línia sobre la memòria basada en fitxers, sintetitzant informació nova en actualitzacions de Brain. Hem definit acuradament l'abast i el comportament dels agents de Dream per dur a terme aquesta tasca de manera eficient, juntament amb baranes de seguretat específiques de Dream per garantir que les actualitzacions de Brain siguin coherents i precises.

Dream: Agents de fons per a la depuració de la memòria

Els agents de Dream s'executen en entorns de proves amb accés al mateix sistema de fitxers i eines de només lectura que tindria una sessió interactiva de Computer, però el seu únic objectiu és millorar el context per a sessions futures. Cada execució comença a partir del Brain produït per execucions anteriors en lloc de reconstruir el context de l'usuari des de zero. A continuació, utilitza aquest Brain actual per orientar-se i produeix un Brain actualitzat perquè l'utilitzin les execucions futures.

Diagrama de bucle: les sessions interactives alimenten Dream, que actualitza Brain, la qual cosa millora les sessions futures.
Els agents de Dream treballen en segon pla per actualitzar Brain, formant un bucle d'autoregulació.

Un agent de Dream rep un entorn i decideix com explorar-lo, en lloc de rebre una entrada fixa aplanada en un sol missatge. Pot navegar per la memòria basada en fitxers, utilitzar eines de connectors de només lectura aprovades per verificar una part de coneixement i delegar parts delimitades de la feina a subagents, inclòs l'agent de memòria. L'abast i les responsabilitats de l'agent de Dream s'especifiquen com a Skill.

De manera general, una execució de Dream consta de 4 fases:

  1. Orientar: L'agent completa un procediment d'orientació ordenat. Identifica l'abast autoritzat, les instruccions permanents, el registre d'eliminació, les entrades addicionals i les condicions d'aturada.
  2. Resumir les sessions: Per a cada sessió que sigui nova (o hagi tingut nous torns) des de l'última actualització, l'agent escriu (o actualitza) un resum breu de la sessió.
  3. Adjuntar fets a temes: L'agent afegeix cada observació que considera significativa al seu lloc adequat, que normalment és una pàgina wiki. Sonda i consulta connectors autenticats quan estan disponibles.
  4. Actualitzar el wiki de coneixement: L'agent actualitza el wiki en funció de les seves troballes. Pot produir pàgines noves per a temes duradors, revisar pàgines quan la síntesi actual ha canviat, o afegir nous enllaços o citacions que donen suport a una afirmació fàctica. També pot triar no fer cap canvi quan el graf actual ja és correcte.

Per garantir que qualsevol actualització de Brain sigui completa i coherent, els agents escriuen l'estat proposat en un arbre de sortida posat en escena. No es fa cap canvi permanent fins que l'agent hagi fet totes les actualitzacions que consideri necessàries. Coordinar aquestes decisions en un procés agèntic fa possible actualitzar el graf en el seu conjunt en lloc de com a pàgines no relacionades.

Diagrama de carrers d'una execució de Dream que produeix actualitzacions proposades per a les pàgines de Brain.
Els agents de Dream utilitzen el Brain existent i la informació nova per proposar i escriure actualitzacions.

Qualsevol canvi ha de superar dos tipus de verificacions. Les comprovacions de validació deterministes garanteixen que les pàgines estiguin ben formades i compleixin els criteris objectius, com ara el frontmatter requerit i el format de citació. Les comprovacions de verificació semàntica garanteixen que una síntesi proposta estigui avalada per l'evidència recollida i continuï sent coherent amb la resta del graf. Després que l'agent acabi amb èxit, un pas de sincronització controlat compara la sortida posada en escena amb l'estat anterior i aplica els canvis al repositori. Quan es completa un pas de sincronització, el conjunt final d'edicions es pot inspeccionar mitjançant l'historial de versions de Git.

Validació de Brain

Un sistema de memòria útil ha de preservar l'evidència rellevant, mostrar-la quan sigui necessari i ajudar l'agent a convertir aquesta evidència en una resposta correcta. Per tant, avaluem Brain a diversos nivells: ablacions fora de línia controlades, reproducció emparellada contínua i experiments de producció aleatoris.

Avaluacions fora de línia

La nostra avaluació principal fora de línia utilitza un conjunt de dades intern de 640 preguntes en 44 personatges sintètics. Els personatges reprodueixen patrons derivats de la producció en la cadència de sessions, el recompte de torns, la combinació de temes i la densitat de fets, alhora que no contenen cap text de consulta de producció per preservar la privadesa de l'usuari. Cada compte s'omple a través de la canonada de memòria de producció, inclosa l'extracció de memòria, els resum de converses i la compilació del wiki de coneixement de Dream. Per a cada pregunta, la resposta correcta està vinculada mecànicament a l'evidència específica present a l'historial del compte.

Per exemple, per a la Nadia, el personatge sintètic investigador d'accessibilitat presentat anteriorment, el conjunt de dades inclou la pregunta: «Quines organitzacions estic reunint a Kyoto i Sendai?». La resposta (Sora City Lab a Kyoto i Sapphir Mobility Coop a Sendai) apareix directament a la pàgina Wiki corresponent.

Comparem les mateixes preguntes i comptes amb el wiki de coneixement compilat habilitat versus retingut. Altres superfícies de memòria continuen estant disponibles en ambdues condicions. Això aïlla la contribució incremental de Brain, en lloc de comparar la memòria amb l'absència de memòria. En general, Brain va augmentar la correcció de les respostes de 0,600 a 0,661, un guany de 6,1 punts percentuals, i la recuperació d'evidències de 0,573 a 0,625, un guany de 5,2 punts percentuals. L'efecte va ser més gran per a les preguntes sobre preferències (+10,2 pp), el raonament temporal (+8,6 pp) i l'extracció de detalls d'activitats prèvies (+6,9 pp). En el 84% de les preguntes, l'agent va tocar de manera verificable una font lligada a l'evidència de referència.

Gràfic de barres que compara la correcció de les respostes i la recuperació d'evidències amb i sense Brain entre categories de preguntes.
Brain millora el rendiment en el nostre banc de proves intern.

També vam executar ablacions de Brain coincidents en subconjunts de dos punts de referència públics. A LoCoMo, eliminar el wiki va reduir la correcció de les respostes en 4,6 punts percentuals de mitjana, al llarg de tres execucions amb diferents models. A LongMemEval-S no va produir cap canvi estadísticament significatiu. Aquest resultat és coherent amb el paper previst de Brain. LongMemEval-S prova principalment la recuperació de fets de sessions individuals, on les transcripcions subjacents proporcionen un camí redundant a la resposta. LoCoMo posa més èmfasi en l'evidència dispersa a través de converses, parlants i dates, creant més oportunitats perquè la síntesi entre sessions del wiki hi contribueixi.

En general, amb Brain habilitat, l'agent de producció va aconseguir una correcció de respostes de 0,91 a LongMemEval-S i de 0,83 a LoCoMo. Com que aquests experiments van utilitzar subconjunts de bancs de proves, no són resultats de bancs de proves definitius. Tanmateix, les ablacions continuen proporcionant un senyal fort que el wiki millora el rendiment, especialment quan s'ha d'integrar evidència a través de converses. Com que Brain forma part de Computer, en lloc d'un sistema de recuperació optimitzat i específic per a bancs de proves, creiem que la competitivitat només augmentarà amb tasques que s'assemblin més estretament als fluxos de treball de producció.

Avaluacions en línia

Els conjunts de dades fora de línia no poden capturar totes les característiques dels historials d'usuaris reals, de manera que també executem una avaluació emparellada diària sobre cohorts fresques derivades de la producció. Les mateixes preguntes fixes es responen contra l'estat d'usuari coincident amb Brain habilitat i deshabilitat, i després es jutgen per la correcció, l'actualitat i la recuperació.

Els resultats preliminars publicats el 18 de juny van demostrar que Brain augmenta la correcció de les respostes un 25% i la recuperació un 16%. Aquests guanys de rendiment s'han continuat mantenint; durant els darrers 30 dies, les sessions amb Brain habilitat van superar el control en cada execució i cada dimensió jutjada. En termes absoluts, els usuaris de Computer van gaudir de millores de 9,3 punts en correcció, 8,0 punts en actualitat i 8,9 punts en recuperació. Les trajectòries amb Brain habilitat també van utilitzar aproximadament un 15% menys de tokens, van costar un 10% menys i van completar la generació un 10% més ràpid.

Gràfic dels resultats de l'avaluació emparellada en línia que mostra guanys en correcció, actualitat i recuperació juntament amb reduccions de tokens, costos i latència.
Brain augmenta la qualitat de les respostes i disminueix el cost.

Millora contínua

Hem continuat perfeccionant Brain per oferir la millor experiència de memòria als usuaris. Un canvi recent situa l'índex compacte de Brain directament al context inicial de l'agent en lloc d'exigir que l'agent el descobreixi i el llegeixi més tard. En un experiment aleatori, aquest tractament de precàrrega va augmentar l'ús de Brain i va reduir la insatisfacció relacionada amb la memòria en un 6,9%.

El banc de proves d'avaluació fora de línia també fa alhora de part d'una canonada de millora autònoma. Els canvis proposats al subagent de memòria, les habilitats de recuperació i els missatges de Brain s'executen a través de les ablacions coincidents al nostre conjunt de dades intern i punts de referència públics. Els agents de Computer poden iterar sobre els resultats de manera autònoma, preservant el canvi, les diferències i el cost de cada iteració com a registre durador i conservant només els canvis que mouen els números. El resultat és un sistema on els avaluadors de Brain són també els seus optimitzadors, impulsant futures millores.

Conclusió

L'aprenentatge continu és un dels reptes definitoris per construir sistemes d'agents que funcionin durant setmanes i mesos. Creiem que les arquitectures de memòria s'exposen millor com a entorns que els agents poden explorar directament utilitzant els seus conjunts d'eines habituals. Exposar la memòria com a sistema de fitxers, amb Brain com a wiki de coneixement estructurat al damunt, fa que el context sigui navegable de manera eficient mitjançant eines senzilles i familiars.

Brain està dissenyat per a l'autoregulació, de manera que el sistema de memòria pugui continuar millorant a mesura que creix l'ús. Els agents de fons de Dream destil·len informació nova en actualitzacions de Brain, garantint que els agents de primer pla sempre comencin una sessió nova amb una vista organitzada del context més recent. El banc de proves d'avaluació fa alhora de terreny de proves per als bucles d'auto-recerca a l'arquitectura de memòria principal i les interfícies adreçades a l'agent.

Brain ja ha donat lloc a sessions d'agent més precises i amb millor rendiment alhora que ha reduït els tokens gastats. El nostre minuciós disseny conjunt de Brain amb la pila de producció de Computer garanteix que aquests guanys es tradueixin directament en beneficis reals per als usuaris.

Seguim construint més capacitats per millorar la qualitat de la memòria de Computer. Mentrestant, per als usuaris amb Brain habilitat, la memòria millorarà amb cada sessió.