Система памяти (Memories и Chronicle): как заставить Codex помнить вас между сессиями
📚 Навигация по серии: Предыдущая глава [18 · Подробный разбор конфигурации config.toml] разложила по полочкам все переключатели поведения — выбор моделей, песочницу и согласование в едином файле. В этой статье мы поговорим о более глубоком уровне: как заставить Codex помнить вас между сессиями. Речь пойдет не только о правилах, которые вы вручную прописываете в
AGENTS.md, но и о «личных заметках», которые агент делает сам в процессе работы. Например, если вы один раз исправите его ошибку, он тихо сохранит это в фоновом режиме и учтет при следующем запуске. Также мы подробно разберем Chronicle — эксклюзивный экспериментальный инструмент Codex, питающий память содержимым вашего экрана.
Начнем с реального фрагмента диалога с моим коллегой.
Коллега: «У тебя ведь включена память в Codex? Я только что сказал ему: „Впредь используй pnpm в этом проекте“, а он через минуту опять запустил
npm install!» Я: «Ты рассчитывал, что он запомнит это мгновенно?» Коллега: «Ну да, ошибок-то в интерфейсе не было». Я: «Память записывается не в реальном времени. Ему нужно, чтобы сессия простаивала какое-то время, и только тогда он сформирует резюме в фоновом режиме. Если ты проверяешь его сразу после слов, он, конечно, еще ничего не зафиксировал. К тому же жесткие правила вида „всегда использовать pnpm“ должны быть прописаны вAGENTS.md, не стоит полагаться исключительно на память».
Этот диалог иллюстрирует два самых частых заблуждения новичков о памяти Codex: первое — убежденность в мгновенном сохранении информации, и второе — попытка заменить памятью файл AGENTS.md. Оба утверждения ошибочны и ведут к сбоям в работе. В этой статье мы детально разберем устройство системы памяти Codex: когда она записывается, где хранится, как ей управлять и какие данные категорически не стоит ей доверять.
После прочтения этой статьи вы получите:
- Четкое понимание различий между двумя системами памяти: создаваемой вами
AGENTS.mdи генерируемой агентом Memories (сводная таблица сравнения) - Сведения о том, активна ли Memories по умолчанию, какие региональные ограничения на нее накладываются, как ее включить, в какой каталог она сохраняется и почему обновляется не мгновенно
- Способ управления поведением памяти на уровне сессии с помощью
/memories(использовать ли старую память и сохранять ли новую), а также описание ключевых переключателей вconfig.toml - Список рекомендаций «что стоит и чего не стоит доверять памяти» и описание критической границы безопасности
- Разбор Chronicle — уникальной экспериментальной функции Codex для обучения памяти по экрану: возможности, жесткие ограничения (только macOS и подписка Pro, недоступно в EU/UK/Швейцарии) и три официальных предупреждения о приватности
- Пошаговый практический сценарий запуска и проверки работоспособности памяти
ℹ️ Сравнение с Claude Code: там автопамять включена по умолчанию, разделяется по Git-репозиториям и считывает первые 200 строк или 25 КБ файла
MEMORY.md. В Codex логика иная: память по умолчанию отключена, имеет региональные ограничения, генерируется асинхронно в фоновом режиме, сохраняется по другому пути и управляется иначе. Отличия мы подробно разберем ниже.
01 Две независимые системы памяти
Сразу к выводам: в Codex за сохранение информации отвечают две независимые системы: создаваемая вами вручную (AGENTS.md) и генерируемая агентом самостоятельно (Memories). Многие думают только о Memories, но это лишь половина картины, причем менее надежная.
Аналогия: тактическая доска тренера vs блокнот скаута. Тренер расписывает расстановку игроков и схемы стандартов на тактической доске. Вся команда обязана следовать этой инструкции. Это AGENTS.md: правила задаются вами жестко, и агент считывает их перед началом каждой задачи. Другой инструмент — блокнот скаута на трибуне. Он записывает туда свои наблюдения: «этот соперник слабо защищается слева», «нападающий часто смещается в центр». Никто не просил его делать эти записи, он делает их сам по ходу игры. При следующей встрече с соперником он просто откроет блокнот. Это Memories. Оба инструмента полезны, но один представляет собой приказ («делай так»), а второй — личные заметки («я заметил закономерность»).
Сравнение двух систем:
| Параметр | AGENTS.md | Memories (память) |
|---|---|---|
| Кто создает | Вы (вручную) | Codex (автоматически) |
| Содержимое | Обязательные инструкции и правила | Стабильный контекст предыдущих сессий |
| Примеры данных | Команды сборки/тестирования, кодстайл, запреты | Стек технологий, проектные соглашения, частые сценарии, баги |
| Статус по умолчанию | Активен всегда (считывается из папки) | Отключен по умолчанию, требует активации |
| Надежность | Детерминированная (считывается при каждой задаче) | Вероятностная (фоновая генерация, без гарантий записи) |
| Фиксация в Git | Да, доступна всей команде | Нет, хранится локально на ПК в виде кэша |
Видите разницу? AGENTS.md — это жесткие рамки работы агента, а Memories — накопленный контекст для экономии времени. Официальное руководство подчеркивает это правило:
把必须始终生效的团队规迹,留在
AGENTS.md或签入仓库的文档里。把记忆当成一个有用的本地回忆层,而不是那些必须永远生效的规则的唯一来源。
Простыми словами: система Memories служит полезным дополнением, но не гарантирует защиту от ошибок. Мой коллега ошибся именно в этом, понадеявшись на Memories в критически важном вопросе. Правильным решением было бы зафиксировать требование pnpm в AGENTS.md (разбор создания этого файла приведен в главе 11).
На схеме показаны эти пути наложения контекста:

Слева — создаваемый вами файл AGENTS.md в репозитории (детерминированный путь); справа — накапливаемые Codex локально в папке ~/.codex/memories/ фоновые сессии Memories (вероятностный путь, отключен по умолчанию); внизу пунктиром обозначена служба Chronicle, считывающая данные с экрана (раздел 05). Оба пути формируют контекст новой сессии, помогая агенту помнить ваши предпочтения.
💡 Резюме одной фразой: память Codex состоит из двух частей —
AGENTS.md(ручные инструкции, детерминированная, считывается всегда, сохраняется в Git) и Memories (автоматическая, вероятностная, отключена по умолчанию, хранится локально на ПК). Жесткие правила фиксируйте только вAGENTS.md.
02 Логика Memories: активация, хранение и генерация
Рассмотрим детальнее систему Memories (память). Ее задача — избавить вас от необходимости прописывать «я пишу на TypeScript, не использую точки с запятой, запускаю тесты вот так» при старте каждой сессии. При активации Memories агент переносит ваши предпочтения, соглашения, технологический стек и опыт решения багов в последующие сессии.
Аналогия: сработанность со знакомым коллегой. Нового стажера приходится постоянно обучать мелочам. С коллегой, с которым вы работаете три года, вы понимаете друг друга с полуслова — он помнит ваши привычки. Memories превращает Codex из «нового сотрудника» в «проверенного напарника»: вы просто работаете, а он накапливает общие паттерны.
Активация (выключена по умолчанию)
В отличие от аналогов, в Codex сделан акцент на безопасности:
Memories 默认关闭,并且在欧洲经济区(EEA)、英国、瑞士于上线时不可用。在 Codex 设置里开启,或在
~/.codex/config.toml的[features]段里写memories = true。
Выберите один из способов включения:
Способ 1. Через конфигурационный файл (прописать в ~/.codex/config.toml для постоянной активации):
[features]
memories = trueСпособ 2. Через интерфейс настроек приложения (включить переключатель Memories).
⚠️ Территориальные ограничения реализованы программно: находясь в странах EEA, Великобритании или Швейцарии, вы не сможете включить память даже с использованием VPN.
Механизм записи данных: фоновый асинхронный процесс
В этом заключается ключевое отличие памяти Codex от интуитивных ожиданий новичков:
Во-первых, система выбирает только важные завершенные сессии. Codex анализирует историю и отбрасывает слишком короткие или незавершенные диалоги, чтобы не засорять память промежуточным мусором.
Во-вторых, генерация происходит при простое. Память не обновляется мгновенно после закрытия сессии. Codex ожидает, пока активность полностью прекратится на определенное время, и только потом запускает фоновый процесс суммаризации.
В-третьих, запись приостанавливается при лимитах. Если ваш лимит запросов (rate-limit) исчерпан более чем на установленный процент, фоновая генерация памяти откладывается для экономии ресурсов.
Аспект безопасности: при формировании записей Codex автоматически маскирует и удаляет найденные секретные ключи. Однако это лишь дополнительная мера защиты, правила безопасного обращения с секретами описаны ниже.
Место хранения
Файлы памяти сохраняются локально на вашем компьютере:
Структура каталога выглядит следующим образом (имена файлов генерируются системой):
~/.codex/memories/
├── (摘要文件)
├── (持久条目文件)
├── (近期输入文件)
└── (过往会话佐证文件)Ключевые особенности:
Каталог привязан к домашней папке. По умолчанию это ~/.codex. Если вы переопределили переменную CODEX_HOME, файлы будут находиться по новому пути в папке memories/.
Память является кэшем состояния. Разработчики рекомендуют: вы можете изучать эти файлы для отладки или перед экспортом служебного каталога ~/.codex, но не редактируйте эти Markdown-файлы вручную. Для управления используйте штатные параметры.
Сравнение параметров двух систем:
| Параметр | AGENTS.md | Memories |
|---|---|---|
| Статус по умолчанию | Активен при создании | Выключен, требуется ручное включение |
| Запись данных | При сохранении вами | В фоновом режиме при простое сессии |
| Локализация | В репозитории, попадает в Git | В папке ~/.codex/memories/ локально на ПК |
| Управление | Ручное редактирование | Через /memories и файлы конфигурации |
💡 Резюме одной фразой: Memories — это автоматически генерируемые локальные файлы в каталоге
~/.codex/memories/. Они отключены по умолчанию (требуетсяmemories = true). Данные пишутся не мгновенно, а асинхронно при простое сессии (и могут пропускаться при лимитах). Ключи безопасности деструктурируются, но не храните их там. Редактируйте память через команды, а не вручную.
03 Команда /memories и конфигурационные ключи
После включения Memories вам может потребоваться ограничить ее использование: например, при написании чернового кода или работе с конфиденциальными данными. Codex предлагает два уровня контроля: команду /memories в текущей сессии и глобальные параметры в файле конфигурации.
Аналогия: кнопки записи и воспроизведения на диктофоне. «Воспроизведение» определяет, использовать ли накопленные ранее данные, а «запись» — сохранять ли текущий диалог в общую базу. Вы можете отключить запись, но оставить воспроизведение (использовать старый опыт без сохранения новых экспериментов).
Уровень сессии: команда /memories
В интерфейсе приложения или TUI-терминале введите команду /memories (влияет только на текущий диалог):
/memoriesПоявится диалог выбора: использовать ли старую память, записывать ли текущую сессию или полностью отключить память для этого чата. Эти настройки не меняют глобальные параметры и сбрасываются при старте новой сессии.
Это полезно на практике: при стандартной работе оставляйте память включенной, а при выполнении конфиденциальных или экспериментальных задач сразу отключайте запись через /memories.
Глобальный уровень: ключи config.toml
Для настройки глобального поведения пропишите параметры в секцию [memories] файла ~/.codex/config.toml:
| Ключ | Назначение | Значение по умолчанию |
|---|---|---|
memories.use_memories | При false отключает внедрение накопленной памяти в новые сессии | true |
memories.generate_memories | При false отключает генерацию новых записей на основе текущих сессий | true |
memories.disable_on_external_context | При true исключает сессии с использованием MCP, поиска и внешних инструментов из процесса генерации памяти | false |
memories.min_rate_limit_remaining_percent | Минимальный процент оставшегося лимита запросов для запуска генерации памяти | 25 |
memories.extract_model | Переопределение модели для извлечения записей из сессий | По умолчанию |
memories.consolidation_model | Переопределение модели для объединения накопленной памяти | По умолчанию |
Пример отключения записи новых данных при сохранении старого опыта:
[memories]
generate_memories = false
use_memories = trueℹ️ Ключ
memories.disable_on_external_contextранее называлсяmemories.no_memories_if_mcp_or_web_search. Система по-прежнему принимает старое имя параметра. Использование внешних источников данных (будет описано в главе 20) может засорить память нерелевантным контекстом, поэтому их блокировка является хорошей практикой.
💡 Резюме одной фразой: в сессии используйте команду
/memoriesдля быстрого переключения чтения и записи. Глобально в секции[memories]файлаconfig.tomlглавными ключами служатuse_memoriesиgenerate_memories. Ключdisable_on_external_contextзащищает память от некорректного внешнего контекста (по умолчанию выключен).
04 Рекомендации по использованию памяти и критический рубеж безопасности
Разберем, какие типы данных подходят для Memories, а какие нельзя доверять этой системе. Memories по своей логике сохраняет только стабильный контекст, но вы должны четко понимать границы безопасности.
Сравнение типов данных приведено в таблице:
| ❌ Не доверяйте памяти (запишите в AGENTS.md / разовое / секреты) | ✅ Рекомендуется сохранять (стабильное / повторное) |
|---|---|
| «Использовать только pnpm» (всегда критично → пишем в AGENTS.md) | Основной стек технологий (TypeScript, PostgreSQL, pytest) |
| «Запустить порт 8081» (разовое значение, в будущем будет мешать) | Повторяющиеся рабочие сценарии (запуск линтера перед PR) |
| «Я отлаживаю страницу авторизации» (временный статус сессии) | Локальные проектные соглашения (тесты требуют запуска локальной БД) |
| Пароли, ключи API, токены (Секреты! Критическая ошибка!) | Опыт решения проблем (причина бага была в часовом поясе сервера) |
Три базовых правила:
Правило 1. Всегда ли критично правило? Если требование должно выполняться жестко при каждом запуске (например, сборщик или кодстайл), запишите его в AGENTS.md. Память Memories работает вероятностно и не дает гарантий.
Правило 2. Будет ли параметр меняться? Разовые порты, имена временных переменных или текущие задачи отладки засоряют базу. Сохраняйте только долгосрочный опыт.
Правило 3. Безопасность данных (критическая граница):
不要在记忆里存储密钥。Codex 会对生成的记忆字段做脱敏,但在分享你的 Codex 主目录或生成的记忆产物之前,你仍然应该检查记忆文件。
Маскирование данных — это лишь страховочная мера. Пароли, токены и приватные ключи хранятся в файлах памяти на диске в открытом текстовом виде. Никогда не передавайте их агенту для запоминания. Перед отправкой каталога ~/.codex третьим лицам или экспорте логов обязательно проверьте файлы в ~/.codex/memories/.
💡 Резюме одной фразой: критически важные и постоянные правила пишите только в
AGENTS.md; разовые и временные значения не сохраняйте; секретные ключи и пароли не должны попадать в память (файлы хранятся в открытом виде на диске). Всегда проверяйте каталогmemories/перед отправкой папки~/.codexтретьим лицам.
05 Chronicle: обучение памяти по экрану (экспериментально)
Разберем функцию Chronicle — уникальную особенность Codex, аналогов которой нет в Claude Code.
⚠️ Экспериментальная функция. Опция Chronicle находится на этапе предварительного тестирования (opt-in research preview). Расположение меню и логика работы могут меняться, сверяйтесь с официальной документацией.
Назначение инструмента
Обычная память Memories анализирует диалоги в чате Codex. Служба Chronicle идет дальше и считывает информацию прямо с вашего экрана. Она передает визуальный контекст операционной системы в систему памяти, помогая агенту понимать, на какую деталь интерфейса вы ссылаетесь и какие инструменты используете.
Аналогия: ассистент, который видит ваш монитор. Обычный помощник воспринимает только текст из чата. Ассистент со службой Chronicle видит открытые окна: «пользователь изучает ошибку компиляции», «открыта ветка PR в браузере». Это избавляет от необходимости копировать логи ошибок в чат. Chronicle помогает выявить нужные файлы, страницы документации, задачи Slack или ветки PR на основе того, что отображается на экране.
Системные и региональные ограничения
Это жесткие рамки, определяющие возможность запуска:
Chronicle 仅对 ChatGPT Pro 订阅者、且仅在 macOS 上可用,并且在 EU、英国、瑞士尚不可用。
Требования Chronicle:
- Активная подписка ChatGPT Pro;
- Операционная система macOS (Windows и Linux не поддерживаются);
- Запуск запрещен на территории EU, Великобритании и Швейцарии.
Службе требуются системные права macOS: Запись экрана (Screen Recording) и Универсальный доступ (Accessibility). Включение производится в настройках приложения: Codex App Settings → Personalization → активация Memories → включение Chronicle → подтверждение предупреждения безопасности → выдача прав в системе.
Три предупреждения о приватности
Внимательно изучите риски перед активацией:
- Повышенный расход лимитов. Фоновый агент Chronicle активно анализирует снимки экрана, что быстро расходует квоту запросов к моделям.
- Риск внедрения промптов (prompt injection). Анализ экрана повышает уязвимость: если на открытом в браузере сайте будет находиться скрытая инструкция для AI, Codex может выполнить ее. Эти риски подробно описаны в главе 16.
- Открытое локальное хранение. Сгенерированные файлы памяти сохраняются на жестком диске в открытом текстовом формате.
Взвесьте удобство и приватность. При работе с важными данными (банковские приложения, пароли, личные переписки) приостанавливайте работу службы. Для этого используйте значок Codex в строке меню macOS и выбирайте Pause Chronicle (возобновление — Resume Chronicle). Не используйте Chronicle для фиксации переписок и звонков с коллегами без их предварительного согласия.
Хранение данных и отправка в OpenAI
Детали работы с данными:
- Скриншоты сохраняются временно: файлы скриншотов находятся в папке
$TMPDIR/chronicle/screen_recording/на вашем диске и автоматически удаляются через 6 часов. - Локальные файлы памяти: хранятся по пути
$CODEX_HOME/memories_extensions/chronicle/в формате Markdown. Вы можете просматривать и редактировать их вручную для удаления конфиденциальных записей, но не пишите туда новые инструкции. - Обработка снимков на сервере: данные передаются на сервера OpenAI для распознавания текста (OCR) и суммаризации. Снимки удаляются сразу после обработки, не хранятся на серверах и не используются для обучения моделей.
💡 Резюме одной фразой: Chronicle — экспериментальная служба обучения памяти на основе записи экрана. Доступна только на macOS для подписчиков Pro (заблокирована в EU/UK/Швейцарии). Требует прав записи экрана и универсального доступа. Помните о расходе лимитов, угрозе внедрения промптов и локальном хранении данных в открытом виде. Используйте Pause Chronicle при работе с конфиденциальными данными.
Связи компонентов памяти показаны на схеме:

Схема показывает интеграцию обеих систем: Memories извлекает данные из диалогов и пишет в ~/.codex/memories/, а Chronicle считывает экран и пишет в ~/.codex/memories_extensions/chronicle/. Вся эта информация формирует контекст новой сессии.
06 Практика: активация Memories, запись и проверка результатов
Пройдем базовые шаги настройки: включение Memories → передача контекста в сессии → анализ локальных файлов → управление через команду /memories.
Примечание по терминалу: команды Unix-систем выполняются в macOS/Linux, в Windows рекомендуется использовать Git Bash или WSL. Символ
~указывает на домашний каталог пользователя (в Windows этоC:\Users\Имя_пользователя). В регионах EEA, Великобритании и Швейцарии выполнение практики невозможно из-за блокировки функции.
Шаг 1. Включаем Memories
Откройте ~/.codex/config.toml и добавьте (или создайте файл при его отсутствии):
[features]
memories = trueШаг 2. Создаем тестовую папку и запускаем сессию
mkdir memory-demo
cd memory-demo
codexШаг 3. Передаем агенту предпочтение
Задайте Codex правило работы для проверки:
这个项目以后统一用 pytest 跑测试,提交前先跑一遍。记住这个习惯。Ожидаемый результат: Codex подтвердит принятие информации. Помните: строка не запишется в файл сразу. Процесс генерации запустится асинхронно только после простоя сессии.
Шаг 4. Управление памятью в текущем диалоге
Введите команду:
/memoriesОжидаемый результат: в диалоговом окне переключите параметры чтения или записи (например, отключите генерацию для текущей сессии). Изменения применятся мгновенно для этого чата, не затрагивая глобальные файлы настроек.
Шаг 5. Проверка файлов памяти
Спустя некоторое время (после простоя сессии) проверьте папку Memories:
ls ~/.codex/memories/Ожидаемый результат: в папке появятся файлы с расширением .md (индексы, лог и суммаризация). Вы можете просмотреть их текстовым редактором. Наличие файлов подтверждает корректную фоновую генерацию памяти.
Если папка пуста спустя длительное время, проверьте статус флага
memoriesвconfig.toml, отсутствие блокировок вашего региона, активность сессии (слишком короткие сессии игнорируются) и оставшийся лимит rate-limit (должен быть выше 25%).
Практика настройки и базового контроля завершена.
💡 Резюме одной фразой: выполните последовательность «активация в config.toml → передача правила в чате (с учетом асинхронности) → вызов
/memoriesв чате → проверка файлов в каталогеmemories/через время».
07 Итоги
Мы разобрали устройство двух независимых систем памяти Codex и их отличия от аналогов.
Повторим ключевые выводы:
| Вопрос | Ответ |
|---|---|
| Сколько систем памяти | Две: AGENTS.md (создается вами вручную, детерминированная) и Memories (генерируется агентом, вероятностная) |
| Активация Memories | Выключена по умолчанию (ключ memories = true), заблокирована в EEA, Великобритании и Швейцарии |
| Механизм записи | Фоновый асинхронный, при простое сессии; деструктуризация ключей безопасности |
| Где хранится | В папке ~/.codex/memories/ локально на ПК (не фиксируется в Git) |
| Способ управления | Команда /memories для сессии и секция [memories] в config.toml глобально |
| Что сохранять | Постоянные правила пишем в AGENTS.md; секретные ключи и пароли не должны попадать в память |
| Chronicle | Обучение памяти по экрану (macOS, Pro, ограничения регионов). Расход лимитов, риск внедрения промптов, локальное хранение |
Теперь вы умеете: четко разделять задачи файлов AGENTS.md и Memories, переносить критические правила в AGENTS.md, активировать Memories и управлять путями к файлам. Вы можете контролировать чтение и запись через команду /memories и параметры файлов конфигурации, определять, какие данные подходят для памяти, а какие попадают под запреты безопасности. Также вы понимаете логику работы и риски использования службы Chronicle. Правильное управление памятью гарантирует перенос контекста сессий и страхует от рутинных ошибок.
Система памяти помогает Codex накапливать контекст вашей работы. Но чтобы расширить его возможности и дать доступ к внешним ресурсам, используется другой протокол.
💡 Резюме одной фразой: используйте связку детерминированной
AGENTS.mdи вероятностной Memories. Управляйте памятью через/memoriesи параметры конфигурации. Служба Chronicle служит экспериментальным дополнением для macOS Pro.
В следующей статье — 20 · Подключение внешних инструментов через MCP. Если память помогает Codex стать умнее, то MCP (Model Context Protocol) дает ему доступ к внешним системам: базам данных, API и сторонним сервисам через унифицированный протокол. В следующей главе вы поймете, почему так важен флаг disable_on_external_context из раздела 03. Небольшой вопрос на размышление: если вам нужно снабдить Codex новой информацией, когда стоит обучить его через память, а когда — подключить интерактивный внешний инструмент через MCP?