5 механизмов памяти Claude Code - управление контекстом 2026 | AiManual
AiManual Logo Ai / Manual.
04 Май 2026 Гайд

Пять механизмов памяти Claude Code: как управлять контекстом и не терять данные

Полный разбор пяти механизмов памяти Claude Code: CLAUDE.md, ~/.claude/memory/, команды /memory, сжатие контекста, внешние файлы. Как не потерять данные в длите

Контекстная амнезия - болезнь, от которой мы лечимся неправильно

Вспомните: вы потратили 40 минут, объясняя Claude архитектуру микросервиса. Расписали эндпоинты, схемы БД, бизнес-логику. А через 20 сообщений он спрашивает: "Какой порт у сервиса payments?" И вы срываетесь.

Я был там. Это бесит. Но дело не в модели - дело в том, что вы используете только один механизм памяти из пяти, которые есть в Claude Code. Большинство разработчиков живут с одним CLAUDE.md и удивляются, почему контекст деградирует. Спойлер: даже контекст-инжиниринг для coding-агентов не сработает, если не понимать, как эти механизмы взаимодействуют.

Давайте разберем каждый по косточкам. Без воды, с реальными примерами и граблями.

1 CLAUDE.md - фундамент, который все кладут криво

CLAUDE.md - это файл с инструкциями, который Claude Code читает при старте сессии. Глобальный (в ~/.claude/) действует для всех проектов, локальный (в корне репо) - для конкретного.

90% разработчиков пишут туда "Я использую Python 3.11 и FastAPI". И всё. Этого хватит на первые 10 сообщений, но для длинной сессии - нет.

Типичная ошибка: класть в CLAUDE.md всё, что должно быть в памяти. Там место для правил, не для данных. Не пишите "база данных называется prod-db-01" - это должен хранить другой механизм.

Правильный CLAUDE.md описывает правила поведения:

# Глобальные правила
- Всегда уточняй, если не уверен в архитектурном решении
- Для генерации тестов используй pytest >= 7.0
- Не меняй версию Python без моего явного разрешения
- При рефакторинге сначала покажи план, потом код

Локальный CLAUDE.md может содержать описание модулей и их зоны ответственности. Но не конкретные значения. Подробнее про настройку CLAUDE.md я писал в статье про Context Engineering для Claude Code на длинных задачах.

2 ~/.claude/memory/ - ваша долгосрочная память на диске

Этот механизм - темная лошадка. Многие не знают, что Claude Code может читать файлы из ~/.claude/memory/ и использовать их как контекст в начале сессии. Но! Claude не ходит туда сам по каждому запросу - он загружает эти файлы при старте.

Структура памяти:

~/.claude/
  memory/
    project_x/
      architecture.md     # Схема связей сервисов
      credentials.yml     # Имена реальных БД, хостов (без паролей!)
      recent_decisions.md # Почему вы выбрали MongoDB вместо Postgres
    global/
      preferences.md      # Ваши личные предпочтения по стилю кода
      glossary.md         # Термины предметной области
💡
Совет: Разбейте память на папки проектов. При старте Claude Code можно явно указать claude --memory project_x - он подгрузит только нужное, сэкономив токены.

Важный нюанс: Claude читает эти файлы один раз. Если вы изменили файл посередине сессии - он не узнает об этом, пока не сделаете /reload или не перезапустите сессию. Помните об этом, когда работаете с динамическими данными.

3 /memory - сессионная память, которую вы забываете чистить

Команда /memory (или /m) - это временная записная книжка внутри сессии. Вы добавляете факты командой /memory add "payments сервис использует порт 8081".

Но есть подвох: /memory хранится только в текущей сессии. Вы закрыли терминал - всё пропало. Это не замена файлам. Используйте /memory для контекста, который живёт 1-2 дня: "сегодня работаем над веткой feature/x", "текущий баг - таймаут в 30 секунд".

Лучшая практика - в начале дня проговорить /memory add с ключевыми фактами, а вечером перенести важное в ~/.claude/memory/. И обязательно чистите /memory командой /memory clear перед стартом новой задачи, чтобы не засорять контекст.

Ошибка: использовать /memory для хранения 50 фактов. Контекстное окно не резиновое - каждая запись съедает токены. Если заметили, что Claude стал отвечать медленнее или терять нить разговора - проверьте /memory show, скорее всего там бардак.

4 Автоматическое сжатие контекста - невидимая рука, которая режет ваши данные

Когда сессия разрастается, Claude Code начинает сам сжимать старые сообщения в краткие резюме. Это черный ящик. Вы не видите, что именно было выброшено. И часто именно там были важные детали: точные названия переменных, пути к файлам, последовательность действий.

Механизм сжатия встроен в модель Claude (начиная с Claude Sonnet 4.5, а в Claude Opus 4.6 - еще агрессивнее). Вы не можете его отключить полностью, но можете контролировать триггеры:

  • Не засоряйте контекст логами и длинными выводом команд - используйте @read для чтения файлов.
  • Периодически делайте /compact - это принудительно сжимает историю, но вы решаете, что оставить, перенося важное в /memory.
  • Следите за количеством токенов в сессии: /tokens покажет примерную цифру. Если перевалило за 80% окна - пора чистить.

Как узнать, что сжатие сработало? Claude начнет давать общие ответы, переспрашивать то, что уже обсуждали, или использовать фразы "как вы упоминали ранее" - но неверно. Если заметили такое - бейте тревогу.

5 Внешние файлы и @-ссылки - контекст по требованию

Самый недооцененный механизм. Вы можете в любой момент сказать Claude "прочитай файл @src/api/routes.py" или "посмотри доку @docs/architecture.md". Claude загрузит этот файл в контекст.

Но хитрость в том, что каждый @read тратит токены. Если вы подгрузите 10 файлов по 1000 строк каждый - контекст заполнится мгновенно, и сжатие отрежет самое нужное.

Правильная стратегия:

  1. Никогда не загружайте целые файлы без необходимости. Используйте @src/api/routes.py:100-120 - прочитать только строки 100-120.
  2. Для документации используйте отдельный CLAUDE_DOCS.md, который подключается через CLAUDE.md (установка CLAUDE_DOCS_FILE=docs/guide.md в переменных окружения).
  3. Если часто подгружаете одни и те же файлы - вынесите их суть в ~/.claude/memory/.

Важно: @-ссылки работают только для файлов внутри проекта. Для внешних ресурсов используйте claude --url или явно скачивайте и передавайте.

Сравнительная таблица механизмов

Механизм Долговечность Затраты токенов Автоматизация Когда использовать
CLAUDE.md Постоянная (между сессиями) Низкие (читается 1 раз) Автоматически Правила, конвенции, общие настройки
~/.claude/memory/ Постоянная (пока не удалите) Средние (загружается при старте) По инициативе (флаг --memory) Долгосрочные факты, архитектура, глоссарий
/memory Только в сессии Низкие (маленький объем) Ручная команда Временный контекст задачи
Сжатие контекста Автоматическое (внутри сессии) Экономит токены Автоматически Когда контекст переполнен - спасает, но ненадежно
@-ссылки Только при запросе Высокие (весь файл) Ручная вставка Точечное чтение файлов, диагностика

Шестое чувство: как комбинировать и не сойти с ума

Вы не обязаны использовать все пять механизмов одновременно. Но если вы используете только один - вы проигрываете. Вот рабочий пайплайн, который я внедрил для своей команды:

  1. Утро: запуск сессии с claude --memory project_x - подгружаем данные из ~/.claude/memory/.
  2. В начале задачи: /memory add фиксируем цель и ключевые константы (порты, имена веток).
  3. В процессе: точечные @-ссылки на нужные файлы, избегаем чтения лишнего.
  4. Каждые 30-40 сообщений: /compact + /memory clear, затем /memory add с самым важным.
  5. Вечером: переносим ключевые факты из /memory в ~/.claude/memory/ и обновляем CLAUDE.md при необходимости.

Подробнее про управление сессиями и горячие клавиши читайте в гайде по горячим клавишам Claude Code.

Топ-3 ошибки, которые превращают память в тыкву

Ошибка 1: Дублирование данных - факт хранится и в CLAUDE.md, и в ~/.claude/memory/, и в /memory. При обновлении забываете где-то поправить. Итог: Claude видит противоречия. Решение: одно место для каждого типа данных.

Ошибка 2: Слишком большой CLAUDE.md - файл на 500 строк. Claude тратит кучу токенов на его чтение, а потом не может вспомнить, что вы просили сделать. Решение: выносите факты в memory, оставляйте только логику поведения.

Ошибка 3: Забываете про /reload - изменили файл в ~/.claude/memory/, а Claude продолжает работать со старой версией. Решение: после изменений в памяти делайте /reload.

Частые вопросы (FAQ)

Может ли Claude Code сам записывать в ~/.claude/memory/?

Нет, это ручное управление. Anthropic не дает модели права писать на диск без вашего ведома. Только через команду /memory write-to-disk (экспериментальная в Claude Code 0.6+, на май 2026).

Как проверить, сколько токенов занимает /memory?

Команда /tokens показывает примерную оценку для всей сессии, включая /memory. Отдельно не подсчитать, но можно сделать /memory show и оценить глазами.

Что будет, если контекстное окно заполнится полностью?

Claude Code автоматически запустит сжатие - старые сообщения будут заменены краткой сводкой. Если сжатие не помогает - сессия может упасть с ошибкой. Всегда следите за /tokens.

Поддерживает ли Claude Code --memory для глобальных файлов?

Да, флаг --memory работает и для глобальных, и для проектных путей. Можно указать несколько папок через запятую: --memory global,project_x.

Финальный совет: не ждите чуда от одного механизма

Самая опасная иллюзия - думать, что если положить всё в CLAUDE.md, то память будет вечной. Контекстное окно - это бюджет. Каждый механизм - это статья расходов. CLAUDE.md - это холодильник, куда вы кладете продукты. ~/.claude/memory/ - это кладовая. /memory - это список покупок на сегодня. @-ссылки - доставка конкретного продукта. А сжатие - это холодильник, который сам выбрасывает просрочку.

Вы - шеф-повар. Только вы решаете, что и когда готовить. Не перекладывайте это на автоматику. Начните с малого: сегодня добавьте один факт в ~/.claude/memory/, завтра попробуйте /compact - и вы увидите, как Claude перестанет тупить.

А если хотите копнуть ещё глубже - загляните в 10 скрытых настроек Claude Code. Там есть флаги, которые дадут вам полный контроль над памятью.

Подписаться на канал