Когато обсъждаме уникалните предимства на създаването на AI агенти, се дискутират главно две неща: възможността за използване на инструменти за изпълнение на задачи и възможността да се подобряват с времето. Паметта е в основата на създаването на самоусъвършенстващ се агент, който може да създава по-добри преживявания за нашите потребители.
В този урок ще разгледаме какво представлява паметта за AI агенти и как можем да я управляваме и използваме в полза на нашите приложения.
Този урок ще обхване:
• Разбиране на паметта на AI агентите: Какво е памет и защо е важна за агентите.
• Прилагане и съхранение на паметта: Практически методи за добавяне на паметови възможности към вашите AI агенти, с акцент върху краткосрочна и дългосрочна памет.
• Направете AI агентите самоусъвършенстващи се: Как паметта дава възможност на агентите да учат от минали взаимодействия и да се подобряват с времето.
Този урок включва два изчерпателни учебни бележника:
• 13-agent-memory.ipynb: Имплементира памет с Mem0 и Azure AI Search с Microsoft Agent Framework
• 13-agent-memory-cognee.ipynb: Имплементира структурирана памет с Cognee, автоматично създаващ граф на знания, подкрепен от embeddings, визуализира графа и интелигентно извличане
След завършване на този урок ще можете да:
• Различавате между различни видове памет на AI агенти, включително работна, краткосрочна и дългосрочна памет, както и специализирани форми като персонална и епизодична памет.
• Прилагате и управлявате краткосрочна и дългосрочна памет за AI агенти с помощта на Microsoft Agent Framework, използвайки инструменти като Mem0, Cognee, Whiteboard memory и интеграция с Azure AI Search.
• Разбирате принципите зад самоусъвършенстващите се AI агенти и как стабилните системи за управление на памет допринасят за непрекъснатото учене и адаптация.
В сърцевината си, паметта за AI агентите се отнася до механизмите, които им позволяват да запаметяват и припомнят информация. Тази информация може да бъде конкретни детайли за разговор, предпочитания на потребителя, минали действия или дори научени модели.
Без памет, AI приложенията често са безсъстояниеви, което означава, че всяко взаимодействие започва отново. Това води до повтарящо се и разочароващо потребителско изживяване, при което агентът „забравя“ предишния контекст или предпочитания.
Интелигентността на агент е дълбоко свързана с неговата способност да припомня и използва минала информация. Паметта позволява на агентите да бъдат:
• Рефлексивни: Учейки се от минали действия и резултати.
• Интерактивни: Поддържайки контекст в течение на текущ разговор.
• Проактивни и реактивни: Предвиждайки нужди или отговаряйки адекватно въз основа на исторически данни.
• Автономни: Работейки по-независимо чрез използване на съхранени знания.
Целта на прилагането на памет е да направи агентите по-надеждни и способни.
Помислете за нея като за лист хартия, който агент използва по време на една текуща задача или мисловен процес. Тя съхранява непосредствено необходимата информация за изчисляване на следващата стъпка.
За AI агенти, работната памет често улавя най-важната информация от разговор, дори когато цялата история на чата е дълга или съкратена. Тя се фокусира върху извличане на ключови елементи като изисквания, предложения, решения и действия.
Пример за работна памет
При агент за резервации на пътувания, работната памет може да съдържа текущото изискване на потребителя, например „Искам да резервирам пътуване до Париж“. Този специфичен изискване се съхранява в непосредствения контекст на агента, за да насочи настоящото взаимодействие.
Този тип памет запазва информация за продължителността на един разговор или сесия. Това е контекстът на текущия чат, който позволява на агента да се позовава на предишни реплики в диалога.
В примерите на Python SDK на Microsoft Agent Framework, това съответства на AgentSession, създаден с agent.create_session(). Сесията е вградената краткосрочна памет на фреймуърка: тя държи контекста на разговора наличен, докато същата сесия се повтаря, но този контекст не се запазва, когато сесията приключи или приложението се рестартира. Използвайте дългосрочна памет за факти и предпочитания, които трябва да се запазят между сесиите, обикновено чрез база данни, векторен индекс или друг постоянен сторидж.
Пример за краткосрочна памет
Ако потребител попита „Колко струва полет до Париж?“ и след това додаде „А какво е с настаняването там?“, краткосрочната памет гарантира, че агентът знае, че „там“ се отнася за „Париж“ в рамките на същия разговор.
Това е информация, която се запазва през множество разговори или сесии. Тя позволява на агентите да помнят предпочитанията на потребителя, исторически взаимодействия или общи знания във времето. Това е важно за персонализация.
Пример за дългосрочна памет
Дългосрочна памет може да съхранява, че „Бен обича ски и дейности на открито, харесва кафе с изглед към планина и иска да избягва напреднали ски писти заради стара травма“. Тази информация, научена от предишни взаимодействия, влияе върху препоръките в бъдещи сесии за планиране на пътуване и ги прави високо персонализирани.
Този специализиран тип памет помага на агента да развие последователна „личност“ или „персона“. Тя позволява на агента да помни детайли за себе си или за ролята, която трябва да изпълнява, правейки взаимодействията по-плавни и фокусирани.
Пример за персонална памет
Ако туристическият агент е проектиран да бъде „експерт по планиране на ски“, персоналната памет може да подсили тази роля, влияейки върху отговорите му така, че да се съобразяват с тона и знанията на експерт.
Тази памет съхранява последователността от стъпки, които агентът предприема по време на сложна задача, включително успехи и неуспехи. Това е като спомняне на конкретни „епизоди“ или минали преживявания, за да се учи от тях.
Пример за епизодична памет
Ако агентът е опитал да резервира конкретен полет, но е неуспешно заради липса на наличност, епизодичната памет може да запише този провал, позволявайки на агента да опита алтернативни полети или да информира потребителя по-информирано при следващ опит.
Това включва извличане и запомняне на специфични обекти (като хора, места или неща) и събития от разговори. Позволява на агента да изгради структурирано разбиране за ключовите елементи, обсъждани в диалога.
Пример за памет за обекти
От разговор за минало пътуване, агентът може да извлече „Париж“, „Айфеловата кула“ и „вечеря в ресторант Le Chat Noir“ като обекти. В бъдещо взаимодействие агентът може да си припомни „Le Chat Noir“ и да предложи нова резервация там.
Докато RAG е по-широка техника, „Структурирана RAG“ е посочена като мощна технология за памет. Тя извлича плътна, структурирана информация от различни източници (разговори, имейли, изображения) и я използва за подобряване на точността, припомнянето и скоростта на отговорите. За разлика от класическия RAG, който се базира само на семантична близост, Структурираната RAG работи с вродената структура на информацията.
Пример за структурирана RAG
Вместо само да съпоставя ключови думи, структурирана RAG може да парсва детайли за полет (дестинация, дата, час, авиокомпания) от имейл и да ги съхранява по структуриран начин. Това позволява прецизни запитвания като „Какъв полет резервирах за Париж във вторник?“
Прилагането на памет за AI агенти включва систематичен процес на управление на паметта, който включва генериране, съхранение, извличане, интегриране, обновяване и дори „забрава“ (или изтриване) на информация. Извличането е особено важен аспект.
Един начин за съхранение и управление на паметта на агента е чрез специализирани инструменти като Mem0. Mem0 работи като постоянен слой памет, който позволява на агентите да припомнят релевантни взаимодействия, да съхраняват потребителски предпочитания и фактически контекст и да се учат от успехи и неуспехи във времето. Идеята тук е, че безсъстояниевите агенти се превръщат в състояниеви.
Той работи чрез двуфазов паметов процес: извличане и обновяване. Първо, съобщенията, добавени към нишката на агента, се изпращат към Mem0 услугата, която използва голям езиков модел (LLM), за да обобщи историята на разговора и да извлече нови спомени. След това, фаза на обновяване, управлявана от LLM, решава дали да добави, промени или изтрие тези спомени, съхранявайки ги в хибридна база данни, която може да включва векторна, графова и ключ-стойност база. Тази система поддържа различни типове памет и може да използва и графова памет за управление на взаимоотношения между обекти.
Друг мощен подход е използването на Cognee, отворен код за семантична памет за AI агенти, който трансформира структурирани и неструктурирани данни в достъпни за заявки графи на знания, подкрепени от embeddings. Cognee предоставя двойна архитектура за съхранение, комбинираща търсене по векторна близост с графови връзки, което позволява на агентите да разбират не само каква информация е сходна, но и как понятията се свързват помежду си.
Той е отличен за хибридно извличане, което съчетава векторна близост, графова структура и LLM разсъждения – от просто търсене на парчета до въпроси с разбиране на графа. Системата поддържа живата памет, която се развива и расте, като същевременно остава достъпна за заявки като един свързан граф, поддържайки както краткосрочен сесионен контекст, така и дългосрочна постоянна памет.
Учебният бележник за Cognee (13-agent-memory-cognee.ipynb) демонстрира изграждането на този единен паметов слой с практически примери за поглъщане на разнообразни източници на данни, визуализиране на граф на знания и заявки с различни стратегии за търсене, съобразени с нуждите на конкретния агент.
Освен специализирани паметови инструменти като Mem0, можете да използвате мощни услуги за търсене като Azure AI Search като бекенд за съхранение и извличане на спомени, особено за структурирана RAG.
Това ви позволява да опрете отговорите на агента във вашите собствени данни, осигурявайки по-релевантни и точни отговори. Azure AI Search може да се използва за съхранение на спомени от пътувания на потребителя, продуктови каталози или други специфични за домейн знания.
Azure AI Search поддържа възможности като Strctured RAG, който се отличава при извличане на плътна, структурирана информация от големи набори данни като истории на разговори, имейли или дори изображения. Това осигурява „суперчовешка точност и припомняне“ в сравнение с традиционните подходи чрез парчене на текст и embedding.
Често срещан модел за самоусъвършенстващи се агенти включва въвеждането на „знаниев агент“. Този отделен агент наблюдава основния разговор между потребителя и основния агент. Неговата роля е да:
Идентифицира ценна информация: Определи дали някоя част от разговора си струва да бъде запазена като общо знание или специфично потребителско предпочитание.
Извлича и обобщава: Съсредоточава същественото научено или предпочитание от разговора.
Съхранява в база знания: Запазва тази извлечена информация, често в векторна база, за да се извлича по-късно.
Допълва бъдещи заявки: Когато потребителят прави ново запитване, знаниевият агент извлича релевантна съхранена информация и я добавя към подканата на потребителя, предоставяйки важен контекст на основния агент (подобно на RAG).
• Управление на латентността: За да се избегне забавяне на взаимодействията с потребителя, може първоначално да се използва по-евтин, по-бърз модел за бърза проверка дали информацията е ценна за съхранение или извличане, като по-сложният процес за извличане/обновяване се задейства само при необходимост.
• Поддръжка на база знание: За нарастваща база знание, по-рядко използваната информация може да бъде преместена в „студено съхранение“, за да се управляват разходите.
Присъединете се към Microsoft Foundry Discord, за да се срещнете с други учащи, да посещавате консултации и да получите отговори на въпросите си за AI агентите.
Отказ от отговорност: Този документ е преведен с помощта на AI преводачески услуга Co-op Translator. Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.