ai-agents-for-beginners

Меморија за AI агенте

Agent Memory

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

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

Увод

Овај час ће обухватити:

Разумевање меморије AI агената: Шта је меморија и зашто је битна за агенте.

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

Како учинити AI агенте самоусавршавајућим: Како меморија омогућава агентима да уче из претходних интеракција и побољшавају се временом.

Доступне имплементације

Овај час укључује два обимна туторијала у виду туторијал бележница:

13-agent-memory.ipynb: Имплементира меморију користећи Mem0 и Azure AI Search уз Microsoft Agent Framework

13-agent-memory-cognee.ipynb: Имплементира структурирану меморију помоћу Cognee, аутоматски градећи граф знања подржан уграђеним представљањима, визуелизујући граф и интелигентно претраживање

Циљеви учења

Након завршетка овог часа знаћете како да:

Разликујете различите типове меморије AI агената, укључујући радна, краткорочну и дугорочну меморију, као и специјализоване облике попут персоне и епизодне меморије.

Имплементирате и управљате краткорочном и дугорочном меморијом за AI агенте користећи Microsoft Agent Framework, уз помоћ алата као што су Mem0, Cognee, Whiteboard меморија и интеграција са Azure AI Search.

Разумете принципе иза самоусавршавајућих AI агената и како робусни системи управљања меморијом доприносе континуираном учењу и адаптацији.

Разумевање меморије AI агената

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

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

Зашто је меморија важна?

Интелигенција агента је дубоко повезана са његовом способношћу да препозна и користи претходне информације. Меморија омогућава агентима да буду:

Рефлексивни: Учити из претходних радњи и исхода.

Интерактивни: Одржавајући контекст током текућег разговора.

Проактивни и Рeактивни: Предвиђајући потребе или одговарајући адекватно на основу историјских података.

Аутономни: Радећи независније ослањајући се на сачувано знање.

Циљ имплементације меморије је да агенти буду више поуздани и способни.

Типови меморије

Радна меморија

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

За AI агенте, радна меморија често хвата најрелевантније информације из разговора, чак и ако је цела историја четова дугачка или скраћена. Фокусира се на издвајање кључних елемената као што су захтеви, предлози, одлуке и радње.

Пример радне меморије

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

Краткорочна меморија

Овај тип меморије задржава информације током једног разговора или сесије. То је контекст тренутног ћаскања, омогућавајући агенту да се врати на претходне делове дијалога.

У примерима из Microsoft Agent Framework Python SDK-а, ово одговара AgentSession, креираном помоћу agent.create_session(). Сесија је уграђена краткорочна меморија оквира: држи контекст разговора доступним док се та иста сесија користи, али тај контекст се не чува када сесија заврши или апликација рестартује. Користите дугорочну меморију за чињенице и преференције које треба да преживе између сесија, обично преко базе података, векторског индекса или другог трајног складишта.

Пример краткорочне меморије

Ако корисник пита, “Колико би коштао лет за Париз?” а затим настави са “А шта је са смештајем тамо?”, краткорочна меморија обезбеђује да агент зна да “тамо” у истом разговору значи “Париз”.

Дугорочна меморија

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

Пример дугорочне меморије

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

Меморија персоне

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

Пример меморије персоне Ако је агент за путовања дизајниран да буде “стручни планер скијања”, меморија персоне може ојачати ову улогу, утичући на његове одговоре тако да буду у складу с тоном и знањем стручњака.

Епизодна/Радна меморија

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

Пример епизодне меморије

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

Меморија ентитета

Ово укључује издвајање и памћење специфичних ентитета (као што су људи, места или ствари) и догађаја из разговора. Омогућава агенту да створи структуирано разумевање кључних елемената који су дискутовани.

Пример меморије ентитета

Из разговора о прошлом путовању, агент може издвојити “Париз”, “Ајфелов торањ” и “вечера у ресторану Le Chat Noir” као ентитете. У будућој интеракцији агент би могао да се сети “Le Chat Noir” и понуди да направи нову резервацију тамо.

Структурисани RAG (Retrieval Augmented Generation)

Иако је RAG шира техника, “Структурисани RAG” је истакнут као моћна меморијска технологија. Он издваја густе, структуиране информације из разних извора (разговори, мејлови, слике) и користи их за побољшање прецизности, потраживања и брзине одговора. За разлику од класичног RAG који се ослања искључиво на семантичку сличност, Структурисани RAG ради са урођеном структуром информација.

Пример структурисаног RAG-а

Уместо да само подудара кључне речи, Структурисани RAG може анализирати детаље лета (одредиште, датум, време, авио-компанија) из мејла и сачувати их на структурисан начин. Ово омогућава прецизне упите као што су “Који лет сам резервисао за Париз у уторак?”

Имплементација и чување меморије

Имплементација меморије за AI агенте подразумева систематски процес управљања меморијом, који укључује генерисање, чување, преузимање, интеграцију, ажурирање и чак “заборављање” (или брисање) информација. Преузимање (retrieval) је посебно важан аспект.

Специјализовани алати за меморију

Mem0

Један начин за чување и управљање меморијом агента јесте коришћење специјализованих алата попут Mem0. Mem0 ради као трајни слој меморије, омогућавајући агентима да се сећају релевантних интеракција, чувају корисничке преференције и фактички контекст и уче из успеха и неуспеха током времена. Идеја је да стателес (без стања) агенти постану статефул (са државом).

Рад је кроз двофазну меморијску цевовод: екстракцију и ажурирање. Прво, поруке додате у агентову нит шаљу се Mem0 сервису, који користи Ларџ Лангуаге Модел (LLM) за сумирање историје разговора и извлачење нових меморија. Накнадно, фаза ажурирања управљана LLM-ом одлучује да ли ће додати, изменити или избрисати ове меморије, чувајући их у хибридном складишту података које може укључивати векторске, графске и базе кључ-врeдност. Овај систем такође подржава различите типове меморије и може укључити графску меморију за управљање односима између ентитета.

Cognee

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

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

Туторијал Cognee бележнице (13-agent-memory-cognee.ipynb) демонстрира изградњу овог јединственог слоја меморије, са практичним примерима уноса различитих извора података, визуализације графа знања и упита са различитим стратегијама претраге прилагођених специфичним потребама агената.

Чување меморије уз RAG

Поред специјализованих алата за меморију као што је Mem0, можете користити моћне претраживачке сервисе попут Azure AI Search као позадину за чување и преузимање меморија, посебно за структурисани RAG.

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

Azure AI Search подржава могућности као што је Структурисани RAG, који превазилази класичне приступе делењу текста и уграђивању, пружајући “суперљудску прецизност и препознавање” у релативно густим, структуираним информацијама из великих скупова података као што су историје разговора, мејлови или чак слике.

Како учинити AI агенте самоусавршавајућим

Често коришћени модел за самоусавршавање агената укључује увођење “агента знања”. Овај посебан агент посматра главни разговор између корисника и примарног агента. Његова улога је да:

  1. Идентификује вредне информације: Одређује да ли је било који део разговора вредан чувања као опште знање или специфична корисничка преференца.

  2. Извлачи и сумира: Дестилује суштинско учење или преференцу из разговора.

  3. Чува у бази знања: Сачува ову издвојену информацију, често у векторској бази података, како би могла касније да се преузме.

  4. Допуњује будуће упите: Када корисник иницира нови упит, агент знања преузима релевантне сачуване информације и додаје их као контекст примарном агенту (слично RAG).

Оптимизације за меморију

Управљање латенцијом: Да би се избегло успоравање интеракција са корисником, може се користити јефтинији и бржи модел у почетку за брзу проверу да ли је информација вредна чувања или преузимања, при чему се сложенији процес екстракције/преузимања позива само када је потребно.

Одржавање базе знања: За растућу базу знања, ретко коришћене информације могу бити премештене у “хладно складиште” ради контроле трошкова.

Имате ли још питања о меморији агената?

Придружите се Microsoft Foundry Discord да се упознате са другим ученицима, присуствујете консултацијама и добијете одговоре на ваша питања о AI агентима.

Претходна лекција

Context Engineering for AI Agents

Следећа лекција

Exploring Microsoft Agent Framework


Изјава о одрицању одговорности: Овај документ је преведен коришћењем услуге за аутоматски превод Co-op Translator. Иако тежимо тачности, имајте у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода.