← Agent Memory / agent-memory / concepts
Как работает Agent Memory
Agent Memory представляет собой управляемый сервис, который наделяет ваши приложения постоянной памятью на основе ИИ. Он автоматически превращает необработанные разговоры в структурированные знания и находит нужный контекст именно тогда, когда он вам нужен.
Типы воспоминаний
Agent Memory классифицирует каждую извлечённую запись по одному из четырёх типов:
- Факты : устойчивые знания о человеке, проекте или инструменте. Предпочтения, идентификационные данные, связи и цели. Факты со временем изменяются через замену: когда новый факт заменяет более старый по той же теме, предыдущая версия сохраняется, но в результатах вызова памяти отображается последняя.
- События : завершённые действия, привязанные к определённому моменту времени. Развёртывания, решения, вехи и наблюдения. События накапливаются и не конфликтуют друг с другом.
- Инструкции : многократно используемые процедуры, рабочие процессы и соглашения. Как и факты, инструкции поддерживают замену при обновлении.
- Задачи : краткоживущие элементы в рамках сессии, такие как активные расследования и последующие действия. После завершения сессии приоритет задач снижается.
Как работает приём данных
Когда вы вызываете ingest(), Agent Memory обрабатывает разговор в несколько этапов:
-
Извлечение : ИИ читает разговор и выделяет отдельные значимые элементы. Каждый элемент представляет собой самостоятельную единицу знания с чётким описанием и сопутствующим содержимым.
-
Классификация : каждый извлечённый элемент классифицируется по типу записи памяти (факт, событие, инструкция или задача) и получает ключ темы, ключевые слова и поисковые запросы для последующего вызова.
-
Дедупликация : система проверяет наличие дубликатов как в текущей партии, так и среди уже сохранённых записей памяти. Факты и инструкции с одинаковым ключом темы заменяют более старые версии вместо создания дубликатов.
-
Хранилище : записи памяти сохраняются в постоянном хранилище с полнотекстовыми поисковыми индексами. Записи, не являющиеся задачами, также преобразуются в векторы для семантического поиска.
Исходные сообщения разговора всегда сохраняются дословно вместе с извлечёнными воспоминаниями, что сохраняет исходную стенограмму для полнотекстового поиска.
Как работает извлечение данных
Когда вы вызываете recall(), Agent Memory параллельно применяет несколько стратегий поиска:
-
Анализ запроса : ИИ анализирует ваш запрос, чтобы определить оптимальный способ поиска, формируя ключевые термины, ключи тем и векторы для семантического поиска.
-
Параллельное извлечение : система одновременно выполняет поиск по индексам ключевых слов, ключам тем, векторным индексам для семантического поиска и исходным сообщениям разговора.
-
Оценка и ранжирование : результаты из всех источников объединяются и ранжируются, чтобы выявить наиболее релевантные записи памяти при сохранении разнообразия методов поиска.
-
Синтез : ИИ формирует ответ на естественном языке на основе наиболее релевантных записей памяти, опираясь на реально сохранённое содержимое.
Если ни одна запись не соответствует запросу, recall() возвращает пустой ответ, а не генерирует недостоверный ответ.
Идемпотентность и дедупликация
Agent Memory разработан для безопасного повторного приёма данных:
-
Сообщения адресуются по содержимому. Каждое сообщение получает детерминированный ID, производный от его содержимого и сессии. Повторная отправка одного и того же сообщения не создаёт дубликат.
-
Сессии детерминированы. Если вы не укажете
sessionId, он формируется на основе содержимого сообщения. Один и тот же разговор всегда соответствует одной и той же сессии. -
Факты и инструкции со временем меняются. Когда новая запись памяти имеет тот же ключ темы, что и существующая (например, «editor preference»), старая запись помечается как заменённая. В результатах вызова памяти отображается последняя версия, но вся история сохраняется.