Під час обговорення унікальних переваг створення AI агентів головним чином говорять про дві речі: здатність викликати інструменти для виконання завдань і здатність покращуватися з часом. Пам’ять лежить у основі створення агентів, що покращуються самостійно та можуть створювати кращі враження для наших користувачів.
У цьому уроці ми розглянемо, що таке пам’ять для AI агентів і як ми можемо керувати нею та використовувати її на користь наших застосунків.
У цьому уроці буде охоплено:
• Розуміння пам’яті AI агентів: Що таке пам’ять і чому вона важлива для агентів.
• Реалізація та збереження пам’яті: Практичні методи додавання можливостей пам’яті до ваших AI агентів, зосереджуючись на короткостроковій та довгостроковій пам’яті.
• Створення самовдосконалюваних AI агентів: Як пам’ять дозволяє агентам навчатися на минулих взаємодіях і покращуватися з часом.
Цей урок включає два вичерпні навчальні записники:
• 13-agent-memory.ipynb: Реалізує пам’ять із Mem0 та Azure AI Search у Microsoft Agent Framework
• 13-agent-memory-cognee.ipynb: Реалізує структуровану пам’ять за допомогою Cognee, автоматично створюючи граф знань на основі embedding, візуалізуючи граф і здійснюючи інтелектуальний пошук
Після завершення цього уроку ви будете знати, як:
• Розрізняти різні типи пам’яті AI агентів, включно з робочою, короткостроковою і довгостроковою пам’яттю, а також спеціалізованими формами, такими як пам’ять персонажа та епізодична пам’ять.
• Реалізувати та керувати короткостроковою та довгостроковою пам’яттю для AI агентів за допомогою Microsoft Agent Framework, використовуючи інструменти, такі як Mem0, Cognee, пам’ять Whiteboard, і інтегрувати з Azure AI Search.
• Розуміти принципи самовдосконалення AI агентів і як надійні системи управління пам’яттю сприяють безперервному навчанню та адаптації.
По суті, пам’ять для AI агентів означає механізми, які дозволяють їм зберігати й пригадувати інформацію. Ця інформація може бути конкретними деталями розмови, вподобаннями користувача, минулими діями або навіть вивченими шаблонами.
Без пам’яті AI застосунки часто є безстанковими, тобто кожна взаємодія починається з нуля. Це призводить до повторюваного та розчаровуючого користувацького досвіду, коли агент “забуває” попередній контекст чи вподобання.
інтелект агента глибоко пов’язаний із здатністю пригадувати та використовувати минулу інформацію. Пам’ять дозволяє агентам бути:
• Рефлексивними: Навчатися на минулих діях та результатах.
• Інтерактивними: Підтримувати контекст протягом поточної розмови.
• Проактивними та реактивними: Передбачати потреби або відповідати відповідно до історичних даних.
• Автономними: Працювати більш самостійно, спираючись на збережені знання.
Мета впровадження пам’яті — зробити агентів більш надійними та здатними.
Подумайте про це як про листок паперу, яким агент користується під час одного поточного завдання або процесу мислення. Вона утримує безпосередню інформацію, потрібну для обчислення наступного кроку.
Для AI агентів робоча пам’ять часто захоплює найактуальнішу інформацію з розмови, навіть якщо повна історія чату довга або обрізана. Вона зосереджується на витяганні ключових елементів, таких як вимоги, пропозиції, рішення та дії.
Приклад робочої пам’яті
У агенті з бронювання подорожей робоча пам’ять може зберігати поточний запит користувача, наприклад, “Я хочу забронювати поїздку до Парижа”. Ця конкретна вимога утримується у безпосередньому контексті агента, щоб керувати поточною взаємодією.
Цей тип пам’яті зберігає інформацію протягом однієї розмови або сесії. Це контекст поточного чату, що дозволяє агенту посилатися на попередні репліки в діалозі.
Приклад короткострокової пам’яті
Якщо користувач запитує: “Скільки коштує політ до Парижа?” і потім додає: “А як щодо проживання там?”, короткострокова пам’ять гарантує, що агент розуміє, що “там” стосується “Парижа” в межах тієї ж розмови.
Це інформація, що зберігається між кількома розмовами або сесіями. Вона дозволяє агентам пам’ятати вподобання користувача, історичні взаємодії або загальні знання протягом тривалого часу. Це важливо для персоналізації.
Приклад довгострокової пам’яті
Довгострокова пам’ять може зберігати інформацію, що “Бен любить кататися на лижах та займатися активним відпочинком на природі, полюбляє каву з видом на гори та хоче уникати складних лижних трас через минулу травму”. Ця інформація, здобута з попередніх взаємодій, впливає на рекомендації під час майбутніх сесій планування подорожей, роблячи їх дуже персоналізованими.
Цей спеціалізований тип пам’яті допомагає агенту розвивати послідовну “особистість” або “персону”. Вона дозволяє агенту пам’ятати деталі про себе або свою роль, роблячи взаємодії більш плавними та сфокусованими.
Приклад пам’яті персонажа
Якщо агент з подорожей задуманий як “експерт з планування лижних поїздок”, пам’ять персонажа може підсилювати цю роль, впливаючи на відповіді відповідно до тону та знань експерта.
Ця пам’ять зберігає послідовність кроків, які агент виконує під час складного завдання, включно з успіхами та невдачами. Це наче запам’ятовування конкретних “епізодів” або минулого досвіду для навчання на них.
Приклад епізодичної пам’яті
Якщо агент намагався забронювати конкретний рейс, але це не вдалося через відсутність квитків, епізодична пам’ять може зафіксувати цю невдачу, дозволяючи агенту спробувати альтернативні варіанти або інформувати користувача про проблему більш компетентно під час наступної спроби.
Це пов’язано з вилученням та запам’ятовуванням конкретних сутностей (наприклад, людей, місць чи предметів) і подій із розмов. Вона дозволяє агенту будувати структуроване розуміння ключових елементів обговорення.
Приклад пам’яті сутностей
З розмови про минулу подорож агент може вилучити сутності “Париж”, “Ейфелева вежа” та “вечеря у ресторані Le Chat Noir”. Під час майбутньої взаємодії агент міг би згадати “Le Chat Noir” і запропонувати зробити нове бронювання там.
Попри те, що RAG є більш загальною технікою, “Структурований RAG” підкреслюється як потужна технологія пам’яті. Він витягує щільну, структуровану інформацію з різних джерел (розмови, електронні листи, зображення) і використовує її для підвищення точності, відновлення та швидкості відповідей. На відміну від класичного RAG, який базується тільки на семантичній подібності, Структурований RAG працює з внутрішньою структурою інформації.
Приклад Структурованого RAG
Замість простої співставки ключових слів, Структурований RAG може розпарсити деталі рейсу (пункт призначення, дата, час, авіакомпанія) з листа і зберегти їх у структурованому вигляді. Це дозволяє здійснювати точні запити, наприклад: “Який рейс я забронював до Парижа у вівторок?”
Реалізація пам’яті для AI агентів включає системний процес управління пам’яттю, який охоплює генерування, збереження, вилучення, інтеграцію, оновлення та навіть “забуття” (видалення) інформації. Вилучення відіграє особливо важливу роль.
Один зі способів зберігати й керувати пам’яттю агентів — використовувати спеціалізовані інструменти, такі як Mem0. Mem0 працює як постійний рівень пам’яті, даючи агентам змогу пригадувати релевантні взаємодії, зберігати вподобання користувача й фактичний контекст, а також навчатися на успіхах і невдачах з часом. Ідея полягає в тому, що агенти без стану перетворюються на станкові.
Він працює за двофазним конвеєром пам’яті: витягування та оновлення. Спершу повідомлення, додані до потоку агента, відправляються до сервісу Mem0, який за допомогою великої мовної моделі (LLM) підсумовує історію розмови та витягує нові спогади. Потім керована LLM фаза оновлення визначає, чи додати, змінити чи видалити ці спогади, зберігаючи їх у гібридному сховищі даних, яке може включати векторні, графові та бази даних ключ-значення. Ця система також підтримує різні типи пам’яті і може інтегрувати графову пам’ять для керування відносинами між сутностями.
Ще одним потужним підходом є використання Cognee, відкритої семантичної пам’яті для AI агентів, що перетворює структуровані та неструктуровані дані в запитувані графи знань на основі embedding. Cognee надає подвійно-сховищну архітектуру, що поєднує пошук векторної схожості з графовими відносинами, дозволяючи агентам розуміти не лише інформацію, що є схожою, але й те, як концепції пов’язані між собою.
Він відзначається в гібридному вилученні, що поєднує векторну схожість, структуру графа та логічне міркування LLM — від простого пошуку шматків до граф-орієнтованого відповідання на запитання. Система підтримує живу пам’ять, яка розвивається і зростає, залишаючись запитуваною як єдиний пов’язаний граф, підтримуючи і короткостроковий контекст сесії, і довгострокову стійку пам’ять.
Навчальний записник Cognee (13-agent-memory-cognee.ipynb) демонструє створення цього об’єднаного шару пам’яті з практичними прикладами інтеграції різних джерел даних, візуалізацією графа знань і запитами з різними стратегіями пошуку, пристосованими до конкретних потреб агентів.
Окрім спеціалізованих інструментів пам’яті, таких як Mem0, ви можете використовувати потужні сервіси пошуку, як-от Azure AI Search як бекенд для збереження та вилучення пам’яті, особливо для структурованого RAG.
Це дозволяє вам підкріплювати відповіді агента власними даними, забезпечуючи більш релевантні та точні відповіді. Azure AI Search можна застосовувати для збереження пам’яті про подорожі користувачів, каталогів продукції або будь-яких інших специфічних доменних знань.
Azure AI Search підтримує можливості, як-от Структурований RAG, який чудово витягує та відновлює щільну, структуровану інформацію із великих наборів даних, таких як історії розмов, електронні листи чи навіть зображення. Це забезпечує “сверхлюдську” точність і повноту в порівнянні з традиційними методами розбиття тексту на шматки та embedding.
Звичайний шаблон для агентів, що самовдосконалюються, передбачає введення “агента знань”. Цей окремий агент спостерігає за основною розмовою між користувачем і головним агентом. Його роль:
Визначати цінну інформацію: з’ясувати, чи варто зберегти якусь частину розмови як загальні знання або специфічні вподобання користувача.
Вилучати та підсумовувати: виділити важливе навчання чи вподобання з розмови.
Зберігати у базі знань: зберігати цю інформацію, зазвичай у векторній базі даних, щоб її можна було вилучити пізніше.
Розширювати майбутні запити: коли користувач ініціює новий запит, агент знань вилучає релевантну збережену інформацію і додає її до підказки користувача, надаючи істотний контекст основному агенту (подібно до RAG).
• Управління затримкою: щоб уникнути уповільнення взаємодії з користувачем, можна спочатку використовувати дешевшу і швидшу модель для швидкої перевірки, чи варто зберігати або вилучати інформацію, і лише за необхідності викликати складніший процес витягування/оновлення.
• Підтримка бази знань: для зростаючої бази знань менш використовувану інформацію можна переносити до “холодного сховища” для оптимізації витрат.
Приєднуйтесь до Microsoft Foundry Discord, щоб зустрітися з іншими учнями, відвідати робочі години та отримати відповіді на ваші запитання про AI агентів.
Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичний переклад може містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або хибні тлумачення, що виникли внаслідок використання цього перекладу.