Brain: Агентна меморија као Вики знања

Структурирани систем датотека у формату Markdown који се може пратити и самостално побољшавати, компајлиран ван мреже и доступан за навигацију на захтјев.

АуториPerplexity Engineering

Корисници система Computer обављају посао који траје мјесецима и стотине сесија. До десете сесије, систем би требало да буде далеко продуктивнији него у првој. Требало би да акумулира контекст о кориснику, његовим преференцијама и послу који је већ обављен.

На примјер, када се од њега затражи да нацрта дијаграм тока рада који је корисник претходно објаснио, Computer треба да се присјети детаља и искористи их за креирање и извоз слике у жељеном стилу корисника. Корисник не би требало поново да објашњава детаље тока рада нити да понавља своју преференцију за PDF умјесто PNG артефаката; систем би требало да буде у стању да тачно опорави тај контекст из прошлих сесија и примијени га аутоматски.

Меморија је темељ континуираног побољшања агената. Ефикасан систем меморије требало би да буде структуриран, пратљив и прилагодљив, омогућавајући агентима да претражују на правој ширини и дубини за сваки задатак, док сваку одлуку темеље на најновијим информацијама.

Увод

Прорађивање агената релевантним контекстом је вишеслојан проблем. Прво, агенти морају знати шта постоји и како му приступити. Друго, када пронађу корисну информацију, морају бити сигурни да је она потпуна, тачна и ажурна. Изолована чињеница има ограничену вриједност осим ако агент не може пронаћи повезане информације, потврдити да долази из вриједног извора и осигурати да не мора бити ажурирана новијим запажањем.

Трпање статичних меморијских датотека директно у контекст модела максимизира приступачност агентима, али представља класичан компромис између прецизности и подсјећања. Превише информација ће заситити прозор контекста агента ставкама све мање релевантности, док ће премало деградирати квалитет одговора због недостатка релевантног контекста. Насупрот томе, приступ спољним базама података на захтјев је флексибилнији, али пребацује терет навигације на агента. Векторске базе података често чувају раздвојене фрагменте, а графне базе података захтијевају да агенти знају како да ефикасно постављају упите.

Недавно смо представили Brain, језгро система меморије система Computer које пружа најбоље од обје могућности. Brain је структурирани вики знања који се налази на врху статичних меморијских датотека и доказа. Цитати повезују тврдње са њиховим изворима, а повезани дијелови информација су повезани бочно. Организовани вики чини контекст доступним за навигацију на захтјев, док се детаљни артефакти задржавају у слоју испод њега.

Вики знања Brain приказан као граф, са ентитетима као чворовима и ивицама које повезују повезане теме.
Примјер система Brain заснован на синтетској персони.

Brain се повезује са свеобухватним системом меморије са три кључне компоненте: трајним складиштем меморије, агентима у првом плану који користе меморију за одговоре на упите и позадинским агентима који ажурирају и побољшавају меморију. Слика у наставку приказује ове компоненте смештене у укупну архитектуру система Brain.

Дијаграм архитектуре који приказује трајно складиште меморије, агенте у првом плану који читају меморију и позадинске агенте који ажурирају меморију.
Систем меморије се састоји од заједничке трајне меморије, агената у првом плану који користе меморију и позадинских агената који ажурирају меморију.

У овом чланку детаљно описујемо сваки слој, објашњавајући како Brain организује меморију, како је агенти користе и како позадински процеси одржавају ажурност. Такође представљамо резултате из интерних евалуација које потврђују дизајн система Brain, показујући да он побољшава перформансе агената уз мање трошкове.

Организација и складиштење меморије

Меморији је потребна репрезентација која се скалира на цјелокупну историју корисника без присиљавања сваког дијела контекста у упит. Меморијски систем система Computer представља перзистентни контекст као систем датотека. Brain синтетише знање кроз сирове изворе, повезујући повезане теме и повезујући тврдње назад са сесијама и датотекама које их подржавају. Ова структура, детаљно описана у наставку, омогућава нам да организујемо меморију у облику који је посебно погодан за агенте.

Меморија заснована на систему датотека

Сесије рачунара већ раде у сендбоксу (sandbox) са системом датотека, шкољком (shell) и алатима за улаз/излаз. При дизајнирању система Brain, жељели смо да уведемо што мање нових механизама у интерфејс између модела и меморије агената. Зато смо изградили Brain на врху слоја контекста који је домаћи за систем датотека. Меморија се материјализује као датотеке у сендбоксу (sandbox) под директоријумом memory/, а агент једноставно користи исте алате над меморијским датотекама које већ користи за све остало.

У којем су коријену меморијског стабла смјештена три директоријума највишег нивоа који одржавају контекст на различитим нивоима апстракције. knowledge/ је сам Brain, синтетизовани вики знања који повезује ентитете, концепте, активне пројекте и прошла сазнања; notes/ садржи дестиловане исечке организоване као тематске фасцикле; а sessions/ садржи индексе, резимее и комплетне транскрипте као сирове историје. Слика у наставку приказује поједностављен преглед распореда.

Стабло директоријума које приказује memory/ са подфасциклама knowledge/, notes/ и sessions/.
Примјер приказа распореда система датотека меморије.

Површине су намјерно редундантне. За једноставна питања у једном скоку, често је довољно претражити исечке у оквиру /notes за кључну ријеч, док је слој /knowledge најкориснији за питања која захтијевају спајање доказа кроз недјеље или мјесеце сесија система Computer.

Brain: Вики знања

Brain је форматиран као LLM вики, систем повезаних датотека у формату Markdown. Овај облик лагано структурираног Markdown-а пружа холистички преглед постојећег контекста, тако да агенти могу лако разумјети који су записи доступни, како се односе и гдје их пронаћи. Свака страница је одржавани преглед једне теме; требало би да остане корисна када се чита сама, а да истовремено олакшава даље истраживање кроз везе.

Везе долазе у двије врсте. [[wikilinks]] су ивице контекста. Оне повезују странице бочно; пројекат се може повезати са својим власником, својим клијентом или концептима од којих зависе. Праћење њих одговара на питање „шта још треба да знам?“. [cite:N] референце су ивице доказа. Оне повезују тврдње надоле ка сировим сесијама или изворима конектора који их подржавају. Праћење њих одговара на питање „како знам да је ово тачно?“

Слике у наставку приказују како би дио система Brain изгледао за синтетску персону, истраживачицу приступачности по имену Нађа. Њен Brain укључује страницу о примјеру пројекта, универзалном дизајнерском спринту у Јапану, који синтетише знање из сесија и конектора. Приказ графа показује како контекст и ивице доказа присутне на страници повезују повезане ентитете и изворе.

Примјер Brain вики странице приказане као Markdown, која приказује викивезе и ивице цитата унутар текста.
Brain је систем датотека у формату Markdown.
Подграф са узорка Brain вики странице, приказан као граф повезаних ентитета и извора.
Уграђени контекст и ивице доказа формирају структуру графа за лаку навигацију.

Brain је подржан помоћу алата Git ради очувања историје верзија, подржавајући његову природу која се стално развија. Странице се могу мијењати током времена, док дневници промјена биљеже кључне ажурирања и омогућавају агентима да лако инспектирају прошле верзије и разлике. Ово такође подржава координацију агената, што је критично јер више агената може користити и ажурирати Brain у исто вријеме.

Коришћење система Brain

При одговарању на упит корисника, агенти морају бити у стању да пронађу прави контекст на правом нивоу детаља. Структура система Brain олакшава агентима истраживање меморије. Агенти могу бирати између акционих корака као што су праћење веза контекста ради проналажења повезаних информација, праћење веза доказа ради верификације тврдњи, или позивање подсагента ради добијања и синтезе додатног контекста. Процес агентног истраживања усмјеравамо на више начина који имају за циљ максимизирање лакоће приступа агената релевантним информацијама.

Стратегија истраживања

Укључујемо компактни индекс система Brain у оквиру почетне поруке корисника, тако да агент почиње са радним знањем о ономе што већ постоји. Агент затим ступа у интеракцију са системом Brain користећи познате операције: читање специфичних ставки на које се индекс позива, коришћење grep-а за претрагу по страницама, праћење веза и инспектовање цитата, упоређивање Git ревизија и спуштање у сесије или сирове путање. Блок кода у наставку приказује примјере команди за синтетску персону.

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"

Агенти истражују овај контекст кроз самоусмјерену петљу, умјесто фиксног цјевовода. Стога, агент може наставити са претрагом све док није задовољен пронађеним контекстом. Агент такође може изабрати када да инспектира цитате и доказе како би пронашао или верификовао детаље. Мање питање преференције може се усвојити директно са једне Brain странице, док значајна одлука или сукоб између извора може оправдати праћење цитата и читање оригиналног записа. Структура заснована на графу омогућава агенту да бира између конкретних сљедећих корака, умјесто да без циља претражује повезане информације.

Дијаграм тока агента који прогресивно истражује Brain праћењем веза између страница и цитата ка сировим изворима.
Агент може пратити Brain везе до нових Brain страница или извора доказа све док се не увјери да има довољно контекста за задатак.

Материјализација датотека

Да би агентно истраживање функционисало, агент мора имати приступ цијелом стаблу memory/ кроз систем датотека сендбокса (sandbox). Копирање цијелог стабла локално сваки пут када се сендбокс (sandbox) покрене скупо је и непотребно, будући да агент неће додирнути огромну већину тих датотека. Друга опција би била коришћење удаљеног система датотека, тако да агенти могу приступити било којој датотеци без локалног копирања. Међутим, агенти често изводе хиљаде операција са системом датотека у само једној команди; ако свака постане мрежни захтјев, трошак повратног путовања почиње да доминира петљом истраживања. У интерном тестирању, једноставна grep оптерећења преко пута заснованог на удаљеном FUSE-у била су отприлике 400 до 500 пута спорија од еквивалентних операција над локалним датотекама.

Умјесто тога, градимо локални радни скуп материјализованих датотека, док већи корпус остаје иза система за преузимање меморије. Computer учитава почетну мапу (узету из недавних меморија, сесија, резимеа и доступног знања) на сендбокс (sandbox) када се покрене. Агенти система Computer имају приступ агенту за меморију (Memory Agent), подсагенту који може вршити семантичку претрагу и учитати нови скуп датотека. Када потребан контекст недостаје, Computer може позвати агента за меморију са описом тражених информација. Агент за меморију претражује датотеке, враћајући тренутну текстуалну синтезу и материјализујући пратеће записе као датотеке под меморијским стаблом. На овај начин, радни скуп се шири природно и постепено током времена, чувајући стабилне путање и односе извора за доказе који су већ присутни.

Дијаграм који приказује почетно учитавање датотека заједно са преузимањем помоћу агента за меморију на захтјев који материјализује датотеке у сендбоксу (sandbox).
Учитавање сесије унапријед и семантичко преузимање од стране агента за меморију учитавају почетну мапу датотека које ће агенту највјероватније бити потребне.

Овај дизајн чисто рјешава уску грло латенције. Чување релевантних датотека локално осигурава да операције система датотека потребне за истраживање остану брзе, а групно преузимање омогућава да скуп материјализованих датотека расте без захтијевања посебних позива за сваку датотеку или учитавања великог броја ирелевантних датотека. Дизајн са угнежђеним агентима такође даје систему Computer предности агентног преузимања без захтијевања да главни агент директно претражује цијели позадински корпус сваки пут, чувајући сопствени прозор контекста за информације највеће вриједности.

Одржавање система Brain

Корисници стално уче из посла који обављају и разговора које воде, па агентна меморија мора чинити исто. Да би Brain остао користан, он би требало да буде сажети приказ најважнијег знања. Нове странице треба креирати за важне нове ентитете, нове информације треба додати на релевантне Brain странице, а застарели контекст треба благовремено уклонити. На примјер, ако се посао корисника промјени, Brain би требало да одражава ту промјену; требало би да садржи нови посао корисника и да да приоритет информацијама повезаним са њиховим новим одговорностима и пројектима.

Brain одржавају позадински агенти које називамо Dream. Агенти Dream раде ван мреже над меморијом заснованом на датотекама, синтетишући нове информације у Brain ажурирања. Пажљиво смо дефинисали обим и понашање агената Dream како би ефикасно извршили овај задатак, заједно са заштитним мјерама специфичним за Dream како би се осигурало да су ажурирања система Brain конзистентна и тачна.

Dream: Позадински агенти за пречишћавање меморије

Агенти Dream раде у сендбоксима (sandboxes) са приступом истом систему датотека и алатима само за читање које би интерактивна сесија система Computer имала, али им је једини циљ побољшање контекста за будуће сесије. Свако извршавање почиње од Brain-а произведеног ранијим извршавањима умјесто поновног изградње контекста корисника испочетка. Он затим користи тај тренутни Brain да се оријентише и производи ажурирани Brain који ће будућа извршавања користити.

Дијаграм петље: интерактивне сесије напајају Dream, који ажурира Brain, што побољшава будуће сесије.
Агенти Dream раде у позадини како би ажурирали Brain, формирајући петљу самопобољшања.

Агент Dream прима окружење и одлучује како да га истражи, умјесто да прима фиксни улаз сплоштен у један упит. Он може да се креће кроз меморију засновану на датотекама, користи одобрене алате за конекторе само за читање како би верификовао дио знања и делегирао ограничене дијелове посла подсагентима, укључујући и агента за меморију (Memory Agent). Обим и одговорности агента Dream дефинисани су као вјештина.

Уопштено говорећи, извршавање процеса Dream састоји се од 4 фазе:

  1. Оријентиши се: Агент завршава уређен поступак оријентације. Он идентификује ауторитативни обим, стојећа упутства, дневник брисања, додатне улазе и услове за заустављање.
  2. Резимирај сесије: За сваку сесију која је нова (или је имала нове завоје) од посљедњег ажурирања, агент пише (или ажурира) кратак резиме сесије.
  3. Прикачи чињенице за субјекте: Агент додаје свако запажање које сматра значајним у свој одговарајући дом, који је обично вики страница. Он испитује и поставља упите аутентификованим конекторима када су доступни.
  4. Ажурирај вики знања: Агент ажурира вики на основу својих налаза. Он може произвести нове странице за трајне субјекте, ревидирати странице када се тренутна синтеза промјенила, или додати нове везе или цитате који подржавају чињеничну тврдњу. Такође може изабрати да не врши никакве промјене када је тренутни граф већ тачан.

Да би се осигурало да су било која ажурирања система Brain потпуна и конзистентна, агенти пишу предложено стање у припремљено излазно стабло. Никатке трајне промјене се не врше све док агент не изврши сва ажурирања која сматра неопходним. Координирање тих одлука у једном агентном процесу омогућава ажурирање графа у цјелини умјесто као неприкачених страница.

Дијаграм тока процеса Dream који производи предложене ажурирања за Brain странице.
Агенти Dream користе постојећи Brain и нове информације да предложе и напишу ажурирања.

Све промјене морају проћи двије врсте провјера верификације. Детерминистичке провјере валидациије осигуравају да су странице добро формиране и испуњавају објективне критеријуме, као што су обавезни предтекст и формат цитата. Семантичке провјере верификације осигуравају да је предложена синтеза подржана прикупљеним доказима и да остаје у складу са остатком графа. Након што агент успјешно заврши, контролисани корак синхронизације упоређује припремљени излаз са претходним стањем и примјењује промјене на спремиште. Када се корак синхронизације заврши, коначни скуп измјена је доступан за инспекцију кроз историју верзија система Git.

Верификација система Brain

Користан систем меморије мора очувати релевантне доказе, приказати их када је то потребно и помоћи агенту да те доказе претвори у тачан одговор. Стога оцјењујемо Brain на више нивоа: контролисане аблације ван мреже, континуирана упарена репродукција и рандомизовани продукцијски експерименти.

Евалуације ван мреже

Наша примарна евалуација ван мреже користи интерни скуп података од 640 питања у оквиру 44 синтетске персоне. Персоне репродукују обрасце изведене из продукције у каденци сесија, броју окрета, миксу тема и густини чињеница, док не садрже текстове продукцијских упита како би се очувала приватност корисника. Сваки налог се попуњава кроз продукцијски меморијски цјевовод, укључујући екстракцију меморије, резимее разговора и компајлирање викија знања од стране система Dream. За свако питање, тачан одговор је механички везан за одређене доказе присутне у историји налога.

На примјер, за Нађу, раније представљену синтетску персону истраживачице приступачности, скуп података укључује питање: „Које организације упознајем у Кјоту и Сендају?“ Одговор (Sora City Lab у Кјоту и Sapphir Mobility Coop у Сендају) појављује се директно на одговарајућој Вики страници.

Поредимо иста питања и налоге када је компајлирани вики знања омогућен у односу на то када је искључен. Друге меморијске површине остају доступне у оба стања. Ово изолује инкрементални допринос система Brain, умјесто поређења меморије са одсуством меморије. Све у свему, Brain је повећао тачност одговора са 0,600 на 0,661, што представља пораст од 6,1 процентних поена, а проналажење доказа са 0,573 на 0,625, што је пораст од 5,2 процентна поена. Ефекат је био највећи код питања о преференцијама (+10,2 процентна поена), временском закључивању (+8,6 процентних поена) и извлачењу детаља из претходних активности (+6,9 процентних поена). За 84% питања, агент је провјерљиво додирнуо извор везан за златне доказе.

Тракасти графикон који упоређује тачност одговора и подсјећање доказа са и без система Brain по категоријама питања.
Brain побољшава перформансе на нашем интерном референтном мјерењу.

Такође смо покренули упарене аблације система Brain на подскуповима два јавна референтна мјерења. На ЛоКоМо-у, уклањање викија смањило је тачност одговора за 4,6 процентних поена у просјеку, током три извршавања са различитим моделима. На ЛонгМемЕвал-С-у није произвело статистички значајну промјену. Овај резултат је у складу са намјераваном улогом система Brain. ЛонгМемЕвал-С првенствено тестира опоравак чињеница из појединачних сесија, гдје основни транскрипти пружају редундантну путању до одговора. ЛоКоMo ставља већи акценат на доказе разбацане по разговорима, говорницима и датумима, стварајући већу могућност да се међусесијска синтеза викија укључи.

Све у свему, са омогућеним системом Brain, продукцијски агент је постигао 0,91 тачност одговора на ЛонгМемЕвал-С-у и 0,83 на ЛоКоMo-у. Будуći да су ови експерименти користили подскупове референтних мјерења, они нису коначни резултати референтних мјерења. Међутим, аблације и даље пружају снажан сигнал да вики побољшава перформансе, посебно када се докази морају интегрисати кроз разговоре. Како је Brain дио система Computer, умјесто оптимизованог система за преузимање специфичног за референтна мјерења, вјерујемо да ће се конкурентност само повећавати са задацима који више личе на продукцијске токове рада.

Онлајн евалуације

Скупови података ван мреже не могу ухватити сваку карактеристику стварних историја корисника, па такође покрећемо дневну упарену евалуацију над свјежим кохортама изведеним из продукције. Иста фиксна питања се одговарају на упареном стању корисника са омогућеним и онемогућеним системом Brain, а затим се оцјењују за тачност, актуелност и подсјећање.

Прелиминарни резултати објављени 18. јуна показали су да Brain повећава тачност одговора за 25% и подсјећање за 16%. Ови добитци у перформансама су наставили да се одржавају; током протеклих 30 дана, сесије са омогућеним системом Brain надмашиле су контролне у сваком извршавању и свакој оцјењиваној димензији. У апсолутним бројевима, корисници система Computer уживали су у побољшањима од 9,3 поена у тачности, 8,0 поена у актуелности и 8,9 поена у подсјећању. Путање са омогућеним системом Brain су такође користиле отприлике 15% мање токена, коштале су 10% мање и завршиле генерацију 10% брже.

Графикон резултата онлајн упарене евалуације који приказује добитке у тачности, актуелности и подсјећању уз смањење токена, трошкова и латенције.
Brain повећава квалитет одговора и смањује трошкове.

Континуирано побољшање

Наставили смо да усавршавамо Brain како бисмо корисницима пружили најбоље искуство меморије. Једна недавна промјена ставља компактни индекс система Brain директно у почетни контекст агента умјесто да захтијева од агента да га открије и прочита касније. У рандомизованом експерименту, овај третман претходног пуњења повећао је употребу система Brain и смањио незадовољство повезано са меморијом за 6,9%.

Оквир за евалуацију ван мреже такође служи као дио аутономног цјевовода побољшања. Предложене промјене подсагента меморије система Brain, вјештина преузимања и упита пролазе кроз упарене аблације на нашем интерном скупу података и јавним референтним мјерењима. Агенти система Computer могу аутономно понављати резултате, чувајући промјене сваке итерације, делте и цијену као трајни запис и задржавајући само оне промјене које помјерају бројеве. Резултат је систем у којем су евалуатори система Brain уједно и његови оптимизатори, подстичући будућа побољшања.

Закључак

Континуирано учење је један од кључних изазова за изградњу система агената који раде током недјеља и мјесеци. Вјерујемо да су архитектуре меморије најбоље изложене као окружења која агенти могу директно истраживати користећи своје уобичајене скупове алата. Излагање меморије као система датотека, са системом Brain као структурираним викијем знања на врху, чини контекст ефикасно доступним за навигацију кроз једноставне и познате алате.

Brain је дизајниран за самопобољшање, тако да систем меморије може наставити да се побољшава како употреба расте. Позадински агенти система Dream дестилују свеже информације у ажурирања за Brain, осигуравајући да агенти у првом плану увијек започну нову сесију са организованим прегледом најновијег контекста. Оквир за евалуацију служе и као полигон за тестирање петљи аутоматског истраживања на архитектури основне меморије и интерфејсима усмјереним ка агентима.

Brain је већ резултирао тачнијим и ефикаснијим сесијама агената уз смањење потрошених токена. Наш пажљив заједнички дизајн система Brain са продукцијским складиштем система Computer осигурава да се ови добитци директно преведу у стварне бенефиције за кориснике.

Настављамо да градимо више могућности како бисмо побољшали квалитет меморије рачунара. У међувремену, за кориснике са омогућеним системом Brain, меморија ће се побољшавати са сваком сесијом.