Долговременная память между сессиями
Долговременная память хранит сведения о вызывающем, предпочтения в формулировках, устойчивые факты и долгосрочные интересы для использования в последующих сессиях. Данные изолируются по рабочему пространству и идентичности вызывающего: разные пространства, пользователи IM или гости встраивания ведут личную память раздельно.
Включение долговременной памяти
- Admin/Owner пространства включает переключатель пространства в «Настройки → Долговременная память»; по умолчанию выключено.
- Выберите «Запоминать только явно указанное» или «Автоматическое извлечение»; в автоматическом режиме можно указать модель извлечения, а пустое значение использует модель, применяемую в диалоге.
- В управлении личной памятью можно отключить свою память — даже если пространство включено, использование не навязывается.
- В диалоге явно укажите предпочтение, которое нужно запомнить, или добавьте его вручную через управление памятью; затем можно проверить в другой сессии, применяется ли оно.
- Регулярно просматривайте элементы, ожидающие подтверждения, подтверждайте, изменяйте или отклоняйте выводы; утратившие силу пункты можно удалить.
| Режим | Поведение |
|---|---|
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 памяти.
| Название | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | bool | false | Переключатель пространства |
write_mode | string | explicit_only | explicit_only / auto; другие значения трактуются как explicit_only |
extract_model_id | string | пусто | Модель извлечения; при пустом значении используется модель диалога |
extract_delay_seconds | int | 90 | Извлечение с задержкой после завершения ответа, объединяющее несколько раундов сообщений за короткое время; диапазон 5–3600 |
extract_min_interval_seconds | int | 300 | Минимальный интервал между двумя извлечениями для одного человека, управляет частотой вызовов; сообщения в пределах интервала обрабатываются позже; максимум 86400 |
extract_instructions | string | пусто | Собственные правила извлечения пространства, не более 1000 символов |
max_items | int | 200 | Верхний предел активной памяти на одну идентичность, максимум 2000; 0 — использовать значение по умолчанию |
interest_threshold | int | 3 | После появления темы в скольких сессиях формируется интерес, максимум 20 |
embedding_model_id | string | пусто | Векторная модель, используемая для извлечения памяти; при пустом значении выполняется только лексическое сопоставление |
vector_recall | bool | при пропуске включено | Включать ли семантическое извлечение при настроенной векторной модели |
retrieval_conditioning | bool | при пропуске включено | Позволяет памяти влиять на понимание вопроса и сортировку документов |
Модель извлечения используется для фонового обобщения, векторная модель — для сопоставления с текущим вопросом. Функция памяти увеличивает соответствующее число вызовов модели; если модель используется конфигурацией памяти, при её удалении отображаются сведения о зависимостях.
Справочник по реализации
internal/application/service/memory/: область действия, извлечение, возврат, темы, предпочтения по документам, организацияinternal/handler/memory.go,internal/router/routes_memory.go: личный APIinternal/types/memory.go: модели, бюджет, статусы и конфигурацияfrontend/src/views/settings/MemorySettings.vue,MemoryWorkspaceSettings.vue
