$ sudo teach IT

Каждая сессия 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 — текущая работа, сроки и решения, которые нельзя вывести из кода или истории git
  • reference — где искать информацию вне проекта: трекер задач, дашборд, внутренняя вики

Не менее важно, чего 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. Закономерный вопрос — какой выбирать в конкретной ситуации, тем более что впереди есть и четвёртый. В следующем уроке разложим выбор по полочкам.

На следующий урок