Claude Code: работа с coding-агентом5. Как направлять агента
Auto memory: инструкции, которые агент пишет себе сам
Засчитывается, когда отвечены все вопросы квиза
Зачем это нужно
Весь раздел — о том, чтобы вы сами решали, что попадает в контекст агента. Но есть источник инструкций, который пишете не вы. Три месяца назад вы попросили агента запускать тесты через npm, потом проект перешёл на pnpm, а агент упорно возвращается к npm. В CLAUDE.md этого нет. Значит, правило лежит в auto memory — заметках, которые Claude Code ведёт сам.
Как это устроено
Что записывает агент
Auto memory позволяет Claude накапливать знания между сессиями без вашего участия. В процессе работы Claude сохраняет заметки четырёх типов и пишет тип в поле type во frontmatter файла:
user— ваша роль, опыт и предпочтения;feedback— ваши поправки и подходы, которые вы подтвердили;project— текущая работа, сроки и решения, которые не выводятся из кода и истории git;reference— где искать информацию вне проекта: трекер задач, дашборд.
То, что можно вывести из кода, и то, что уже есть в CLAUDE.md, Claude не сохраняет. Если вы просите «запомни, что мы используем pnpm», запись тоже попадает в auto memory. Чтобы правило попало в CLAUDE.md, так и скажите: «добавь это в CLAUDE.md».
Где хранится и что загружается
У каждого проекта своя папка ~/.claude/projects/<project>/memory/. <project> выводится из git-репозитория, поэтому все worktree и поддиректории одного репозитория делят одну папку. Внутри лежат индекс MEMORY.md, где каждой заметке отведена строка, и по файлу на каждую заметку.
В начале каждой сессии загружаются первые 200 строк MEMORY.md или первые 25 КБ — смотря какой предел достигнут раньше. Сами файлы заметок при старте не загружаются: Claude читает их по требованию. Это знакомая схема: индекс — push, заметки — point.
Папка лежит вне репозитория и только на вашей машине. Поэтому заметки не видны в git status, не проходят code review и не доходят до коллег. Claude Code не удаляет их при очистке старых транскриптов: они остаются, пока вы или Claude их не отредактируете или не удалите.
Почему это отложения, которые пишут себя сами
Auto memory — те же отложения из 5.6, только их никто не выбирал. Предпочтение, от которого вы отказались, остаётся заметкой, и агент продолжает ей доверять. Подсказка, подходившая к одной задаче, превращается в правило для всех следующих. Claude Code напоминает агенту сжать индекс и убрать устаревшее, только когда MEMORY.md приближается к лимиту. А строки, которые написали не вы, вы вряд ли станете пропалывать сами.
Практика автора оригинального курса — выключить auto memory и управлять агентом только через файлы, которые пишете вы. Аргумент — тот же, что во всём разделе: в контексте должно быть только то, что вы выбрали и поддерживаете в актуальном виде. Если вам удобнее оставить её включённой, хотя бы регулярно читайте папку и удаляйте устаревшее.
Как включить и выключить
/memory— показывает файлыCLAUDE.md, переключатель auto memory и пункт, который открывает папку заметок. Переключатель сохраняетautoMemoryEnabledв~/.claude/settings.json."autoMemoryEnabled": falseв настройках проекта выключает auto memory только для этого проекта.- Переменная окружения
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1тоже её выключает.
В локальных сессиях auto memory включена по умолчанию.
Практика
Выполните /memory в Cadence. Посмотрите, включена ли auto memory, и откройте папку заметок. Прочитайте MEMORY.md и пару файлов заметок. Для каждой заметки задайте вопросы из 5.6: это всё ещё правда? Это не повтор CLAUDE.md? Меняет ли она поведение агента? Удалите то, что не проходит, и решите, оставлять ли auto memory включённой. Если выключаете — через переключатель в /memory.
Подводные камни
- Индекс длиннее лимита. Запись в
MEMORY.mdсверх 200 строк или 25 КБ проходит: Claude Code лишь просит агента переписать индекс. Но всё, что за лимитом, при следующем старте не загрузится. - Заметки не уходят в subagent-ы. Auto memory основного разговора в subagent не загружается; исключение — fork, который наследует разговор целиком.
Вывод: auto memory — это инструкции, которые вы не писали и не проверяете; либо выключите её, либо пропалывайте её так же, как CLAUDE.md.
Проверь себя
Почему заметка из auto memory никогда не появляется в code review?
~/.claude/projects/<project>/memory/
git status
. Заметки не пересоздаются: они остаются, пока вы или Claude их не отредактируете или не удалите.
Три месяца назад вы попросили агента использовать npm, а теперь проект на pnpm. В CLAUDE.md о npm ни слова, но агент упорно запускает npm. Что вы сделаете?
/memory
и удалите устаревшую запись
CLAUDE.md
«используй pnpm» и оставите заметку как есть
CLAUDE.md
даст две противоречащие инструкции, а из противоречащих правил Claude может выбрать любое. Источник проблемы — заметка, её и нужно удалить.
MEMORY.md разросся до 300 строк. Что из него Claude увидит в начале следующей сессии?
MEMORY.md
или первые 25 КБ — смотря какой предел достигнут раньше. Остальное отбрасывается. Целиком при старте загружаются файлы
CLAUDE.md
, а не индекс auto memory.
Вы хотите выключить auto memory только в одном рабочем проекте, а в остальных оставить. Что подойдёт?
"autoMemoryEnabled": false
в настройках этого проекта
~/.claude/projects/<project>/memory/
/memory
/memory
сохраняет значение в пользовательские настройки
~/.claude/settings.json
, то есть для всех проектов. Удаление папки стирает заметки, но не выключает механизм: Claude начнёт писать заново.
Источники
- Anthropic, How Claude remembers your project
- Anthropic, Commands
- По мотивам AI Coding Crash Course, AI Hero
Текст подготовлен с помощью LLM и может содержать неточности.