При обсъждането на уникалните предимства на създаването на 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 агентите, работната памет често улавя най-важната информация от разговора, дори когато цялата история на чата е дълга или съкратена. Тя се фокусира върху извличането на ключови елементи като изисквания, предложения, решения и действия.
Пример за работна памет
При агент за резервации за пътуване, работната памет може да улавя текущото искане на потребителя, като „Искам да резервирам пътуване до Париж“. Това конкретно изискване се държи в непосредствения контекст на агента, за да ръководи текущото взаимодействие.
Този тип памет задържа информация за продължителността на един разговор или сесия. Това е контекстът на текущия чат, позволяващ на агента да се обръща към предишни реплики в диалога.
В примерите от 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 агенти, която трансформира структурирани и неструктурирани данни в запитваеми графи на знание, подплатени с вграждания. Cognee предоставя двойно съхранена архитектура, съчетаваща векторното търсене по сходство с графови връзки, позволявайки на агентите да разбират не просто каква информация е подобна, а как концепциите са свързани.
Той превъзхожда в хибридно извличане, което смесва векторно сходство, структура на граф и LLM разсъждения – от голо търсене на фрагменти до отговори на въпроси с информираност за графа. Системата поддържа жива памет, която се развива и расте, като остава запитваема като свързан граф, поддържайки както краткосрочен сесионен контекст, така и дългосрочна постоянна памет.
Учебният бележник за Cognee (13-agent-memory-cognee.ipynb) демонстрира изграждането на този обединен паметен слой с практически примери за въвеждане на различни източници на данни, визуализация на графа на знание и запитвания с различни стратегии на търсене, адаптирани към конкретните нужди на агента.
Отвъд специализираните инструменти за памет като Mem0, можете да използвате мощни услуги за търсене като Azure AI Search като бекенд за съхранение и извличане на спомени, особено за структурирана RAG.
Това ви позволява да основавате отговорите на агента върху вашите собствени данни, осигурявайки по-релевантни и точни отговори. Azure AI Search може да се използва за съхранение на персонализирани спомени за пътуване, продуктови каталози или всякакви други домейн-специфични знания.
Azure AI Search поддържа възможности като Структурирана RAG, която е отлична в извличането и припомнянето на гъста, структурирана информация от големи набори данни като истории на разговори, имейли или дори изображения. Това предоставя „суперчовешка точност и припомняне“ в сравнение с традиционните подходи за разчленяване на текст и вграждания.
Чест модел за самоусъвършенстващи се агенти включва въвеждането на „агент на знанието“. Този отделен агент наблюдава основния разговор между потребителя и главния агент. Неговата роля е да:
Идентифицира ценна информация: Определя дали някоя част от разговора заслужава да се запази като общо знание или конкретно потребителско предпочитание.
Извлича и обобщава: Кондензира същественото учене или предпочитание от разговора.
Съхранява в база знание: Запазва тази извлечена информация, често във векторна база данни, за да може да бъде извлечена по-късно.
Обогатява бъдещите запитвания: Когато потребителят стартира ново запитване, агентът на знанието извлича релевантна съхранена информация и я добавя към подсказката на потребителя, предоставяйки ключов контекст на главния агент (подобно на RAG).
• Управление на латентността: За да се избегне забавяне на взаимодействията с потребителя, първоначално може да се използва по-евтин, по-бърз модел за бърза проверка дали информацията е ценна за съхранение или извличане, като по-сложният процес на извличане/актуализиране се извиква само при необходимост.
• Поддръжка на база знание: За растяща база знание, по-рядко използваната информация може да се премества в „студено хранилище“, за да се управляват разходите.
Присъединете се към Microsoft Foundry Discord за да срещнете други обучаващи се, да посещавате работни часове и да получите отговори на въпросите си за AI агенти.
Контекстно инженерство за AI агенти
Проучване на Microsoft Agent Framework
Отказ от отговорност: Този документ е преведен с помощта на AI преводачески услуга Co-op Translator. Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.