Когда речь идет о преимуществах создания 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. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.