Когато се обсъждат уникалните предимства от създаването на AI агенти, основно се разглеждат две неща: възможността за извикване на инструменти за изпълнение на задачи и способността да се подобряват с течение на времето. Паметта е в основата на създаването на самоусъвършенстващ се агент, който може да предоставя по-добри преживявания за нашите потребители.
В този урок ще разгледаме какво представлява паметта за AI агенти и как можем да я управляваме и използваме в полза на нашите приложения.
Този урок ще обхване:
• Understanding AI Agent Memory: Какво е паметта и защо е от съществено значение за агентите.
• Implementing and Storing Memory: Практически методи за добавяне на възможности за памет към вашите AI агенти, със фокус върху краткосрочната и дългосрочната памет.
• Making AI Agents Self-Improving: Как паметта позволява на агентите да се учат от минали взаимодействия и да се подобряват с течение на времето.
Този урок включва два всеобхватни тетрадни урока:
• 13-agent-memory.ipynb: Реализира памет, използвайки Mem0 и Azure AI Search с Microsoft Agent Framework
• 13-agent-memory-cognee.ipynb: Реализира структурирана памет чрез Cognee, автоматично изгражда знаниева графа подкрепена от embeddings, визуализира графа и интелигентно извлича
След завършване на този урок ще знаете как да:
• Различавате различни видове памет за AI агенти, включително работна, краткосрочна и дългосрочна памет, както и специализирани форми като персонална (persona) и епизодична памет.
• Имплементирате и управлявате краткосрочна и дългосрочна памет за AI агенти с помощта на Microsoft Agent Framework, използвайки инструменти като Mem0, Cognee, Whiteboard memory и интеграция с Azure AI Search.
• Разберете принципите зад самоусъвършенстващите се AI агенти и как устойчивите системи за управление на паметта допринасят за непрекъснато учене и адаптация.
В сърцевината си, паметта за AI агенти се отнася до механизмите, които им позволяват да запазват и възпроизвеждат информация. Тази информация може да бъде специфични детайли за разговор, предпочитания на потребителя, минали действия или дори научени модели.
Без памет, AI приложенията често са безсъстоянини (stateless), което означава, че всяко взаимодействие започва от нулата. Това води до повтарящо се и фрустриращо потребителско преживяване, при което агентът “забравя” предишния контекст или предпочитания.
интелигентността на един агент е дълбоко свързана със способността му да възпроизвежда и използва минала информация. Паметта позволява на агентите да бъдат:
• Рефлексивни: Учещи се от минали действия и резултати.
• Интерактивни: Поддържане на контекст в продължаване на разговор.
• Проактивни и реактивни: Предвиждане на нужди или адекватно реагиране на база исторически данни.
• Автономни: По-независима работа чрез използване на съхранено знание.
Целта на имплементирането на памет е да направи агентите по надеждни и способни.
Мислете за това като за бележка, която агентът използва по време на една текуща задача или мисловен процес. Тя съдържа непосредствената информация, необходима за изчисляване на следващата стъпка.
При AI агентите работната памет често улавя най-важната информация от разговор, дори ако пълната история на чата е дълга или отрязана. Фокусът е върху извличането на ключови елементи като изисквания, предложения, решения и действия.
Working Memory Example
При агент за резервации на пътувания, работната памет може да запази текущата заявка на потребителя, като “Искам да резервирам пътуване до Париж”. Това конкретно изискване се държи в непосредствения контекст на агента, за да насочи текущото взаимодействие.
Този тип памет запазва информация за продължителността на един разговор или сесия. Това е контекстът на текущия чат, който позволява на агента да се позовава на предишни ходове в диалога.
Short Term Memory Example
Ако потребителят попита “Колко би струвал полет до Париж?” и след това продължи с “А какво да кажем за настаняване там?”, краткосрочната памет гарантира, че агентът знае, че “там” се отнася за “Париж” в рамките на същия разговор.
Това е информация, която остава през множество разговори или сесии. Позволява на агентите да запомнят предпочитания на потребителя, исторически взаимодействия или общи знания за по-дълги периоди. Това е важно за персонализацията.
Long Term Memory Example
Дългосрочната памет може да запази, че “Бен обича ски и активности на открито, харесва кафе с планинска гледка и иска да избягва напреднали ски писти поради минала травма”. Тази информация, научена от предишни взаимодействия, влияе на препоръките в бъдещи сесии за планиране на пътувания, правейки ги силно персонализирани.
Този специализиран тип памет помага на агента да развие последователна “личност” или “роли”. Позволява на агента да запомня детайли за себе си или за предназначената роля, правейки взаимодействията по-естествени и фокусирани.
Persona Memory Example Ако пътуващият агент е проектиран да бъде “експерт по ски планиране”, персона паметта може да подсили тази роля, влияейки върху отговорите да съответстват на тона и знанията на експерт.
Тази памет съхранява последователността от стъпки, които агентът предприема по време на сложна задача, включително успехи и неуспехи. Това е подобно на запомнянето на конкретни “епизоди” или минали преживявания, за да се учи от тях.
Episodic Memory Example
Ако агентът се е опитал да резервира конкретен полет, но това е било неуспешно поради липса на наличност, епизодичната памет може да запише този неуспех, позволявайки на агента да опита алтернативни полети или да информира потребителя за проблема по-информирано при последващ опит.
Това включва извличане и запомняне на конкретни обекти (като хора, места или неща) и събития от разговорите. Позволява на агента да изгражда структурирано разбиране за ключовите елементи, обсъждани в разговора.
Entity Memory Example
От разговор за минало пътуване агентът може да извлече “Париж”, “Айфеловата кула” и “вечеря в ресторант Le Chat Noir” като обекти. В бъдещо взаимодействие агентът може да си спомни “Le Chat Noir” и да предложи да направи нова резервация там.
Докато RAG е по-широка техника, “Structured RAG” е подчертана като мощна технология за памет. Тя извлича гъста, структурирана информация от различни източници (разговори, имейли, изображения) и я използва за подобряване на прецизността, възстановяването и скоростта при отговори. За разлика от класическия RAG, който се основава само на семантична прилика, Structured RAG работи със вградената структура на информацията.
Structured RAG Example
Вместо просто да съвпада по ключови думи, Structured RAG може да анализира детайли за полет (дестинация, дата, час, авиокомпания) от имейл и да ги съхрани по структурирани начин. Това позволява прецизни заявки като “Какъв полет резервирах до Париж във вторник?”
Имплементирането на памет за AI агенти включва систематичен процес на управление на паметта, който включва генериране, съхранение, извличане, интегриране, обновяване и дори “забравяне” (или изтриване) на информация. Извличането е особено ключов аспект.
Един от начините за съхранение и управление на паметта на агента е чрез специализирани инструменти като Mem0. Mem0 функционира като постоянен слой за памет, позволяващ на агентите да възпроизвеждат релевантни взаимодействия, да съхраняват потребителски предпочитания и фактически контекст и да се учат от успехите и неуспехите с течение на времето. Идеята тук е, че безсъстоянините агенти се превръщат в състояниеви.
Той работи чрез двуфазов конвейер за памет: извличане и обновяване. Първо, съобщенията, добавени към нишката на агента, се изпращат към услугата Mem0, която използва голям езиков модел (LLM), за да обобщи историята на разговора и да извлече нови спомени. След това, фаза за обновяване, движена от LLM, определя дали да се добавят, модифицират или изтрият тези спомени, като ги съхранява в хибридно хранилище, което може да включва векторни, графови и key-value бази данни. Тази система също така поддържа различни типове памет и може да включва графова памет за управление на връзките между обектите.
Друг мощен подход е използването на Cognee, отворен код семантична памет за AI агенти, която трансформира структурирани и неструктурирани данни в заявими знаниеви графи, подкрепени от embeddings. Cognee предоставя архитектура с двойно хранилище, комбинираща векторно търсене по сходство с графови отношения, което позволява на агентите да разбират не само кои информации са сходни, но и как понятията са свързани помежду си.
Той се отличава в хибридното извличане, което смесва векторна близост, графова структура и LLM разсъждение - от просто търсене на парчета до въпроси с осведоменост за графа. Системата поддържа жива памет, която се развива и расте, като остава заявима като един свързан граф, поддържайки както краткосрочен контекст на сесията, така и дългосрочна трайна памет.
Урокът в тетрадката Cognee (13-agent-memory-cognee.ipynb) демонстрира изграждането на този обединен слой за памет, с практически примери за приемане на разнообразни източници на данни, визуализиране на знаниевия граф и изпълнение на заявки с различни стратегии за търсене, пригодени към конкретните нужди на агента.
Освен специализирани инструменти за памет като mem0 , можете да използвате здрави услуги за търсене като Azure AI Search като бекенд за съхранение и извличане на спомени, особено за структурирано RAG.
Това ви позволява да обосновете отговорите на агента със собствени данни, осигурявайки по-релевантни и точни отговори. Azure AI Search може да се използва за съхраняване на потребителско-специфични спомени за пътувания, каталози с продукти или каквото и да е друго домейн-специфично знание.
Azure AI Search поддържа възможности като Structured RAG, който се отличава в извличането и достъпа до гъста, структурирана информация от големи набори данни като истории на разговори, имейли или дори изображения. Това предоставя “свръхчовешка прецизност и възстановяване” в сравнение с традиционните подходи за разбиване на текст и embeddings.
Често срещан модел за самоусъвършенстващи се агенти включва въвеждането на “knowledge agent”. Този отделен агент наблюдава основния разговор между потребителя и първичния агент. Неговата роля е да:
Идентифицира ценна информация: Определи дали някоя част от разговора си струва да бъде запазена като общо знание или като специфично потребителско предпочитание.
Извлече и обобщи: Дестилира същественото научено или предпочитанието от разговора.
Съхрани в база знания: Запази извлечената информация, често във векторна база данни, за да може да бъде извлечена по-късно.
Допълва бъдещи заявки: Когато потребителят инициира нова заявка, knowledge agent извлича релевантната съхранена информация и я прилага към подканата на потребителя, предоставяйки ключов контекст на първичния агент (подобно на RAG).
• Управление на латентността: За да се избегне забавяне на потребителските взаимодействия, може първоначално да се използва по-евтин, по-бърз модел за бърза проверка дали информацията е стойностна за съхранение или извличане, като по-сложният процес на извличане/екстракция се задейства само когато е необходимо.
• Поддръжка на базата знания: За растяща база знания, по-рядко използваната информация може да бъде преместена в “cold storage”, за да се управляват разходите.
Присъединете се към Microsoft Foundry Discord за да се срещнете с други учащи се, да посетите office hours и да получите отговори на въпросите си за AI агенти.
Отказ от отговорност: Този документ е преведен с помощта на услуга за преводи с изкуствен интелект Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на изходния език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод, извършен от човешки преводач. Не носим отговорност за каквито и да е недоразумения или погрешни тълкувания, произтичащи от използването на този превод.