Каждая сессия Claude Code начинается с чистого контекстного окна. Это значит, что всё, что вы объясняли вчера, сегодня забыто: что вы предпочитаете pnpm, что тесты API требуют локального Redis, что за очередным исправлением стоит договорённость команды, а не ваша прихоть.
Один способ бороться с этим вы уже знаете: писать инструкции руками в CLAUDE.md и правила. Но не всё стоит записывать вручную — часть знаний накапливается сама собой, из ваших поправок и уточнений по ходу работы, и садиться после каждой сессии переносить их в файл никто не станет.
Auto memory решает именно это: Claude сам ведёт заметки о вашей работе и подхватывает их в следующих сессиях. После урока вы будете понимать, что попадает в эти заметки, где они лежат, как их прочитать и поправить и как выключить механизм.
Что уже умеем / что добавим
Вы разобрались с CLAUDE.md, вложенными файлами и правилами с привязкой к путям — то есть с инструкциями, которые пишете вы. Теперь рассмотрим вторую систему памяти: ту, где автором выступает Claude. Разберём, чем она отличается от CLAUDE.md по содержанию и назначению, как устроено хранилище и как за ним следить.
Что вы узнаете в рамках статьи
- Чем auto memory отличается от CLAUDE.md по авторству, содержанию и области действия
- Какие четыре типа заметок Claude сохраняет и что он сознательно пропускает
- Где физически лежат файлы памяти и как устроен индекс
MEMORY.md - Что из памяти загружается при старте, а что читается по требованию
- Как просматривать, править и отключать auto memory
Ключевые термины
- Auto memory — механизм, при котором Claude сам сохраняет заметки о вашей работе и переносит их между сессиями.
MEMORY.md— индексный файл каталога памяти; загружается в начале каждой сессии.- Тематический файл — отдельный файл памяти с подробностями по одной теме; при старте не загружается, читается по необходимости.
- Тип заметки — категория памяти, записываемая в поле
typeво frontmatter:user,feedback,projectилиreference. autoMemoryEnabled— настройка включения и отключения механизма./memory— команда просмотра файлов памяти, их редактирования и переключения auto memory.
Две системы памяти и разделение труда
Обе системы загружаются в начале каждого разговора, и обе Claude воспринимает как контекст, а не как принудительную конфигурацию. Различия — в авторстве и содержании.
| CLAUDE.md | Auto memory | |
|---|---|---|
| Кто пишет | Вы | Claude |
| Что внутри | Инструкции и правила | Наблюдения и закономерности |
| Область | Проект, пользователь или организация | На репозиторий, общая для всех worktree |
| Загрузка | Каждая сессия | Каждая сессия, первые 200 строк или 25 КБ |
| Для чего | Стандарты кода, процессы, архитектура | Ваши предпочтения, ваши поправки, контекст проекта вне кода |
Формулировка «на репозиторий» существенна: каталог памяти определяется по git-репозиторию, поэтому все worktree и подкаталоги одного репозитория пользуются общей памятью. Вне git-репозитория за основу берётся корень проекта.
Разделение получается естественным. CLAUDE.md — когда вы хотите направлять поведение агента. Auto memory — когда хотите, чтобы он учился на ваших поправках без ручной работы.
Что именно попадает в память
Claude сохраняет четыре типа заметок, помечая их полем type во frontmatter:
user— ваша роль, область экспертизы, рабочие привычкиfeedback— ваши поправки и подтверждённые вами подходыproject— текущая работа, сроки и решения, которые нельзя вывести из кода или истории gitreference— где искать информацию вне проекта: трекер задач, дашборд, внутренняя вики
Не менее важно, чего Claude сознательно не сохраняет. Он пропускает всё выводимое из кодовой базы: архитектуру, пути к файлам, разобранные баги. Пропускает и то, что уже сказано в ваших CLAUDE.md, — дублировать смысла нет.
И записывает он не каждую сессию. Решение принимается по критерию «пригодится ли это в будущем разговоре», так что сессия без единой новой заметки — нормальное явление.
Есть и прямой способ: попросить запомнить. Фразы вроде «всегда используй pnpm, не npm» или «запомни, что тесты API требуют локального Redis» отправляются именно в auto memory. Если вам нужно в CLAUDE.md, попросите явно — «добавь это в CLAUDE.md» — или отредактируйте файл сами через /memory.
Где всё лежит и что загружается
Каждый проект получает свой каталог памяти:
~/.claude/projects/<project>/memory/
├── MEMORY.md # индекс, одна строка на заметку, грузится каждую сессию
├── user_role.md # одна заметка
├── feedback_testing.md # ещё одна
└── ... # прочие тематические файлы
MEMORY.md — это оглавление каталога. В начале каждого разговора загружаются его первые 200 строк или первые 25 КБ, смотря что наступит раньше. Всё, что дальше порога, в контекст не попадает.
Тематические файлы вроде user_role.md при старте не загружаются вовсе. Claude читает их обычными файловыми инструментами, когда содержимое действительно нужно. Схема получается двухуровневой: короткий индекс постоянно в контексте, подробности — по запросу.
Индекс поддерживается компактным, и не только силами Claude. После записи в MEMORY.md Claude Code сверяет файл с ограничениями и, если тот приблизился к порогу, напоминает укоротить: держать по строке на заметку, переносить детали в тематические файлы, объединять и удалять устаревшее. Если файл порог превысил, запись всё равно проходит, но возвращается ошибка с требованием переписать индекс — иначе всё за порогом потеряется при следующей загрузке.
Стоит помнить, что память привязана к машине: между компьютерами и облачными окружениями она не синхронизируется. Зато она защищена от автоматической уборки — Claude Code удаляет старые расшифровки сессий по истечении срока хранения, но файлы каталога памяти из этой уборки исключены.
Ещё деталь: в подагентов основная память разговора не загружается. Подробнее о подагентах речь пойдёт позже в курсе.
Управление: просмотр, правка, отключение
Auto memory включён по умолчанию. Все файлы — обычный markdown, доступный для чтения, правки и удаления в любой момент.
Основной инструмент — команда /memory. Она перечисляет ваши CLAUDE.md, CLAUDE.local.md и прочие места хранения памяти по пользовательскому и проектному уровням, включая ещё не созданные файлы. Оттуда же открывается каталог auto memory и переключается сам механизм. Выбор файла открывает его в редакторе; если файла не было, он сначала создаётся.
Признак работы механизма виден прямо в интерфейсе: сообщения вида «Saved 2 memories» или «Recalled 2 memories» означают, что Claude обратился к каталогу памяти.
Отключить можно тремя способами. Переключатель в /memory пишет autoMemoryEnabled в пользовательские настройки ~/.claude/settings.json. Для одного проекта достаточно настроек проекта:
{
"autoMemoryEnabled": false
}
Через переменную окружения — CLAUDE_CODE_DISABLE_AUTO_MEMORY=1.
Место хранения тоже настраивается — ключом autoMemoryDirectory, значение которого должно быть абсолютным путём или начинаться с ~/:
{
"autoMemoryDirectory": "~/my-custom-memory-dir"
}
Частые ошибки
- Считать auto memory заменой CLAUDE.md. Это разные инструменты: командные договорённости, которые должны попасть в репозиторий, пишутся в CLAUDE.md руками. Память локальна для машины и не синхронизируется — коллеги её не увидят.
- Никогда не заглядывать в каталог памяти. Заметки накапливаются, и часть со временем устаревает: сменился подход, отменилось решение. Заглядывайте в
/memoryвремя от времени и вычищайте неактуальное. - Раздутый
MEMORY.md. Индекс с многострочными записями быстро упирается в порог, и всё, что за ним, перестаёт загружаться. Формат один: строка на заметку, детали — в тематические файлы. - Ожидание, что запомнится всё сказанное. Claude сохраняет только то, что сочтёт полезным в будущем, и пропускает выводимое из кода. Если что-то обязано действовать всегда, это инструкция для CLAUDE.md, а не надежда на память.
Наиболее частые вопросы
- Как узнать, что уже сохранено? — Выполните
/memoryи откройте каталог auto memory. Всё внутри — обычный markdown, доступный для чтения и правки. - Память общая для всех моих проектов? — Нет, у каждого проекта свой каталог. Он определяется по git-репозиторию, поэтому все worktree и подкаталоги одного репозитория делят одну память.
- Синхронизируется ли память между машинами? — Нет, она хранится локально. Для другой машины или облачного окружения её придётся наполнять заново.
- Что произойдёт, если
MEMORY.mdперерастёт лимит? — Запись пройдёт, но вернётся ошибка с требованием переписать индекс, поскольку содержимое за порогом при следующей загрузке будет отброшено. - Как попросить записать что-то именно в CLAUDE.md? — Скажите об этом прямо: «добавь это в CLAUDE.md». Без уточнения просьба запомнить уйдёт в auto memory.
Итоги
Отличная работа: картина памяти проекта сложилась целиком. Вы знаете обе системы и их разделение труда — инструкции пишете вы, наблюдения накапливает Claude. Вы понимаете, какие четыре типа заметок он ведёт и что пропускает, как устроено хранилище, что грузится при старте, а что по требованию, и как всем этим управлять.
Вместе с прошлыми двумя уроками у вас теперь три механизма: CLAUDE.md, правила и auto memory. Закономерный вопрос — какой выбирать в конкретной ситуации, тем более что впереди есть и четвёртый. В следующем уроке разложим выбор по полочкам.