Коли ми говоримо про унікальні переваги створення AI-агентів, зазвичай обговорюються дві речі: здатність викликати інструменти для виконання завдань і здатність покращуватися з часом. Пам’ять є основою для створення самовдосконалюваних агентів, які можуть забезпечити кращий досвід для наших користувачів.
У цьому уроці ми розглянемо, що таке пам’ять для AI-агентів, як її можна керувати та використовувати для покращення наших застосунків.
Цей урок охоплює:
• Розуміння пам’яті AI-агентів: Що таке пам’ять і чому вона важлива для агентів.
• Реалізація та зберігання пам’яті: Практичні методи додавання можливостей пам’яті до ваших AI-агентів, зосереджуючись на короткостроковій та довгостроковій пам’яті.
• Створення самовдосконалюваних AI-агентів: Як пам’ять дозволяє агентам навчатися на основі минулих взаємодій і покращуватися з часом.
Цей урок включає два детальні навчальні ноутбуки:
• 13-agent-memory.ipynb: Реалізує пам’ять за допомогою Mem0 та Azure AI Search із використанням Semantic Kernel.
• 13-agent-memory-cognee.ipynb: Реалізує структуровану пам’ять за допомогою Cognee, автоматично створюючи граф знань на основі ембедингів, візуалізуючи граф і забезпечуючи інтелектуальний пошук.
Після завершення цього уроку ви знатимете, як:
• Розрізняти різні типи пам’яті AI-агентів, включаючи робочу, короткострокову, довгострокову пам’ять, а також спеціалізовані форми, такі як пам’ять персони та епізодична пам’ять.
• Реалізовувати та керувати короткостроковою та довгостроковою пам’яттю для AI-агентів за допомогою Semantic Kernel, використовуючи інструменти, такі як Mem0, Cognee, Whiteboard memory, та інтегруючи з 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-агентів, яке перетворює структуровані та неструктуровані дані в графи знань, що можна запитувати, підкріплені ембедингами. Cognee забезпечує архітектуру подвійного сховища, яка поєднує пошук за векторною схожістю з графовими відносинами, дозволяючи агентам розуміти не лише те, яка інформація схожа, але й як концепції пов’язані одна з одною.
Він відзначається гібридним пошуком, який поєднує векторну схожість, структуру графа та логіку LLM — від пошуку сирих фрагментів до запитів, обізнаних про граф. Система підтримує живу пам’ять, яка розвивається та зростає, залишаючись доступною як один пов’язаний граф, підтримуючи як короткостроковий контекст сесії, так і довгострокову постійну пам’ять.
Навчальний ноутбук Cognee (13-agent-memory-cognee.ipynb) демонструє створення цього уніфікованого шару пам’яті з практичними прикладами завантаження різноманітних джерел даних, візуалізації графа знань і запитів із різними стратегіями пошуку, адаптованими до конкретних потреб агента.
Окрім спеціалізованих інструментів пам’яті, таких як Mem0, ви можете використовувати надійні сервіси пошуку, такі як Azure AI Search, як бекенд для зберігання та отримання спогадів, особливо для структурованого RAG.
Це дозволяє базувати відповіді вашого агента на ваших власних даних, забезпечуючи більш релевантні та точні відповіді. Azure AI Search можна використовувати для зберігання спогадів про подорожі користувачів, каталогів продуктів або будь-яких інших знань, специфічних для домену.
Azure AI Search підтримує можливості, такі як структурований RAG, який відзначається вилученням і отриманням щільної, структурованої інформації з великих наборів даних, таких як історії розмов, електронні листи або навіть зображення. Це забезпечує “надлюдську точність і відтворення” порівняно з традиційними підходами до розбиття тексту та ембедингів.
Загальний підхід до створення самовдосконалюваних агентів включає введення “агента знань”. Цей окремий агент спостерігає за основною розмовою між користувачем і основним агентом. Його роль полягає в тому, щоб:
Визначати цінну інформацію: Вирішувати, чи варто зберігати якусь частину розмови як загальні знання або конкретні уподобання користувача.
Вилучати та підсумовувати: Виділяти основне навчання або уподобання з розмови.
Зберігати в базі знань: Зберігати цю вилучену інформацію, часто у векторній базі даних, щоб її можна було отримати пізніше.
Доповнювати майбутні запити: Коли користувач ініціює новий запит, агент знань отримує релевантну збережену інформацію та додає її до запиту користувача, забезпечуючи важливий контекст для основного агента (подібно до RAG).
• Управління затримкою: Щоб уникнути уповільнення взаємодії з користувачем, спочатку можна використовувати дешевшу, швидшу модель для швидкої перевірки, чи варто зберігати або отримувати інформацію, викликаючи більш складний процес вилучення/отримання лише за необхідності.
• Обслуговування бази знань: Для зростаючої бази знань менш часто використовувану інформацію можна перемістити в “холодне сховище” для управління витратами.
Приєднуйтесь до Azure AI Foundry Discord, щоб поспілкуватися з іншими учнями, відвідати години консультацій і отримати відповіді на ваші запитання про AI-агентів.
Відмова від відповідальності:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, звертаємо вашу увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.