ai-agents-for-beginners

Пам’ять для AI агентів

Agent Memory

При обговоренні унікальних переваг створення AI агентів зазвичай виділяють два основні моменти: здатність викликати інструменти для виконання завдань і здатність покращуватись з часом. Пам’ять лежить в основі створення самовдосконалюваного агента, який може створювати кращий досвід для наших користувачів.

У цьому уроці ми розглянемо, що таке пам’ять для AI агентів і як ми можемо керувати нею та використовувати її на користь наших застосунків.

Вступ

У цьому уроці будуть розглянуті:

Розуміння пам’яті AI агента: що таке пам’ять і чому вона важлива для агентів.

Впровадження і зберігання пам’яті: практичні методи додавання можливостей пам’яті вашим AI агентам, зосереджені на короткочасній та довготривалій пам’яті.

Створення самовдосконалюваних AI агентів: як пам’ять дозволяє агентам навчатися на минулих взаємодіях і покращуватись з часом.

Доступні реалізації

Цей урок містить два комплексні навчальні ноутбуки:

13-agent-memory.ipynb: реалізує пам’ять за допомогою Mem0 та Azure AI Search з фреймворком Semantic Kernel

13-agent-memory-cognee.ipynb: реалізує структурувану пам’ять за допомогою Cognee, що автоматично будує граф знань на основі embedding, візуалізує граф та здійснює інтелектуальний пошук

Цілі навчання

Після проходження цього уроку ви знатимете, як:

Відрізняти різні типи пам’яті AI агентів, включаючи робочу, короткочасну та довготривалу пам’ять, а також спеціалізовані форми, такі як пам’ять персонажа та епізодична пам’ять.

Впроваджувати та управляти короткочасною та довготривалою пам’яттю для AI агентів з використанням фреймворку Semantic Kernel, використовуючи інструменти як Mem0, Cognee, Whiteboard memory, та інтегрувати з Azure AI Search.

Розуміти принципи самовдосконалення AI агентів та як надійні системи управління пам’яттю сприяють безперервному навчанню і адаптації.

Розуміння пам’яті AI агента

У своїй основі пам’ять AI агента означає механізми, які дозволяють йому зберігати і згадувати інформацію. Ця інформація може бути специфічними деталями розмови, вподобаннями користувача, минулими діями або навіть вивченими шаблонами.

Без пам’яті AI додатки часто є безстанними, тобто кожна взаємодія починається з нуля. Це призводить до повторюваного і дратівливого досвіду користувача, коли агент “забуває” попередній контекст чи вподобання.

Чому пам’ять важлива?

інтелект агента тісно пов’язаний з його здатністю згадувати та використовувати минулу інформацію. Пам’ять дозволяє агентам бути:

Рефлексивними: навчатися на минулих діях і результатах.

Інтерактивними: підтримувати контекст під час тривалої розмови.

Проактивними та реактивними: передбачати потреби або відповідати належним чином на основі історичних даних.

Автономними: працювати більш незалежно, покладаючись на збережені знання.

Мета впровадження пам’яті — зробити агентів більш надійними та здатними.

Типи пам’яті

Робоча пам’ять

Думайте про неї як про листок для нотаток, який агент використовує під час однієї тривалої задачі або процесу роздумів. Вона містить безпосередньо необхідну інформацію для обчислення наступного кроку.

Для AI агентів робоча пам’ять часто захоплює найбільш релевантну інформацію з розмови, навіть якщо повна історія чату довга або скорочена. Вона зосереджена на видобутку ключових елементів, таких як вимоги, пропозиції, рішення та дії.

Приклад робочої пам’яті

В агента для бронювання подорожей робоча пам’ять може містити поточний запит користувача, наприклад “Я хочу забронювати поїздку до Парижа”. Ця конкретна вимога утримується в негайному контексті агента, щоб направляти поточну взаємодію.

Короткочасна пам’ять

Цей тип пам’яті зберігає інформацію протягом однієї розмови або сесії. Це контекст поточного чату, що дозволяє агенту посилатися на попередні репліки.

Приклад короткочасної пам’яті

Якщо користувач питає: “Скільки коштує квиток на рейс до Парижа?”, а потім доповнює: “А як щодо проживання там?”, короткочасна пам’ять гарантує, що агент розуміє “там” як “Париж” у межах однієї розмови.

Довготривала пам’ять

Це інформація, що зберігається через кілька розмов або сесій. Вона дозволяє агентам пам’ятати вподобання користувача, історичні взаємодії чи загальні знання протягом тривалого часу. Це важливо для персоналізації.

Приклад довготривалої пам’яті

Довготривала пам’ять може зберігати, що “Бен любить катання на лижах та активний відпочинок, полюбляє каву з видом на гори та хоче уникати складних схилів через минулу травму”. Ця інформація, здобута з попередніх взаємодій, впливає на рекомендації у майбутніх сесіях планування подорожей, роблячи їх максимально персоналізованими.

Пам’ять персонажа

Цей спеціалізований тип пам’яті допомагає агенту розвивати послідовний “характер” або “персону”. Вона дозволяє агенту запам’ятовувати деталі про себе або свою роль, роблячи взаємодії більш плавними і сфокусованими.

Приклад пам’яті персонажа Якщо туристичний агент створений як “експерт у плануванні лижного відпочинку”, пам’ять персонажа може підсилювати цю роль, впливаючи на відповіді з тональністю і знаннями експерта.

Пам’ять робочого процесу/епізодична пам’ять

Ця пам’ять зберігає послідовність кроків, які агент робить під час складного завдання, включно з успіхами і невдачами. Це як запам’ятовування конкретних “епізодів” або минулого досвіду для навчання.

Приклад епізодичної пам’яті

Якщо агент намагався забронювати певний рейс, але це не вдалося через відсутність доступності, епізодична пам’ять може зафіксувати цю невдачу, дозволяючи агенту спробувати альтернативні рейси або повідомити користувача про проблему більш поінформовано під час наступної спроби.

Пам’ять сутностей

Це включає витягування та запам’ятовування конкретних сутностей (наприклад, людей, місць чи предметів) та подій із розмов. Вона дозволяє агенту будувати структуроване розуміння ключових обговорюваних елементів.

Приклад пам’яті сутностей

З розмови про минулу поїздку агент може витягти “Париж”, “Ейфелева вежа” та “вечерю в ресторані Le Chat Noir” як сутності. У майбутній взаємодії агент може згадати “Le Chat Noir” і запропонувати зробити нове бронювання там.

Структурований RAG (Retrieval Augmented Generation)

Хоча RAG є більш загальною технологією, “Структурований RAG” виділяється як потужна технологія пам’яті. Він витягує щільну, структуровану інформацію з різних джерел (розмови, електронні листи, зображення) і використовує її для підвищення точності, повноти та швидкості відповідей. На відміну від класичного RAG, що базується виключно на семантичній подібності, Структурований RAG працює з внутрішньою структурою даних.

Приклад структурованого RAG

Замість простої співставності ключових слів Структурований RAG може розпарсити деталі рейсу (пункт призначення, дата, час, авіакомпанія) з електронного листа і зберегти їх у структурованому вигляді. Це дозволяє виконувати точні запити на кшталт “Який рейс я забронював до Парижа у вівторок?”

Впровадження і зберігання пам’яті

Впровадження пам’яті для AI агентів включає систематичний процес керування пам’яттю, що охоплює генерацію, зберігання, пошук, інтеграцію, оновлення та навіть “забуття” (видалення) інформації. Пошук є особливо важливою частиною.

Спеціалізовані інструменти пам’яті

Mem0

Один із способів зберігання і керування пам’яттю агента — це використання спеціалізованих інструментів, таких як Mem0. Mem0 працює як шар постійної пам’яті, що дозволяє агентам згадувати релевантні взаємодії, зберігати вподобання користувачів та фактичний контекст, а також навчатися на успіхах і невдачах з часом. Ідея полягає в тому, що безстанні агенти перетворюються на станні.

Вона працює через двофазний конвеєр пам’яті: витягування та оновлення. Спершу повідомлення, додані до нитки агента, надсилаються до сервісу Mem0, який використовує Велику Мовну Модель (LLM) для резюме історії розмови та вилучення нових спогадів. Згодом фаза оновлення під управлінням LLM вирішує, чи додавати, змінювати або видаляти ці спогади, зберігаючи їх у гібридному сховищі даних, яке може містити векторні, графові та ключ-значення бази даних. Ця система також підтримує різні типи пам’яті та може включати графову пам’ять для управління відносинами між сутностями.

Cognee

Інший потужний підхід — використання Cognee — відкритого коду семантичної пам’яті для AI агентів, що перетворює структуровані та неструктуровані дані на запитувані графи знань, підтримані embedding. Cognee надає двохсховищеву архітектуру, що поєднує пошук за векторною подібністю з графовими відносинами, дозволяючи агентам розуміти не лише схожість інформації, а й як поняття пов’язані між собою.

Система відзначається гібридним пошуком, що поєднує векторну схожість, графову структуру та LLM-логіку — від простого пошуку у фрагментах до питань із урахуванням графових зв’язків. Система підтримує живу пам’ять, яка розвивається і зростає, залишаючись запитуваною як єдиний зв’язаний граф, підтримуючи як короткочасний контекст сесії, так і довготривалу постійну пам’ять.

Навчальний ноутбук Cognee (13-agent-memory-cognee.ipynb) демонструє побудову цього єдиного шару пам’яті з практичними прикладами імпорту різноманітних джерел даних, візуалізації графа знань та запитів з різними стратегіями пошуку, адаптованими до потреб конкретного агента.

Зберігання пам’яті з RAG

Окрім спеціалізованих інструментів пам’яті, таких як mem0, можна використовувати потужні сервіси пошуку, наприклад Azure AI Search як бекенд для зберігання та отримання спогадів, особливо для структурованого RAG.

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

Azure AI Search підтримує функції як Структурований RAG, який ефективно витягує та отримує щільну, структуровану інформацію з великих наборів даних, таких як історії розмов, електронні листи або навіть зображення. Це забезпечує “суперлюдську точність і повноту” у порівнянні з традиційними методами розбиття тексту та embedding.

Створення AI агентів з можливістю самовдосконалення

Типовий підхід для самовдосконалюваних агентів полягає у введенні „агента знань“. Цей окремий агент спостерігає за основною розмовою між користувачем і основним агентом. Його роль:

  1. Визначати цінну інформацію: ушукувати, чи є частина розмови, варта збереження як загальних знань або конкретних уподобань користувача.

  2. Витягувати і резюмувати: виділяти основні уроки чи переваги з розмови.

  3. Зберігати у базі знань: зберігати цю витягнуту інформацію, часто у векторній базі даних, щоб її можна було пізніше отримати.

  4. Доповнювати майбутні запити: коли користувач починає новий запит, агент знань витягує релевантну інформацію і додає її до запиту користувача, надаючи критично важливий контекст основному агенту (подібно до RAG).

Оптимізації пам’яті

Керування затримками: щоб не сповільнювати взаємодії користувача, спершу може використовуватися більш дешевша, швидка модель, яка швидко перевіряє, чи варто зберігати або отримувати інформацію, та застосовує більш складний процес витягування/пошуку лише за необхідності.

Обслуговування бази знань: інформація, що використовується рідше у великій базі знань, може бути переміщена на “холодне сховище” для контролю витрат.

Маєте більше запитань про пам’ять агентів?

Приєднуйтеся до Azure AI Foundry Discord, щоб поспілкуватися з іншими учнями, відвідати години консультацій та отримати відповіді на ваші питання щодо AI агентів.


Застереження: Цей документ було перекладено за допомогою сервісу машинного перекладу Co-op Translator. Хоча ми прагнемо до точності, зверніть увагу, що автоматичний переклад може містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.