При обсуждении уникальных преимуществ создания 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 приложения часто являются статeless, то есть каждое взаимодействие начинается с нуля. Это приводит к повторяющемуся и разочаровывающему пользовательскому опыту, когда агент “забывает” предыдущий контекст или предпочтения.
Интеллект агента тесно связан с его способностью вспоминать и использовать прошлую информацию. Память позволяет агентам быть:
• Рефлексивными: учиться на прошлых действиях и результатах.
• Интерактивными: поддерживать контекст в ходе текущего разговора.
• Проактивными и реактивными: предвидеть потребности или адекватно реагировать на основе исторических данных.
• Автономными: действовать более независимо, опираясь на накопленные знания.
Цель реализации памяти — сделать агентов более надежными и способными.
Думайте о ней как о черновике, который агент использует во время отдельной, текущей задачи или процесса мышления. Она хранит непосредственную информацию, необходимую для вычисления следующего шага.
Для AI агентов рабочая память часто захватывает наиболее релевантную информацию из разговора, даже если вся история чата длинная или усечена. Она фокусируется на извлечении ключевых элементов, таких как требования, предложения, решения и действия.
Пример рабочей памяти
В агенте по бронированию путешествий рабочая память может содержать текущий запрос пользователя, например, «Я хочу забронировать поездку в Париж». Это конкретное требование находится в непосредственном контексте агента, чтобы направлять текущее взаимодействие.
Этот тип памяти сохраняет информацию на время одного разговора или сессии. Это контекст текущего чата, позволяющий агенту обращаться к предыдущим репликам диалога.
Пример краткосрочной памяти
Если пользователь спрашивает: «Сколько стоит билет на самолет в Париж?» и затем добавляет: «А как насчет проживания там?», краткосрочная память гарантирует, что агент знает, что «там» относится к «Парижу» в рамках одного разговора.
Это информация, которая сохраняется между несколькими разговорами или сессиями. Она позволяет агентам помнить предпочтения пользователя, исторические взаимодействия или общие знания в течение длительного времени. Это важно для персонализации.
Пример долгосрочной памяти
Долгосрочная память может хранить информацию, что «Бен любит кататься на лыжах и активный отдых на природе, предпочитает кофе с видом на горы и хочет избегать сложных лыжных трасс из-за прошлой травмы». Эта информация, усвоенная из предыдущих взаимодействий, влияет на рекомендации в будущих сессиях планирования путешествий, делая их очень персонализированными.
Этот специализированный тип памяти помогает агенту развивать последовательную «личность» или «персону». Она позволяет агенту запоминать детали о себе или о своей предполагаемой роли, делая взаимодействия более плавными и сфокусированными.
Пример персональной памяти
Если туристический агент создан как «эксперт по планированию лыжных поездок», персональная память может подкреплять эту роль, влияя на ответы агента, чтобы они соответствовали тону и знаниям эксперта.
Эта память хранит последовательность шагов, которые агент предпринимает при выполнении сложной задачи, включая успехи и неудачи. Это похоже на запоминание конкретных «эпизодов» или прошлых опытов для обучения на них.
Пример эпизодической памяти
Если агент пытался забронировать конкретный рейс, но это не удалось из-за отсутствия мест, эпизодическая память может зафиксировать этот неудачный опыт, позволяя агенту попробовать альтернативные рейсы или сообщить пользователю об этом более информированно во время следующей попытки.
Это извлечение и запоминание конкретных сущностей (например, людей, мест или объектов) и событий из разговоров. Это позволяет агенту создавать структурированное понимание ключевых обсуждаемых элементов.
Пример памяти сущностей
Из разговора о прошлой поездке агент может выделить «Париж», «Эйфелеву башню» и «ужин в ресторане Le Chat Noir» как сущности. В будущем агент сможет вспомнить «Le Chat Noir» и предложить забронировать там новый столик.
Хотя RAG — это более широкая техника, «Структурированный RAG» выделяется как мощная технология памяти. Она извлекает плотную, структурированную информацию из различных источников (разговоры, электронные письма, изображения) и использует её для повышения точности, полноты и скорости ответов. В отличие от классического RAG, который опирается исключительно на семантическое сходство, Структурированный RAG работает с внутренней структурой информации.
Пример структурированного RAG
Вместо простого совпадения ключевых слов Структурированный RAG может распарсить детали рейса (пункт назначения, дата, время, авиакомпания) из электронного письма и сохранить их в структурированном виде. Это позволяет делать точные запросы типа «Какой рейс я забронировал в Париж во вторник?»
Реализация памяти для AI агентов включает систематический процесс управления памятью, который включает генерацию, хранение, извлечение, интеграцию, обновление и даже «забывание» (удаление) информации. Особое значение имеет извлечение.
Один из способов хранения и управления памятью агента — это использование специализированных инструментов, таких как Mem0. Mem0 работает как слой постоянной памяти, позволяя агентам вспоминать релевантные взаимодействия, хранить предпочтения пользователя и фактический контекст, а также учиться на успехах и неудачах со временем. Идея в том, чтобы превратить статeless агентов в stateful.
Он работает через двухфазный конвейер памяти: извлечение и обновление. Сначала сообщения, добавленные в поток агента, отправляются в сервис 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 агентах.
Отказ от ответственности:
Этот документ был переведен с помощью автоматического сервиса перевода AI Co-op Translator. Несмотря на стремление обеспечить точность, просьба учитывать, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод специалистом. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.