Када се дискутује о јединственим предностима креирања AI агената, углавном се говори о две ствари: могућности позива алата за обављање задатака и способности да се побољшавају током времена. Меморија је у основи креирања само-побољшавајућег агента који може да створи боља искуства за наше кориснике.
У овој лекцији размотрићемо шта је меморија за AI агенте и како можемо да је управљамо и користимо за добробит наших апликација.
Ова лекција ће обухватити:
• Разумевање меморије AI агената: Шта је меморија и зашто је битна за агенте.
• Имплементација и чување меморије: Практичне методе за додавање меморијских могућности вашим AI агентима, са фокусом на краткорочну и дугорочну меморију.
• Омогућавање да се AI агенти сами побољшавају: Како меморија омогућава агентима да уче из прошлих интеракција и побољшавају се током времена.
Ова лекција укључује два свеобухватна нотебука са туторијалима:
• 13-agent-memory.ipynb: Implements memory using Mem0 and Azure AI Search with Microsoft Agent Framework
• 13-agent-memory-cognee.ipynb: Implements structured memory using Cognee, automatically building knowledge graph backed by embeddings, visualizing graph, and intelligent retrieval
Након завршетка ове лекције, знаћете како да:
• Разликујете различите врсте меморије AI агената, укључујући радну, краткорочну и дугорочну меморију, као и специјализоване облике попут меморије личности и епизодне меморије.
• Имплементирате и управљате краткорочном и дугорочном меморијом за AI агенте користећи Microsoft Agent Framework, користећи алате као што су Mem0, Cognee, Whiteboard memory, и интеграцију са Azure AI Search.
• Разумете принципе који стоје иза само-побољшавајућих AI агената и како робусни системи управљања меморијом доприносе континуираном учењу и прилагођавању.
У својој суштини, меморија за AI агенте односи се на механизме који им омогућавају да задрже и призивају информације. Ове информације могу бити специфични детаљи о разговору, преференције корисника, прошлe радње или чак научени обрасци.
Без меморије, AI апликације често су бездржавне, што значи да свака интеракција почиње из почетка. То води до понављајућег и фрустрирајућег корисничког искуства где агент “заборавља” претходни контекст или преференције.
интелигенција агента је дубоко повезана са његовом способношћу да призове и искористи прошлe информације. Меморија омогућава агентима да буду:
• Рефлектујући: Учити из прошлих поступака и исхода.
• Интерактивни: Одржавати контекст током трајања разговора.
• Проактивни и реактивни: Предвиђати потребе или одговарати на основу историјских података.
• Аутономни: Деловати самосталније црпећи из сачуваног знања.
Циљ имплементације меморије је да агенти буду поузданији и способнији.
Замислите ово као комад белешке који агент користи током једног, текућег задатка или процеса размишљања. Она држи непосредне информације потребне за израчунавање следећег корака.
За AI агенте, радна меморија често снима најрелевантније информације из разговора, чак и ако је цела историја ћаскања дуга или скраћена. Фокусира се на издвајање кључних елемената као што су захтеви, предлози, одлуке и акције.
Пример радне меморије
У агенту за резервацију путовања, радна меморија може да забележи тренутни захтев корисника, као што је “Желим да резервишем путовање за Париз”. Овај конкретан захтев се држи у непосредном контексту агента како би усмерио текућу интеракцију.
Ова врста меморије задржава информације током трајања једног разговора или сесије. То је контекст текућег ћаскања, што омогућава агенту да се позива на претходне округе у дијалогу.
Пример краткорочне меморије
Ако корисник пита: “Колико би коштала лет до Париза?” а затим настави са “А шта је са смештајем тамо?”, краткорочна меморија осигурава да агент зна да се “тамо” односи на “Париз” у оквиру истог разговора.
Ово су информације које трају кроз више разговора или сесија. Ово омогућава агентима да памте преференције корисника, историјске интеракције или опште знање током дужих периода. То је важно за персонализацију.
Пример дугорочне меморије
Дугорочна меморија може сачувати да “Ben ужива у скијању и активностима на отвореном, воли кафу уз поглед на планине и жели да избегава напредне ски стазе због прошлe повреде”. Ове информације, научене из претходних интеракција, утичу на препоруке у будућим сесијама планирања путовања, чинећи их високо персонализованим.
Ова специјализована врста меморије помаже агенту да развије доследну “личност” или “персону”. Омогућава агенту да памти детаље о себи или својој улози, што чини интеракције течнијим и фокусираним.
Пример меморије личности Ако је агент за путовања дизајниран да буде “стручни планер за скијање”, меморија личности може појачати ову улогу, утичући на његове одговоре да буду у складу са тоном и знањем стручњака.
Ова меморија чува низ корака које агент предузима током комплексног задатка, укључујући успехе и неуспехе. То је као памћење специфичних “епизода” или прошлих искустава како би се учило из њих.
Пример епизодне меморије
Ако је агент покушао да резервише одређени лет али је то пропало због недоступности, епизодна меморија би могла записати овај неуспех, омогућавајући агенту да покуша алтернативне летове или да информише корисника о проблему на информисанији начин при наредном покушају.
Ово подразумева издвајање и памћење специфичних ентитета (као што су људи, места или ствари) и догађаја из разговора. Омогућава агенту да изгради структуирано разумевање кључних елемената који су разматрани.
Пример меморије ентитета
Из разговора о прошлом путовању, агент може издвојити “Париз”, “Ајфелова кула” и “вечера у ресторану Le Chat Noir” као ентитете. У будућој интеракцији, агент би могао да призове “Le Chat Noir” и понуди да направи нову резервацију тамо.
Иако је RAG шира техника, “Структурирани RAG” је истаканут као моћна технологија меморије. Она излази густе, структуиране информације из различитих извора (разговори, е-поруке, слике) и користи их за побољшање прецизности, призива и брзине одговора. За разлику од класичног RAG који се ослања само на семантичку сличност, Структурирани RAG ради са урођеном структуром информација.
Пример Структурираног RAG
Уместо да само поклапа кључне речи, Структурирани RAG може парсirati детаље лета (одредиште, датум, време, авио-компанија) из е-поруке и сачувати их на структуриран начин. Ово омогућава прецизне упите попут “Који лет сам резервисао за Париз у уторак?”
Имплементација меморије за AI агенте подразумева систематски процес “управљања меморијом”, који укључује генерисање, чување, проналажење, интегрисање, ажурирање и чак “заборављање” (или брисање) информација. Проналажење (retrieval) је посебно кључан аспект.
Један од начина за чување и управљање меморијом агента је коришћење специјализованих алата као што је Mem0. Mem0 функционише као перзистентни слој меморије, омогућавајући агентима да призивају релевантне интеракције, чувају преференције корисника и фактички контекст, и уче из успеха и неуспеха током времена. Идеја овде је да бездржавни агенти постану државни.
Ради путем двофазног меморијског процеса: екстракција и ажурирање. Прво, поруке додате у нит агента се шаљу сервису Mem0, који користи велики језички модел (LLM) да резимира историју разговора и извуче нове успомене. Након тога, фаза ажурирања коју води LLM одређује да ли треба додати, изменити или избрисати те успомене, чувајући их у хибридном складишту података које може укључивати векторске, графске и кључ-вриједност базе података. Овај систем такође подржава различите типове меморије и може да укључи графску меморију за управљање односима између ентитета.
Још један моћан приступ је коришћење Cognee, open-source семантичке меморије за AI агенте која трансформише структуриране и неструктуриране податке у претраживе графове знања поткрепљене embeddings. Cognee пружа двоструку архитектуру складишта која комбинује претрагу по векторској сличности са графским односима, омогућавајући агентима да разумеју не само шта је слично, већ како се појмови међусобно односе.
Изванредан је у хибридном проналажењу које спаја векторску сличност, графску структуру и LLM резоновање - од директног проналажења сегмената до питања и одговора свесних графа. Систем одржава живу меморију која еволуира и расте док остаје претражива као један повезани граф, подржавајући и краткорочни контекст сесије и дугорочну перзистентну меморију.
Tutorijal у Cognee нотебуку (13-agent-memory-cognee.ipynb) демонстрира изградњу овог уједињеног слоја меморије, са практичним примерима уноса различитих извора података, визуелизацијом графа знања и упитима са различитим стратегијама претраге прилагођеним специфичним потребама агента.
Поред специјализованих алата за меморију као што је mem0 , можете користити робусне сервисе за претрагу попут Azure AI Search као бекенд за чување и проналажење успомена, посебно за структурирани RAG.
Ово вам омогућава да уткате одговоре вашег агента у своје податке, обезбеђујући релевантније и тачније одговоре. Azure AI Search може да се користи за чување корисничких путних успомена, каталога производа или било ког другог домен-специфичног знања.
Azure AI Search подржава могућности попут Структурирани RAG, који је изузетан у издвајању и проналажењу густих, структуираних информација из великих скупова података као што су историје разговора, е-поруке или чак слике. То пружа “надчовечанску прецизност и призив” у односу на традиционалне приступе раздвајања текста и embeddings.
Чест образац за само-побољшавајуће агенте подразумева увођење “агента знања”. Овај одвојени агент посматра главни разговор између корисника и примарног агента. Његова улога је да:
Идентификује вредне информације: Одреди да ли је део разговора вредан чувања као опште знање или специфична корисничка преференција.
Извуче и сажме: Дестилује суштинско знање или преференцију из разговора.
Сачува у бази знања: Перзистентно сачува ову издвојену информацију, често у векторској бази података, како би могла бити враћена касније.
Допуни будуће упите: Када корисник покрене нови упит, агент знања проналази релевантне сачуване информације и додаје их у промпт корисника, пружајући кључни контекст примарном агенту (слично RAG).
• Управљање латенцијом: Да би се избегло успоравање корисничких интеракција, може се прво користити јефтинији, бржи модел за брзу проверу да ли је информација вредна чувања или проналажења, а само уколико је потребно покреће се сложенији процес екстракције/проналажења.
• Одржавање базе знања: За растућу базу знања, мање често коришћене информације могу бити премештене у “хладно складиште” ради управљања трошковима.
Придружите се Microsoft Foundry Discord да упознате друге учеснике, присуствујете академским часовима и добијете одговоре на ваша питања о AI агентима.
Одрицање одговорности: Овај документ је преведен помоћу AI услуге за превод Co-op Translator (https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде тачан, имајте на уму да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на свом изворном језику треба сматрати коначним и ауторитативним извором. За критичне информације препоручује се професионални превод који обавља човек. Не сносимо одговорност за било какве неспоразуме или погрешна тумачења која произилазе из употребе овог превода.