Перейти к тексту

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.

Проверь себя

Источники

Текст подготовлен с помощью LLM и может содержать неточности.