Skip to content

Долговременная память между сессиями ​

Долговременная память хранит сведения о вызывающем, предпочтения в формулировках, устойчивые факты и долгосрочные интересы для использования в последующих сессиях. Данные изолируются по рабочему пространству и идентичности вызывающего: разные пространства, пользователи IM или гости встраивания ведут личную память раздельно.

Включение долговременной памяти ​

  1. Admin/Owner пространства включает переключатель пространства в «Настройки → Долговременная память»; по умолчанию выключено.
  2. Выберите «Запоминать только явно указанное» или «Автоматическое извлечение»; в автоматическом режиме можно указать модель извлечения, а пустое значение использует модель, применяемую в диалоге.
  3. В управлении личной памятью можно отключить свою память — даже если пространство включено, использование не навязывается.
  4. В диалоге явно укажите предпочтение, которое нужно запомнить, или добавьте его вручную через управление памятью; затем можно проверить в другой сессии, применяется ли оно.
  5. Регулярно просматривайте элементы, ожидающие подтверждения, подтверждайте, изменяйте или отклоняйте выводы; утратившие силу пункты можно удалить.
РежимПоведение
explicit_onlyЗаписывает только явно запрошенное для запоминания, без фоновой дистилляции через LLM
autoДополнительно извлекает из диалога в фоне, объединяя обработку по задержке и минимальному интервалу

Поле агента memory_enabled=false позволяет отдельно отключить чтение и запись памяти; при пропуске наследуется настройка пространства. IM/Embed используют предпочтения памяти привязанного агента; API Key должен иметь full-access, чтобы использовать интерфейсы управления личной памятью. Функциональность ограничивается совокупно переключателями пространства, личными и переключателем текущего запроса.

Управление памятью ​

ДействиеНазначение
Добавить / изменитьНапрямую вести личные сведения, предпочтения, факты, пункты или интересы; ручные изменения больше не перезаписываются фоновым извлечением
Подтвердить ожидающие элементыВыведенные элементы переходят из pending в доступные; без подтверждения они не внедряются в промпт. Если вывод предназначен для изменения существующей памяти, до подтверждения продолжает действовать старый элемент, а при подтверждении он заменяется; если вывод утратил силу, подтверждение завершится ошибкой, и список нужно обновить
Отклонить / удалитьОтменяет ошибочную или больше не нужную память; отклонение оставляет запись о подавлении, уменьшая повторное извлечение
Повышение темыНемедленно превращает неоднократно обсуждаемую тему в долгосрочный интерес; также можно прекратить отслеживание темы
Предпочтения по документамПросмотр часто цитируемых документов и удаление больше не нужных персональных предпочтений поиска
Немедленная организацияОбъединяет близкие по смыслу элементы и архивирует истёкшие пункты, не дожидаясь фоновой организации
Экспорт / очисткаСкачивает вашу память в формате JSON или очищает ваши данные памяти

Элементы памяти делятся на сведения, предпочтения, факты, пункты и интересы. Новые факты по одной теме могут заменять старые. Отключение личного переключателя приостанавливает использование, а удаление или очистка удаляют данные. Категории и значения статусов в интерфейсах см. в API памяти.

Влияние на ответы и поиск ​

Система использует сведения, предпочтения и интересы как постоянно присутствующий контекст с ограничением по длине и извлекает релевантные факты и пункты по текущему вопросу. После настройки векторной модели семантическое извлечение сортирует всю память данной идентичности по релевантности вопросу и не зависит от важности элементов; при включённом pgvector в PostgreSQL сортировка выполняется в базе данных, в остальных окружениях — внутри сервиса. Интеллектуальное рассуждение также может активно искать по памяти и истории диалогов. Память влияет только на понимание вопроса и выбор сведений, но не расширяет права доступа к базам знаний.

После включения персонализации поиска система использует темы для понимания вопроса и часто цитируемые документы для помощи в сортировке. В ленте диалога отображаются шаги, связанные с памятью. Фоновые задачи по каждой сессии фиксируют курсор извлечения и состояние ожидания обработки, поэтому ни серия вопросов подряд за короткое время, ни обрезка пакета, ни перезапуск сервиса не приводят к пропуску сообщений. Если вывод модели для некоторого фрагмента сообщений постоянно не удаётся разобрать, после не более чем трёх повторов этот фрагмент пропускается, и обработка последующих сообщений продолжается; пропущенные сообщения не извлекаются повторно автоматически.

Диагностика проблем с неработающей памятью ​

СимптомЧто проверить
Память не используетсяПереключатель пространства, личный переключатель, переключатель агента; убедиться, не сменились ли пространство или идентичность
Автоматическое извлечение не появилосьwrite_mode, задержку/минимальный интервал извлечения, подключение модели и фоновые задачи
Вывод не повлиял на ответНе находится ли он всё ещё в pending; он используется только после подтверждения
Больше не хотите ссылаться на некоторый документУдалите его в предпочтениях по документам; права доступа к базе знаний по-прежнему управляются отдельно
Немедленная организация не объединила ни одного элементаПосмотрите возвращённую причину skipped: возможно, элементов слишком мало или нет кандидатов

Конфигурация пространства ​

Администратор пространства может через страницу настроек вести переключатель памяти, режим извлечения и модель. Конфигурация хранится в memory_config и читается/обновляется через GET/PUT /tenants/kv/memory-config; полные поля см. в API памяти.

НазваниеТипПо умолчаниюОписание
enabledboolfalseПереключатель пространства
write_modestringexplicit_onlyexplicit_only / auto; другие значения трактуются как explicit_only
extract_model_idstringпустоМодель извлечения; при пустом значении используется модель диалога
extract_delay_secondsint90Извлечение с задержкой после завершения ответа, объединяющее несколько раундов сообщений за короткое время; диапазон 5–3600
extract_min_interval_secondsint300Минимальный интервал между двумя извлечениями для одного человека, управляет частотой вызовов; сообщения в пределах интервала обрабатываются позже; максимум 86400
extract_instructionsstringпустоСобственные правила извлечения пространства, не более 1000 символов
max_itemsint200Верхний предел активной памяти на одну идентичность, максимум 2000; 0 — использовать значение по умолчанию
interest_thresholdint3После появления темы в скольких сессиях формируется интерес, максимум 20
embedding_model_idstringпустоВекторная модель, используемая для извлечения памяти; при пустом значении выполняется только лексическое сопоставление
vector_recallboolпри пропуске включеноВключать ли семантическое извлечение при настроенной векторной модели
retrieval_conditioningboolпри пропуске включеноПозволяет памяти влиять на понимание вопроса и сортировку документов

Модель извлечения используется для фонового обобщения, векторная модель — для сопоставления с текущим вопросом. Функция памяти увеличивает соответствующее число вызовов модели; если модель используется конфигурацией памяти, при её удалении отображаются сведения о зависимостях.

Справочник по реализации ​

  • internal/application/service/memory/: область действия, извлечение, возврат, темы, предпочтения по документам, организация
  • internal/handler/memory.go, internal/router/routes_memory.go: личный API
  • internal/types/memory.go: модели, бюджет, статусы и конфигурация
  • frontend/src/views/settings/MemorySettings.vue, MemoryWorkspaceSettings.vue

Версия v0.8.3 · MIT License