Память

Экспорт и перенос памяти ассистента

Если память нельзя выгрузить, вы арендуете своё прошлое. Разбираем форматы выгрузки, что в них обычно не попадает и как проверить полноту экспорта до того, как он понадобится.

Ассистент, которым вы пользуетесь второй год, знает о вас больше, чем любой рабочий инструмент. Вопрос, который стоит задать до того, как это станет важно: что произойдёт с этим знанием, если вы перестанете пользоваться именно этим ассистентом?

Если ответ «ничего, я всё выгружу» — проверьте. Если ответ «не знаю» — вы арендуете своё прошлое, и условия аренды может менять не вы.

#Зачем и когда это нужно

Три ситуации, в которых экспорт перестаёт быть теорией.

Смена инструмента. Продукт закрылся, изменил условия или просто перестал устраивать.

Переезд. Новый компьютер, новый диск, новый сервер. Здесь важна не только память, но и весь архив — процедура для локальной установки разобрана в гайде про перенос инстанса на другой диск.

Страховка. Резервная копия на случай отказа диска или собственной ошибки. Для локальной базы это отдельная тема — см. материал про резервное копирование и восстановление SQLite.

Первая ситуация самая тяжёлая, потому что в ней нужен не файл, а переносимый формат.

#Что понадобится

  • Доступ к выгрузке данных в вашем ассистенте.
  • Понимание, что именно вы хотите сохранить: переписку, отобранные факты, связи, архив захвата — это разные вещи разного объёма.
  • Место под выгрузку. Текстовая часть измеряется мегабайтами; архив скриншотов — десятками гигабайт.

#Что бывает в выгрузке

Что Переносимо Замечание
Переписка да самый распространённый формат выгрузки
Отобранные факты о вас зависит от продукта ключевая часть, чаще всего отсутствует отдельно
Связи графа редко обычно пересчитываются заново
Векторный индекс не нужно пересчитывается из текста, переносить бессмысленно
Сводки диалогов иногда восстанавливаются из переписки
Настройки и характер иногда часто заменяются вручную быстрее
Архив захвата экрана зависит десятки гигабайт, обычно не переносят

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

Четвёртая строка — приятная: векторы переносить не нужно и не следует. Они привязаны к конкретной модели-эмбеддеру, и на новом месте всё равно считаются заново. Их отсутствие в выгрузке — не пробел, а правильное решение.

#Как это устроено в Persona

Два разных механизма для двух разных задач, и их стоит различать.

Выгрузка своих данных — /settings/my-data. Доступна каждому пользователю, отдаёт JSON или тот же JSON в zip. Внутри: учётная запись, личные настройки, согласия, все чаты со всеми сообщениями, личная память с полями версионирования, рефлексии, навыки, сущности и рёбра графа, социальный слой. Каждый запрос отфильтрован по идентификатору пользователя, а значения, похожие на секреты, заменены на пометку о том, что ключ есть, без самого ключа.

Важная деталь: в выгрузку памяти попадают и отменённые записи вместе с отметками valid_until и ссылкой на заменившую запись. То есть выгружается не только «что верно сейчас», но и «что считалось верным раньше».

Полный снимок — /api/export/full.zip. Копия базы плюс миниатюры, аудио и загрузки агента. Это инструмент переезда, а не выгрузки личных данных: снимок инстанса содержит всё, включая чужие данные на многопользовательской установке, поэтому доступ к нему ограничен.

Отдельно: владельческая страница приватности умеет отдать личную память в виде markdown-файла — читаемый список, удобный для просмотра, но менее полный, чем JSON.

Три ограничения, которые стоит назвать прямо:

  • Векторный индекс в выгрузку не входит. Как и должно быть: он пересчитывается.
  • Снимок всей базы — не персональная выгрузка. На инстансе с несколькими пользователями это дамп чужих данных тоже, поэтому он владельческий.
  • Архив захвата экрана — только у владельца инстанса. Захват, таймлайн и всё производное от них одно-тенантны; у остальных участников этих данных нет вовсе.

#Чек-лист проверки полноты экспорта

Проверять надо не по описанию, а по файлу. Восемь пунктов, каждый занимает минуту.

  1. Скачайте выгрузку прямо сейчас, не дожидаясь необходимости. Половина проблем обнаруживается на этом шаге.
  2. Откройте файл и найдите раздел с фактами о вас. Не переписку — именно список фактов. Если его нет, память не выгружается, и это главный ответ.
  3. Сверьте число записей с тем, что показывает интерфейс памяти. Расхождение означает, что часть не попала.
  4. Проверьте наличие отменённых записей. Если в выгрузке только актуальное, история версий теряется при переносе.
  5. Найдите даты. Факт без даты создания резко теряет ценность: непонятно, актуален ли он.
  6. Проверьте, читается ли формат без исходного продукта. JSON и markdown читаются, проприетарный дамп — нет.
  7. Убедитесь, что секреты не выгружены в открытом виде. Ключи провайдеров в выгрузке быть не должны — только отметка их наличия.
  8. Оцените объём. Если выгрузка весит гигабайты, в ней медиа, а не память; текстовая часть должна быть мегабайтами.

Пункт 4 отличает серьёзную выгрузку от формальной: история изменений факта — то, что нельзя восстановить постфактум ниоткуда. Если в файле только актуальные записи, вы переносите срез, а не память.

#Что делать с выгрузкой на новом месте

Честная часть: готового импорта между разными ассистентами не существует, и обещать его нельзя. Форматы разные, модели хранения разные, у одного факты плоские, у другого — граф.

Реалистичный порядок переноса:

  1. Перенесите переписку как архив. Она нужна как источник и как история, но не должна сразу становиться памятью.
  2. Перенесите список фактов вручную или скриптом. Их обычно десятки, а не тысячи; ручной перенос занимает вечер и заодно работает как аудит.
  3. Не переносите то, что устарело. Переезд — лучший момент избавиться от фактов о закрытых проектах и бывших обстоятельствах.
  4. Не переносите производное. Векторы, сводки, связи графа пересчитаются на новом месте из перенесённого текста.
  5. Проверьте результат вопросами. Задайте новому ассистенту пять вопросов, ответы на которые старый знал. Это единственная содержательная проверка.

Пункт 2 звучит как поражение — «вручную», — но именно он показывает реальный масштаб: настоящей памяти о человеке обычно немного. В Persona, например, автоматическое пополнение вообще ограничено бюджетом активных записей, и это осознанное решение против превращения памяти в свалку. Устройство уровней памяти, объясняющее, почему выгружать надо в основном верхние, разобрано в статье о том, как работает память у ИИ.

#Экспорт и удаление — две стороны одного вопроса

Продукт, который умеет выгрузить ваши данные, обычно умеет и удалить их: и то и другое требует знать, где эти данные лежат.

Обратное тоже верно: если удаление устроено как «мы перестанем показывать», выгрузка, скорее всего, тоже неполная. Проверять эти две функции стоит вместе — процедура удаления разобрана в гайде как удалить факт из памяти ИИ, а полное удаление учётной записи — в материале про удаление аккаунта и данных.

#Частые вопросы

#В каком формате лучше хранить выгрузку?

JSON для полноты и markdown для читаемости — вместе. JSON сохраняет структуру и поля версионирования, markdown позволяет просмотреть память глазами через год, когда никакого исходного продукта уже может не быть.

#Нужно ли выгружать векторный индекс?

Нет. Векторы привязаны к конкретной модели-эмбеддеру и её размерности; на новом месте они всё равно считаются заново. Переносить надо тексты, из которых они получаются.

#Как часто делать выгрузку?

Как резервную копию: по расписанию, а не по настроению. Раз в месяц достаточно, если вы не ведёте в ассистенте ничего критичного. Важнее регулярности другое — хотя бы раз проверить, что выгрузка открывается и содержит то, что вы думаете.

#Можно ли перенести память между разными ассистентами автоматически?

Универсального импорта нет. Практический путь — выгрузить факты в читаемый список и внести их в новый инструмент вручную или простым скриптом. Это заодно вынуждает пересмотреть, что из накопленного вам ещё нужно.

#Что делать, если продукт не даёт выгрузить память?

Считать это ответом на вопрос о переносимости и учитывать при выборе — сравнение по этому свойству есть в материале Persona против памяти ChatGPT. Обходной путь один: выгрузить переписку и извлечь факты из неё самому, но это уже восстановление, а не перенос, и часть контекста теряется.

#Отличается ли выгрузка от резервной копии?

Отличается назначением. Резервная копия — снимок для восстановления в том же продукте; выгрузка — читаемое представление для переноса в другой. Первая обычно полнее, вторая — переносимее. Держать стоит обе.

#Вывод

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

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт