Управление памятью Claude
@ai_longreadsКак управлять памятью Claude Code между сессиями, используя различные типы хранилищ и лучшие практики.
Это AI-перевод статьи, сделанный каналом Про AI: Лучшие Статьи и Исследования.
Управление памятью Claude
Manage Claude's memory Оригинальный текст:
У Claude Code есть два вида памяти, которые сохраняются между сессиями:
- Автоматическая память: Claude автоматически сохраняет полезный контекст — паттерны проекта, ключевые команды и ваши предпочтения. Эта информация сохраняется между сессиями.
- Файлы CLAUDE.md: Markdown-файлы, которые вы создаёте и поддерживаете с инструкциями, правилами и предпочтениями для Claude.
Оба типа загружаются в контекст Claude в начале каждой сессии, хотя автоматическая память загружает только первые 200 строк основного файла.
Выбор типа памяти
Claude Code предлагает несколько расположений для памяти в иерархической структуре, каждое из которых служит своей цели.
Управляемая политика располагается в системных путях: на macOS — /Library/Application Support/ClaudeCode/CLAUDE.md, на Linux — /etc/claude-code/CLAUDE.md, на Windows — C:\Program Files\ClaudeCode\CLAUDE.md. Это организационные инструкции, управляемые IT/DevOps. Типичные примеры использования — корпоративные стандарты кодирования, политики безопасности, требования комплаенса. Такая память распространяется на всех пользователей в организации.
Память проекта хранится в ./CLAUDE.md или ./.claude/CLAUDE.md. Это командные инструкции для проекта, которые используются для описания архитектуры, стандартов кодирования и типичных рабочих процессов. Доступна всем членам команды через систему контроля версий.
Правила проекта находятся в ./.claude/rules/*.md. Это модульные тематические инструкции проекта — например, рекомендации по конкретному языку, соглашения о тестировании, стандарты API. Доступны членам команды через систему контроля версий.
Пользовательская память хранится в ~/.claude/CLAUDE.md. Это ваши личные предпочтения для всех проектов — стиль кода, личные ярлыки для инструментов. Доступна только вам и действует для всех проектов.
Локальная память проекта — файл ./CLAUDE.local.md. Это ваши персональные настройки для конкретного проекта: URL-адреса песочниц, предпочитаемые тестовые данные. Доступна только вам в текущем проекте.
Автоматическая память хранится в ~/.claude/projects//memory/. Это автоматические заметки и наблюдения Claude — паттерны проекта, выводы при отладке, заметки об архитектуре. Доступна только вам для каждого проекта отдельно.
Файлы CLAUDE.md в иерархии каталогов выше рабочей директории загружаются полностью при запуске. Файлы CLAUDE.md в дочерних каталогах загружаются по требованию, когда Claude читает файлы в этих поддеревьях. Автоматическая память загружает только первые 200 строк MEMORY.md. Более конкретные инструкции имеют приоритет над более общими.
Файлы CLAUDE.local.md автоматически добавляются в .gitignore, что делает их идеальными для приватных настроек проекта, которые не должны попадать в систему контроля версий.
Автоматическая память
Автоматическая память — это постоянная директория, в которую Claude записывает свои наблюдения, паттерны и выводы по мере работы. В отличие от файлов CLAUDE.md, содержащих инструкции, которые вы пишете для Claude, автоматическая память содержит заметки, которые Claude пишет сам для себя на основе того, что обнаруживает во время сессий.
Автоматическая память распространяется постепенно. Если вы не видите эту функцию, можно включить её принудительно, установив переменную окружения CLAUDE_CODE_DISABLE_AUTO_MEMORY=0.
Что запоминает Claude
В процессе работы Claude может сохранять:
- Паттерны проекта: команды сборки, соглашения о тестировании, предпочтения по стилю кода
- Выводы при отладке: решения сложных проблем, частые причины ошибок
- Заметки об архитектуре: ключевые файлы, связи между модулями, важные абстракции
- Ваши предпочтения: стиль коммуникации, рабочие привычки, выбор инструментов
Где хранится автоматическая память
Каждый проект получает собственную директорию памяти по пути ~/.claude/projects//memory/. Путь определяется от корня git-репозитория, поэтому все поддиректории в рамках одного репозитория используют одну директорию автоматической памяти. Git worktrees получают отдельные директории памяти. Вне git-репозитория используется рабочая директория. Директория содержит файл-точку входа MEMORY.md и необязательные тематические файлы:
~/.claude/projects//memory/ ├── MEMORY.md # Краткий индекс, загружается в каждую сессию ├── debugging.md # Подробные заметки о паттернах отладки ├── api-conventions.md # Решения по проектированию API └── ... # Любые другие тематические файлы, которые создаёт Claude
MEMORY.md выступает индексом директории памяти. Claude читает и записывает файлы в эту директорию на протяжении всей сессии, используя MEMORY.md для отслеживания того, что и где хранится.
Как это работает
- Первые 200 строк
MEMORY.mdзагружаются в системный промпт Claude в начале каждой сессии. Содержимое после 200-й строки не загружается автоматически, и Claude получает инструкцию держать файл компактным, перемещая подробные заметки в отдельные тематические файлы. - Тематические файлы вроде
debugging.mdилиpatterns.mdне загружаются при запуске. Claude читает их по требованию с помощью стандартных файловых инструментов, когда ему нужна эта информация. - Claude читает и записывает файлы памяти во время вашей сессии, поэтому вы будете видеть обновления памяти по ходу работы.
Управление автоматической памятью
Файлы автоматической памяти — это обычные markdown-файлы, которые можно редактировать в любой момент. Используйте команду /memory, чтобы открыть селектор файлов, включающий точку входа автоматической памяти наряду с файлами CLAUDE.md. Чтобы попросить Claude запомнить что-то конкретное, скажите ему напрямую: «запомни, что мы используем pnpm, а не npm» или «сохрани в память, что для API-тестов нужен локальный экземпляр Redis». Когда ни одна из переменных не задана, автоматическая память следует графику постепенного развёртывания. Обратите внимание на логику двойного отрицания в имени переменной: DISABLE=0 означает «не отключать», то есть принудительно включает автоматическую память.
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 # Принудительно выключить export CLAUDE_CODE_DISABLE_AUTO_MEMORY=0 # Принудительно включить
Импорты в CLAUDE.md
Файлы CLAUDE.md могут импортировать дополнительные файлы с помощью синтаксиса @путь/к/файлу. Вот пример, импортирующий 3 файла:
See @README for project overview and @package.json for available npm commands for this project. # Additional Instructions - git workflow @docs/git-instructions.md
Допускаются как относительные, так и абсолютные пути. Относительные пути разрешаются относительно файла, содержащего импорт, а не рабочей директории. Для приватных настроек проекта, которые не должны попадать в систему контроля версий, лучше использовать CLAUDE.local.md: он автоматически загружается и добавляется в .gitignore. Если вы работаете с несколькими git worktrees, CLAUDE.local.md существует только в одном из них. Используйте импорт из домашней директории, чтобы все worktrees использовали одни и те же персональные инструкции:
# Individual Preferences - @~/.claude/my-project-instructions.md
При первом обнаружении внешних импортов в проекте Claude Code показывает диалог подтверждения со списком конкретных файлов. Подтвердите, чтобы загрузить их; откажитесь, чтобы пропустить. Это решение принимается один раз для каждого проекта: после отказа диалог больше не появляется, а импорты остаются отключёнными.
Во избежание возможных коллизий импорты не обрабатываются внутри markdown-блоков кода и инлайн-кода.
This code span will not be treated as an import: `@anthropic-ai/claude-code`
Импортированные файлы могут рекурсивно импортировать дополнительные файлы с максимальной глубиной в 5 переходов. Посмотреть, какие файлы памяти загружены, можно с помощью команды /memory.
Как Claude находит файлы памяти
Claude Code ищет файлы памяти рекурсивно: начиная с текущей рабочей директории, он поднимается вверх по дереву каталогов до корневого каталога / (не включая его) и читает все найденные файлы CLAUDE.md и CLAUDE.local.md. Это особенно удобно при работе в больших репозиториях, когда вы запускаете Claude Code в foo/bar/, а файлы памяти есть и в foo/CLAUDE.md, и в foo/bar/CLAUDE.md. Claude также обнаруживает файлы CLAUDE.md в поддеревьях текущей рабочей директории. Вместо загрузки при запуске они подключаются только тогда, когда Claude читает файлы в этих поддеревьях.
Загрузка памяти из дополнительных директорий
Флаг --add-dir даёт Claude доступ к дополнительным директориям вне основной рабочей директории. По умолчанию файлы CLAUDE.md из этих директорий не загружаются. Чтобы также загружать файлы памяти (CLAUDE.md, .claude/CLAUDE.md и .claude/rules/\*.md) из дополнительных директорий, установите переменную окружения CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD:
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config
Прямое редактирование памяти с помощью /memory
Используйте команду /memory во время сессии, чтобы открыть любой файл памяти в системном редакторе для более масштабных дополнений или реорганизации.
Настройка памяти проекта
Предположим, вы хотите настроить файл CLAUDE.md для хранения важной информации о проекте, соглашений и часто используемых команд. Память проекта можно хранить в ./CLAUDE.md или ./.claude/CLAUDE.md. Создать начальный CLAUDE.md для вашей кодовой базы можно следующей командой:
Советы:
- Включите часто используемые команды (сборка, тестирование, линтинг), чтобы не искать их повторно
- Документируйте предпочтения по стилю кода и соглашения об именовании
- Добавьте важные архитектурные паттерны, специфичные для вашего проекта
- Файлы памяти CLAUDE.md можно использовать как для инструкций, которыми вы делитесь с командой, так и для ваших индивидуальных предпочтений
Модульные правила с помощью .claude/rules/
Для крупных проектов можно организовать инструкции в несколько файлов, используя директорию .claude/rules/. Это позволяет командам поддерживать сфокусированные, хорошо организованные файлы правил вместо одного большого CLAUDE.md.
Базовая структура
Разместите markdown-файлы в директории .claude/rules/ вашего проекта:
your-project/ ├── .claude/ │ ├── CLAUDE.md # Основные инструкции проекта │ └── rules/ │ ├── code-style.md # Рекомендации по стилю кода │ ├── testing.md # Соглашения о тестировании │ └── security.md # Требования безопасности
Все файлы .md в .claude/rules/ автоматически загружаются как память проекта с тем же приоритетом, что и .claude/CLAUDE.md.
Правила для конкретных путей
Правила можно ограничить определёнными файлами с помощью YAML-фронтматтера с полем paths. Такие условные правила применяются только когда Claude работает с файлами, соответствующими указанным шаблонам.
--- paths: - "src/api/**/*.ts" --- # Правила разработки API - Все эндпоинты API должны включать валидацию входных данных - Используйте стандартный формат ответа об ошибке - Включайте комментарии документации OpenAPI
Правила без поля paths загружаются безусловно и применяются ко всем файлам.
Glob-паттерны
Поле paths поддерживает стандартные glob-паттерны.
Паттерн **/*.ts соответствует всем TypeScript-файлам в любой директории. Паттерн src/**/* соответствует всем файлам в директории src/. Паттерн *.md — markdown-файлам в корне проекта. Паттерн src/components/*.tsx — React-компонентам в конкретной директории.
Можно указать несколько паттернов:
--- paths: - "src/**/*.ts" - "lib/**/*.ts" - "tests/**/*.test.ts" ---
Поддерживается раскрытие фигурных скобок для сопоставления нескольких расширений или директорий:
---
paths:
- "src/**/*.{ts,tsx}"
- "{src,lib}/**/*.ts"
---
# Правила TypeScript/ReactЭто раскрывает src/**/*.{ts,tsx} для сопоставления как с .ts, так и с .tsx файлами.
Поддиректории
Правила можно организовать в поддиректории для лучшей структуры:
.claude/rules/ ├── frontend/ │ ├── react.md │ └── styles.md ├── backend/ │ ├── api.md │ └── database.md └── general.md
Все файлы .md обнаруживаются рекурсивно.
Символические ссылки
Директория .claude/rules/ поддерживает символические ссылки, что позволяет использовать общие правила в нескольких проектах:
# Символическая ссылка на общую директорию правил ln -s ~/shared-claude-rules .claude/rules/shared # Символическая ссылка на отдельные файлы правил ln -s ~/company-standards/security.md .claude/rules/security.md
Символические ссылки разрешаются, и их содержимое загружается в обычном режиме. Циклические символические ссылки обнаруживаются и обрабатываются корректно.
Пользовательские правила
Вы можете создать персональные правила, которые будут применяться ко всем вашим проектам, в ~/.claude/rules/:
~/.claude/rules/ ├── preferences.md # Ваши личные предпочтения в кодировании └── workflows.md # Ваши предпочитаемые рабочие процессы
Пользовательские правила загружаются раньше правил проекта, давая правилам проекта более высокий приоритет.
Лучшие практики для .claude/rules/:
- Сохраняйте правила сфокусированными: каждый файл должен охватывать одну тему (например,
testing.md,api-design.md) - Используйте описательные имена файлов: имя файла должно указывать, о чём правила
- Используйте условные правила экономно: добавляйте фронтматтер
pathsтолько когда правила действительно применимы к конкретным типам файлов - Организуйте с помощью поддиректорий: группируйте связанные правила (например,
frontend/,backend/)
Управление памятью на уровне организации
Организации могут развёртывать централизованно управляемые файлы CLAUDE.md, которые применяются ко всем пользователям. Для настройки управления памятью на уровне организации:
- Создайте управляемый файл памяти в расположении управляемой политики, указанном в разделе о типах памяти выше.
- Разверните с помощью вашей системы управления конфигурацией (MDM, Group Policy, Ansible и т.д.) для обеспечения единообразного распространения на все машины разработчиков.
Лучшие практики работы с памятью
- Будьте конкретны: «Используйте отступ в 2 пробела» лучше, чем «Форматируйте код правильно».
- Используйте структуру для организации: оформляйте каждую отдельную запись памяти как маркированный пункт и группируйте связанные записи под описательными заголовками markdown.
- Периодически пересматривайте: обновляйте записи памяти по мере развития проекта, чтобы Claude всегда использовал самую актуальную информацию и контекст.
Подпишитесь на канал и каждый день читайте лучшие материалы про AI переведенные на русский!
Нашли интересную статью для перевода? Пришлите нашему боту: @ailongreadsbot