Зачем агенту нужна отдельная память
В обычном ChatGPT-чате «память» модели — это просто список сообщений system/user/assistant/tool, который подставляется в каждый новый запрос. Для агента этого недостаточно. Когда программа выполняет многошаговый процесс — например, собирает профиль получателя подарка, генерирует список кандидатов, фильтрует по бюджету и региону, готовит финальную подборку — ей нужно помнить, на каком шаге она остановилась, какие данные уже получены и что пользователь подтвердил. Если всё это хранить только в контексте промпта, вы быстро упрётесь в лимит окна контекста и начнёте платить токенами за повторяющиеся факты. К тому же вместе с каждым запросом в модель улетает много лишних данных, что увеличивает расходы и снижает безопасность. Поэтому в агентных системах всегда существует явное состояние — объекты, которые живут вне истории сообщений и управляются разработчиком.
Три слоя состояния агента: контекст, сессия, постоянное хранилище
У агента принято выделять три уровня памяти. Первый — история сообщений (dialogue context): это то, что LLM видит на каждом шаге. Её плюс в том, что за ведение отвечает SDK, минус — в избыточности и «грязных» данных. Второй — сессионное состояние (session state): структурированный объект, который живёт в рамках одного разговора. Он напоминает useState или Redux-store во фронтенде: там лежат текущий шаг workflow, временный кэш результатов инструментов, флажки подтверждений. Третий — долгоживущее состояние (persistent state): профиль пользователя, история заказов, сохранённые настройки. Оно хранится в базе данных (Postgres, NoSQL) и читается агентом через явные инструменты-запросы, а не через магическое «запоминание». Такая архитектура позволяет избежать перегрузки контекста и сохранять важные данные между сессиями.
Session state: структура и примеры данных
Session-состояние — это краткосрочная рабочая память, которая существует, пока активен диалог с агентом. Его главные обитатели:
- Текущий шаг процесса (например,
"collecting_profile"или"filtering_candidates") - Черновики профилей, введённые пользователем (возраст, интересы, предпочтения)
- Идентификаторы товаров-кандидатов, полученные от бекенда
- Выбранный пользователем вариант
- Технические флаги: локаль, язык, подтверждение условий
Такое состояние можно хранить в Redis, in-memory KV-хранилище или через встроенный SessionService конкретного SDK. Важно не пытаться упаковать эти данные в system-prompt — это приведёт к неоправданному расходу токенов.
Persistent state: что остаётся после сессии
Долгоживущее состояние — это данные, которые переживают отдельные диалоги. Сюда входят профиль пользователя, его заказы, сохранённые списки желаний и настройки. Ключевой принцип: агент не «помнит» эти данные магически, а читает их через инструменты — например, вызов get_user_profile() или get_past_orders(). Никаких скрытых глобальных переменных. Такой подход даёт три преимущества:
- Данные не засоряют контекст текущего диалога
- Их можно централизованно обновлять без влияния на активные сессии
- Повышается безопасность: доступ к persistent-данным контролируется через API, а не через промпт
Где брать и как конвертировать session данные ChatGPT
Session-данные ChatGPT — это JSON-объект, который можно получить по адресу https://chatgpt.com/api/auth/session после входа в аккаунт в браузере. Он содержит accessToken и sessionToken — конфиденциальные учётные данные. Для работы с ними существуют инструменты-конвертеры, которые позволяют локально (в браузере, без отправки на сервер) преобразовать этот JSON в форматы, пригодные для импорта в CPA, Sub2API, Cockpit, 9Router, Codex, AxonHub или Codex-Manager. Они поддерживают как вставку текста, так и перетаскивание файлов. Важно: сессии, полученные из официального веб-API, содержат только accessToken и не имеют refresh_token. Для форматов, строго требующих refresh_token, инструменты генерируют безопасное значение-заглушку.
Настройка персонализации ChatGPT для лучшего использования сессий
Правильная настройка профиля в ChatGPT напрямую влияет на то, как модель обрабатывает сессионные данные. В меню «Настроить ChatGPT» можно указать:
- Кто вы: «UX-дизайнер», «учитель химии» — это избавляет от необходимости каждый раз объяснять контекст
- Обращение: «на ты» или «на вы» — задаёт тональность
- Характеристики: «пиши кратко», «будь дружелюбным» — определяет стиль ответов
- Дополнительная информация: регион, предпочтения, ограничения
Эти инструкции применяются к новым чатам, если включена соответствующая опция. Они не заменяют session state, но помогают модели быстрее адаптироваться к пользователю, снижая нагрузку на контекст.
Управление памятью и конфиденциальность сессий
ChatGPT предлагает функцию «Память», которая позволяет модели запоминать информацию между сессиями — имя, стиль, повторяющиеся указания. Этим можно управлять: просматривать, что запомнено, и удалять отдельные факты или всё сразу. Для безопасности рекомендуется:
- Отключить опцию «Улучшить модель для всех» — иначе ваши диалоги могут использоваться для обучения
- Использовать многофакторную аутентификацию
- Периодически проверять, что именно запомнила модель
- При работе с чужими устройствами — выйти из аккаунта
Session-данные (accessToken) никогда не должны передаваться третьим лицам. Все операции с ними, включая конвертацию, безопаснее выполнять локально.
Практические советы по работе с сессионными данными
Несколько рекомендаций для эффективной работы:
- Не храните в session state то, что можно восстановить — идентификаторы пользователей, а не полные профили
- Используйте временные кэши для результатов дорогих инструментов, чтобы не перезапрашивать данные
- Чётко отделяйте слои: история сообщений — для диалога, session state — для прогресса, persistent — для долгосрочных данных
- При конвертации сессий всегда проверяйте, какие поля обязательны для целевого формата, и не пренебрегайте заглушками там, где это уместно
- Регулярно чистите память ChatGPT, особенно если делитесь устройством или работаете с чувствительной информацией
Ограничения и типичные ошибки при использовании session данных
Основные ограничения, которые стоит учитывать:
- Сессионные токены ChatGPT (accessToken) живут не вечно — при длительном бездействии их нужно обновлять через повторный вход
- Инструменты конвертации не всегда корректно распознают невалидные сессии — они автоматически фильтруют записи без accessToken или email и выводят причину пропуска
- Если вы импортируете сессии в форматы, требующие refresh_token, заглушка может не работать в некоторых сценариях — тестируйте перед использованием
- Память ChatGPT пока доступна не всем пользователям и включается постепенно — не полагайтесь на неё как на единственное хранилище
Вопросы и ответы
Что такое session данные ChatGPT и где их взять?
Session данные — это JSON-объект, содержащий accessToken и sessionToken, которые подтверждают вашу авторизацию в ChatGPT. Чтобы их получить, войдите в аккаунт в браузере, затем откройте https://chatgpt.com/api/auth/session и скопируйте весь отображаемый JSON. Эти данные конфиденциальны — не передавайте их никому.
Чем session state отличается от persistent state в агентах?
Session state — это краткосрочная память, которая живёт в рамках одного диалога: текущий шаг workflow, временные кэши, флажки. Persistent state — долгоживущие данные между сессиями: профиль пользователя, история заказов, настройки. Session state хранится в Redis или in-memory, persistent — в базе данных (Postgres, NoSQL).
Как конвертировать session данные ChatGPT в другие форматы?
Можно использовать локальные инструменты-конвертеры, которые работают прямо в браузере без отправки данных на сервер. Они поддерживают вставку JSON или перетаскивание файлов и умеют генерировать форматы для CPA, Sub2API, Cockpit, 9Router, Codex, AxonHub и Codex-Manager. Невалидные записи автоматически фильтруются.
Что делать, если при конвертации session данных отсутствует refresh_token?
Сессии из официального веб-API ChatGPT содержат только accessToken и не имеют refresh_token. Для форматов, которые строго требуют это поле, инструменты генерируют безопасное значение-заглушку, позволяющее успешно выполнить импорт.
Как настроить ChatGPT, чтобы он запоминал мои предпочтения между сессиями?
Заполните профиль в разделе «Настроить ChatGPT»: укажите, кто вы, как к вам обращаться, какие характеристики ответов предпочитаете. Включите опцию «Применять пользовательские настройки в новых чатах». Функция «Память» позволяет модели запоминать факты между диалогами — её можно включить и управлять через раздел «Управление памятью».
Как безопасно работать с session данными на чужом устройстве?
Всегда выходите из аккаунта после завершения работы (опция «Выйти на этом устройстве»). Никогда не сохраняйте session JSON в общедоступных местах. Используйте двухфакторную аутентификацию. Если конвертируете данные — делайте это только в локальных инструментах, которые не отправляют токены на сервер.
Что произойдёт, если я удалю все чаты в ChatGPT?
Удаление чатов очищает историю диалогов, но не затрагивает session state (который живёт в рамках текущей сессии) и persistent state (профиль, настройки). Если вы используете функцию «Память», она будет продолжать помнить сохранённые факты, пока вы их не удалите отдельно.