Skip to content

Latest commit

 

History

History
170 lines (88 loc) · 22.2 KB

File metadata and controls

170 lines (88 loc) · 22.2 KB

Памет за AI агенти

Памет за AI агенти

Когато се обсъждат уникалните предимства на създаването на AI агенти, основно се разглеждат две неща: възможността да извикват инструменти за изпълнение на задачи и способността да се подобряват с течение на времето. Паметта е в основата на създаването на самоподобряващ се агент, който може да създава по-добри преживявания за нашите потребители.

В този урок ще разгледаме какво представлява паметта за AI агенти и как можем да я управляваме и използваме в полза на нашите приложения.

Въведение

Този урок ще обхване:

Разбиране на паметта на AI агента: Какво представлява паметта и защо е важна за агентите.

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

Правене на AI агенти самоподобряващи се: Как паметта позволява на агентите да се учат от предишни взаимодействия и да се подобряват с времето.

Налични реализации

Този урок включва два изчерпателни бележника (notebook):

13-agent-memory.ipynb: Имплементира памет, използвайки Mem0 и Azure AI Search със Semantic Kernel framework

13-agent-memory-cognee.ipynb: Имплементира структурирана памет, използвайки Cognee, автоматично изграждайки knowledge graph, подплатен с embeddings, визуализирайки графа и интелигентно извличане

Учебни цели

След завършване на този урок ще знаете как да:

Различавате между различни типове памет за AI агенти, включително работна (working), краткосрочна и дългосрочна памет, както и специализирани форми като persona и епизодична памет.

Имплементирате и управлявате краткосрочна и дългосрочна памет за AI агенти с помощта на Semantic Kernel framework, използвайки инструменти като Mem0, Cognee, Whiteboard memory и интеграция с Azure AI Search.

Разбирате принципите зад самоподобряващите се AI агенти и как стабилните системи за управление на паметта допринасят за непрекъснато учене и адаптация.

Разбиране на паметта на AI агента

В същината си, паметта за AI агенти се отнася до механизмите, които им позволяват да запазват и извикват информация. Тази информация може да бъде конкретни детайли за разговор, предпочитания на потребителя, минали действия или дори научени модели.

Без памет, AI приложенията често са безсъстоянини (stateless), което означава, че всяко взаимодействие започва отначало. Това води до повтарящо се и фрустриращо потребителско преживяване, при което агентът "забравя" предишния контекст или предпочитания.

Защо паметта е важна?

интелигентността на един агент е дълбоко свързана със способността му да извиква и използва минала информация. Паметта позволява агентите да бъдат:

Рефлексивни: Учат от минали действия и резултати.

Интерактивни: Пазят контекста в продължаващ разговор.

Проактивни и реактивни: Предвиждат нужди или реагират адекватно въз основа на исторически данни.

Автономни: Работят по-независимо, разчитайки на запазено знание.

Целта на имплементирането на памет е да направи агентите по надеждни и способни.

Типове памет

Работна памет

Мислете за това като парче чернова, което агентът използва по време на една задача или текущ процес на мислене. Тя съдържа непосредствената информация, необходима за изчисляване на следващата стъпка.

За AI агентите, работната памет често улавя най-важната информация от разговор, дори ако пълната история на чата е дълга или отрязана. Тя се фокусира върху извличането на ключови елементи като изисквания, предложения, решения и действия.

Пример за работна памет

При агент за резервации пътувания, работната памет може да запамети текущата заявка на потребителя, като "Искам да резервирам пътуване до Париж". Това конкретно изискване се държи в непосредствения контекст на агента, за да насочи текущото взаимодействие.

Краткосрочна памет

Този тип памет запазва информация за продължителността на един разговор или сесия. Тя е контекстът на текущия чат, позволяващ на агента да се позовава на предишни ходове в диалога.

Пример за краткосрочна памет

Ако потребителят пита: "Колко би струвал полет до Париж?" и след това последва с "А какво ще кажеш за настаняване там?", краткосрочната памет гарантира, че агентът знае, че "там" се отнася за "Париж" в рамките на същия разговор.

Дългосрочна памет

Това е информация, която се запазва през множество разговори или сесии. Тя позволява на агентите да помнят предпочитания на потребителя, исторически взаимодействия или общи знания за продължителни периоди. Това е важно за персонализацията.

Пример за дългосрочна памет

Дългосрочната памет може да съхранява, че "Бен обича ски и дейности на открито, харесва кафе с планинска гледка и иска да избягва напреднали ски писти поради минала травма". Тази информация, научена от предишни взаимодействия, влияе на препоръките в бъдещи сесии за планиране на пътувания, правейки ги силно персонализирани.

Persona памет

Този специализиран тип памет помага на агента да развие последователна "личност" или "персона". Тя позволява на агента да помни детайли за себе си или за предназначената си роля, правейки взаимодействията по-плавни и целенасочени.

Пример за persona памет Ако агентът за пътувания е проектиран да бъде "експерт по ски планове", persona паметта може да укрепи тази роля, като влияе върху отговорите му да съответстват на тона и знанията на експерт.

Работен поток/Епизодична памет

Тази памет съхранява последователността от стъпки, които агентът предприема по време на сложна задача, включително успехи и неуспехи. Това е като запомняне на конкретни "епизоди" или минали преживявания, за да се учи от тях.

Пример за епизодична памет

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

Памет за обекти (Entity Memory)

Това включва извличане и запомняне на конкретни обекти (като хора, места или неща) и събития от разговорите. Тя позволява на агента да гради структурирано разбиране на ключови елементи, обсъждани в разговора.

Пример за entity памет

От разговор за минало пътуване, агентът може да извлече "Париж", "Айфеловата кула" и "вечеря в ресторант Le Chat Noir" като обекти. При бъдещо взаимодействие агентът може да си спомни "Le Chat Noir" и да предложи да направи нова резервация там.

Structured RAG (Retrieval Augmented Generation)

Докато RAG е по-широка техника, "Structured RAG" е отчетена като мощна технология за памет. Тя извлича плътна, структурирана информация от различни източници (разговори, имейли, изображения) и я използва за подобряване на прецизността, възстановимостта и скоростта на отговорите. За разлика от класическия RAG, който разчита единствено на семантична близост, Structured RAG работи със структурата на информацията.

Пример за Structured RAG

Вместо просто да съвпада ключови думи, Structured RAG може да извлече детайли за полет (дестинация, дата, час, авиокомпания) от имейл и да ги съхрани по структуриран начин. Това позволява прецизни заявки като "Кой полет резервирах за Париж в четвъртък?"

Имплементиране и съхранение на памет

Имплементирането на памет за AI агенти включва систематичен процес на управление на паметта, който включва генериране, съхранение, извличане, интегриране, актуализиране и дори "забравяне" (или изтриване) на информация. Извличането е особено ключов аспект.

Специализирани инструменти за памет

Mem0

Един от начините за съхранение и управление на паметта на агента е чрез специализирани инструменти като Mem0. Mem0 функционира като постоянен слой за памет, позволявайки на агентите да припомнят релевантни взаимодействия, да съхраняват потребителски предпочитания и фактически контекст и да учат от успехи и неуспехи с течение на времето. Идеята тук е безсъстояйните агенти да се превърнат в състояйни.

Той работи чрез двуфазов pipeline за памет: извличане и актуализация. Първо, съобщенията, добавени към нишката на агента, се изпращат до Mem0 услугата, която използва Large Language Model (LLM) за обобщаване на историята на разговора и извличане на нови спомени. След това LLM-движена фаза на актуализация определя дали да добави, модифицира или изтрие тези спомени, съхранявайки ги в хибридно хранилище от данни, което може да включва векторни, графови и key-value бази данни. Тази система също така поддържа различни типове памет и може да включва графова памет за управление на връзките между обектите.

Cognee

Друг мощен подход е използването на Cognee, отворен код семантична памет за AI агенти, която трансформира структурирани и неструктурирани данни в заявяеми knowledge graphs, подплатени с embeddings. Cognee предоставя двойно-хранилищна архитектура, комбинираща векторно търсене по сходство с графови връзки, позволявайки на агентите да разбират не само каква информация е сходна, но и как концепциите се отнасят една към друга.

Той се отличава с хибридно извличане, което смесва векторна семантична близост, графова структура и LLM разсъждение - от директно търсене на фрагменти до въпроси и отговори, осведомени от графа. Системата поддържа жива памет, която се развива и расте, оставайки заявяема като един свързан граф, поддържайки както краткосрочен контекст на сесията, така и дългосрочна постоянна памет.

The Cognee notebook tutorial (13-agent-memory-cognee.ipynb) демонстрира изграждането на този унифициран слой за памет, с практически примери за извличане на различни източници на данни, визуализиране на knowledge graph и заявки с различни стратегии за търсене, пригодени към специфичните нужди на агента.

Съхранение на памет с RAG

Освен специализирани инструменти за памет като mem0 , можете да използвате мощни услуги за търсене като Azure AI Search като бекенд за съхранение и извличане на спомени, особено за Structured RAG.

Това ви позволява да заземите отговорите на агента във вашите собствени данни, осигурявайки по-релевантни и точни отговори. Azure AI Search може да се използва за съхранение на потребителски спомени за пътувания, продуктови каталози или каквото и да е друго домейн-специфично знание.

Azure AI Search поддържа възможности като Structured RAG, която се отличава в извличането на плътна, структурирана информация от големи набори данни като истории на разговори, имейли или дори изображения. Това предоставя "суперчовешка прецизност и възстановимост" в сравнение с традиционните подходи за чъункиране на текст и embeddings.

Правене на AI агенти самоподобряващи се

Често използван модел за самоподобряващи се агенти включва въвеждането на "knowledge agent". Този отделен агент наблюдава основния разговор между потребителя и първичния агент. Неговата роля е да:

  1. Идентифицира ценна информация: Определи дали някоя част от разговора си заслужава да бъде запазена като общо знание или специфично потребителско предпочитание.

  2. Извлича и обобщава: Дистилира същественото учене или предпочитание от разговора.

  3. Съхранява в knowledge base: Персистира тази извлечена информация, често във векторна база данни, така че да може да бъде извлечена по-късно.

  4. Укрепва бъдещите заявки: Когато потребителят инициира нова заявка, knowledge agent извлича релевантна съхранена информация и я добавя към подканата на потребителя, предоставяйки ключов контекст на първичния агент (подобно на RAG).

Оптимизации за памет

Управление на латентността: За да не се забавят взаимодействията с потребителя, първоначално може да се използва по-евтин, по-бърз модел за бърза проверка дали информацията е ценна за съхранение или извличане, като се включва по-сложният процес на извличане/екстракция само когато е необходимо.

Поддръжка на knowledge base: За растяща knowledge base, по-рядко използваната информация може да бъде преместена в "cold storage", за да се управляват разходите.

Имате още въпроси относно паметта на агентите?

Присъединете се към Microsoft Foundry Discord за да се срещнете с други учащи се, да присъствате на office hours и да получите отговори на вашите въпроси за AI агенти.


Отказ от отговорност: Този документ е преведен с помощта на услуга за превод с изкуствен интелект Co-op Translator (https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на езика, на който е написан, трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за каквито и да е недоразумения или погрешни тълкувания, произтичащи от използването на този превод.