Как Claude запоминает ваш проект
Дайте Claude постоянные инструкции с помощью файлов CLAUDE.md или AGENTS.md и позвольте Claude автоматически накапливать знания с помощью auto memory.
Каждый сеанс Claude Code начинается со свежего context window. Два механизма переносят знания между сеансами:
- Файлы CLAUDE.md: инструкции, которые вы пишете, чтобы дать Claude постоянный контекст. Claude также может читать файлы
AGENTS.mdрепозитория отдельно или вместе с CLAUDE.md - Auto memory: заметки, которые Claude пишет сам на основе ваших исправлений и предпочтений
На этой странице рассматривается, как:
- Писать и организовывать файлы CLAUDE.md
- Использовать существующий AGENTS.md как инструкции вашего проекта отдельно или вместе с CLAUDE.md
- Ограничивать правила определёнными типами файлов с помощью
.claude/rules/ - Настраивать auto memory так, чтобы Claude автоматически делал заметки
- Устранять неполадки когда инструкции не соблюдаются
CLAUDE.md и auto memory
Claude Code имеет две дополняющие друг друга системы памяти. Обе загружаются в начале каждого разговора. Claude рассматривает их как контекст, а не как принудительную конфигурацию. Чтобы заблокировать действие независимо от того, что решит Claude, используйте PreToolUse hook вместо этого. Чем более конкретны и лаконичны ваши инструкции, тем последовательнее Claude их соблюдает.
| Файлы CLAUDE.md | Auto memory | |
|---|---|---|
| Кто это пишет | Вы | Claude |
| Что это содержит | Инструкции и правила | Знания и закономерности |
| Область действия | Проект, пользователь или организация | Отдельно для каждого репозитория, общая для всех его worktrees |
| Загружается в | Каждый сеанс | Каждый сеанс (первые 200 строк или 25KB) |
| Используется для | Стандарты кодирования, рабочие процессы, архитектура проекта | Ваши предпочтения, исправления, которые вы даёте Claude, контекст проекта, который Claude не может вывести из кода |
Используйте файлы CLAUDE.md, когда вы хотите направить поведение Claude. Auto memory позволяет Claude учиться на ваших исправлениях без ручных усилий.
Subagents также могут поддерживать собственную auto memory. Подробнее см. в разделе конфигурация subagent.
Файлы CLAUDE.md
Файлы CLAUDE.md — это файлы markdown, которые предоставляют Claude постоянные инструкции для проекта, вашего личного рабочего процесса или всей организации. Вы пишете эти файлы в простом текстовом формате; Claude читает их в начале каждой сессии. Если ваш репозиторий использует AGENTS.md вместо этого, см. AGENTS.md.
Когда добавлять в CLAUDE.md
Рассматривайте CLAUDE.md как место, где вы записываете то, что иначе пришлось бы переобъяснять. Добавляйте в него, когда:
- Claude делает одну и ту же ошибку во второй раз
- Проверка кода выявляет что-то, что Claude должен был знать об этой кодовой базе
- Вы вводите одно и то же исправление или уточнение в чат, которое вводили в предыдущей сессии
- Новому члену команды потребуется тот же контекст для продуктивной работы
Ограничивайте это фактами, которые Claude должен помнить в каждой сессии: команды сборки, соглашения, макет проекта, правила «всегда делай X». Если запись — это многошаговая процедура или имеет значение только для одной части кодовой базы, переместите её в skill или path-scoped rule вместо этого. Обзор расширений охватывает, когда использовать каждый механизм.
Выберите, где разместить файлы CLAUDE.md
Файлы CLAUDE.md могут находиться в нескольких местах, каждое с разной областью действия. Таблица ниже перечисляет их в порядке загрузки, от самой широкой области действия к наиболее специфичной, поэтому инструкция проекта появляется в контексте после инструкции пользователя.
| Область действия | Местоположение | Назначение | Примеры использования | Общий доступ с |
|---|---|---|---|---|
| Управляемая политика | • macOS: /Library/Application Support/ClaudeCode/CLAUDE.md• Linux и WSL: /etc/claude-code/CLAUDE.md• Windows: C:\Program Files\ClaudeCode\CLAUDE.md |
Инструкции на уровне организации, управляемые IT/DevOps | Стандарты кодирования компании, политики безопасности, требования соответствия | Все пользователи в организации |
| Инструкции пользователя | ~/.claude/CLAUDE.md |
Личные предпочтения для всех проектов | Предпочтения стиля кода, личные ярлыки инструментов | Только вы (все проекты) |
| Инструкции проекта | ./CLAUDE.md или ./.claude/CLAUDE.md. См. AGENTS.md для информации о том, когда ./AGENTS.md загружается вместо них или вместе с ними |
Инструкции, общие для команды по проекту | Архитектура проекта, стандарты кодирования, общие рабочие процессы | Члены команды через управление версиями |
| Локальные инструкции | ./CLAUDE.local.md |
Личные предпочтения, специфичные для проекта; добавьте в .gitignore |
Ваши URL-адреса песочницы, предпочитаемые тестовые данные | Только вы (текущий проект) |
Файлы CLAUDE.md и CLAUDE.local.md в иерархии каталогов выше рабочего каталога загружаются при запуске. Файлы в подкаталогах загружаются по требованию, когда Claude читает файлы в этих каталогах. См. Как загружаются файлы CLAUDE.md для полного порядка разрешения.
Для больших проектов вы можете разбить инструкции на файлы, специфичные для темы, используя project rules. Правила позволяют вам ограничить инструкции определёнными типами файлов или подкаталогами.
Установите проект CLAUDE.md
Проект CLAUDE.md может быть сохранён либо в ./CLAUDE.md, либо в ./.claude/CLAUDE.md. Создайте этот файл и добавьте инструкции, которые применяются к любому, кто работает над проектом: команды сборки и тестирования, стандарты кодирования, архитектурные решения, соглашения об именовании и общие рабочие процессы. Эти инструкции общие для вашей команды через управление версиями, поэтому сосредоточьтесь на стандартах уровня проекта, а не на личных предпочтениях. Чтобы подтвердить загрузку файла, запустите /context в сессии и проверьте список в разделе Memory files.
Запустите /init для автоматического создания начального CLAUDE.md. Claude анализирует вашу кодовую базу и создаёт файл с командами сборки, инструкциями тестирования и соглашениями проекта, которые он обнаруживает. Если CLAUDE.md уже существует, /init предлагает улучшения вместо перезаписи. Уточните оттуда с помощью инструкций, которые Claude не обнаружит самостоятельно.
Для интерактивного многофазного потока установите переменную окружения CLAUDE_CODE_NEW_INIT в значение 1 перед запуском /init. Установите её в вашей оболочке или в блоке env файла настроек, как показано в Установка переменных окружения. С установленной переменной /init спрашивает, какие артефакты настроить: файлы CLAUDE.md, skills и hooks. Затем он исследует вашу кодовую базу с помощью подагента, заполняет пробелы с помощью дополнительных вопросов и представляет проверяемое предложение перед написанием каких-либо файлов. Переменная только изменяет способ работы /init, поэтому вы можете оставить её установленной.
Напишите эффективные инструкции
Файлы CLAUDE.md загружаются в контекстное окно в начале каждой сессии, потребляя токены вместе с вашим разговором. Визуализация контекстного окна показывает, где загружается CLAUDE.md относительно остального контекста запуска. Поскольку это контекст, а не принудительная конфигурация, то, как вы пишете инструкции, влияет на то, насколько надёжно Claude их следует. Конкретные, краткие, хорошо структурированные инструкции работают лучше всего.
Размер: нацеливайтесь на менее 200 строк на файл CLAUDE.md. Более длинные файлы потребляют больше контекста и снижают соответствие. Если ваши инструкции растут, используйте path-scoped rules, чтобы инструкции загружались только когда Claude работает с совпадающими файлами. Вы также можете разделить содержимое на imports для организации, хотя импортированные файлы всё ещё загружаются и входят в контекстное окно при запуске.
Структура: используйте заголовки markdown и маркеры для группировки связанных инструкций. Claude сканирует структуру так же, как читатели: организованные разделы легче следовать, чем плотные абзацы.
Специфичность: напишите инструкции, которые достаточно конкретны для проверки. Например:
- «Используйте отступ из 2 пробелов» вместо «Правильно форматируйте код»
- «Запустите
npm testперед коммитом» вместо «Протестируйте ваши изменения» - «Обработчики API находятся в
src/api/handlers/» вместо «Держите файлы организованными»
Согласованность: если два правила противоречат друг другу, Claude может выбрать одно произвольно. Периодически проверяйте ваши файлы CLAUDE.md, вложенные файлы CLAUDE.md в подкаталогах и .claude/rules/ для удаления устаревших или конфликтующих инструкций. В монорепозиториях используйте claudeMdExcludes для пропуска файлов CLAUDE.md от других команд, которые не имеют отношения к вашей работе.
Импортируйте дополнительные файлы
Файлы CLAUDE.md могут импортировать дополнительные файлы, используя синтаксис @path/to/import. Импортированные файлы развёртываются и загружаются в контекст при запуске вместе с CLAUDE.md, который их ссылает.
Допускаются как относительные, так и абсолютные пути. Относительные пути разрешаются относительно файла, содержащего импорт, а не рабочего каталога. Импортированные файлы могут рекурсивно импортировать другие файлы с максимальной глубиной четыре перехода.
Анализ импорта пропускает диапазоны кода Markdown и блоки кода с ограждением. Чтобы упомянуть путь в вашем CLAUDE.md без импорта, оберните его в обратные кавычки: написание `@README` сохраняет текст буквальным, в то время как @README вне обратных кавычек импортирует файл.
Чтобы включить README, package.json и руководство по рабочему процессу, ссылайтесь на них с синтаксисом @ в любом месте вашего CLAUDE.md:
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 в корне проекта. Он загружается вместе с CLAUDE.md и обрабатывается так же. Добавьте CLAUDE.local.md в ваш .gitignore, чтобы он не был зафиксирован. С установленным CLAUDE_CODE_NEW_INIT=1, запуск /init и выбор личного варианта делает это за вас.
Если вы работаете в нескольких git worktrees одного и того же репозитория, gitignored CLAUDE.local.md существует только в worktree, где вы его создали. Чтобы поделиться личными инструкциями между worktrees, импортируйте файл из вашего домашнего каталога вместо этого:
# Individual Preferences
- @~/.claude/my-project-instructions.md
Импорт в файл памяти уровня проекта является внешним, когда его путь разрешается вне вашего рабочего каталога, как импорт домашнего каталога выше. В первый раз, когда Claude Code встречает внешние импорты в проекте, он показывает диалог одобрения со списком файлов. Если вы отклоните, импорты остаются отключёнными и диалог больше не появляется.
Claude Code показывает диалог для защиты вас от файлов, которые другие люди коммитят в общий проект. Файлы памяти уровня пользователя, такие как ~/.claude/CLAUDE.md и ~/.claude/rules/, — это файлы, которые вы написали сами. За исключением сессий Cowork на вашем рабочем столе, Claude Code загружает их импорты без диалога и доверяет им, как остальной вашей личной конфигурации.
В сессиях Cowork на вашем рабочем столе Claude Code пропускает любой импорт в файле уровня пользователя, который разрешается к пути вне рабочего каталога сессии, и загружает остальную часть файла. В этих сессиях он также пропускает ~/.claude/CLAUDE.md, который сам является символической ссылкой или жёсткой ссылкой, и символически связанный каталог ~/.claude/rules/ или файл правила, который указывает вне рабочего каталога.
Как загружаются файлы CLAUDE.md
Claude Code загружает CLAUDE.md и CLAUDE.local.md из вашего текущего рабочего каталога и каждого каталога выше него. Запустите Claude Code в foo/bar/ и он загружает инструкции из foo/bar/CLAUDE.md, foo/CLAUDE.md и любых файлов CLAUDE.local.md рядом с ними.
Все обнаруженные файлы объединяются в контекст, а не переопределяют друг друга. По дереву каталогов содержимое упорядочено от корня файловой системы вниз к вашему рабочему каталогу. Для примера foo/bar/, foo/CLAUDE.md появляется в контексте перед foo/bar/CLAUDE.md, поэтому инструкции ближе к месту, где вы запустили Claude, читаются последними. В каждом каталоге CLAUDE.local.md добавляется после CLAUDE.md, поэтому ваши личные заметки — это последнее, что Claude читает на этом уровне.
Claude также обнаруживает файлы CLAUDE.md и CLAUDE.local.md в подкаталогах под вашим текущим рабочим каталогом. Вместо загрузки их при запуске они включаются, когда Claude читает файлы в этих подкаталогах.
Если вы работаете в большом монорепозитории, где подбираются файлы CLAUDE.md других команд, используйте claudeMdExcludes для их пропуска. Для полного макета корневых и каталогов CLAUDE.md файлов и правил см. Монорепозитории и большие репозитории.
Комментарии HTML на уровне блока (<!-- maintainer notes -->) в файлах CLAUDE.md удаляются перед внедрением содержимого в контекст Claude. Используйте их для оставления заметок для человеческих сопровождающих без траты токенов контекста на них. Комментарии внутри блоков кода сохраняются. Когда вы открываете файл CLAUDE.md непосредственно с помощью инструмента Read, комментарии остаются видимыми.
Загрузка из дополнительных каталогов
Флаг --add-dir предоставляет Claude доступ к дополнительным каталогам вне вашего основного рабочего каталога. По умолчанию файлы памяти CLAUDE.md из этих каталогов не загружаются.
Чтобы также загружать файлы памяти из дополнительных каталогов, установите переменную окружения CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD:
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config
Встроенная форма устанавливает переменную для этого одного запуска в Bash или Zsh. Чтобы оставить её включённой для каждой сессии, добавьте её в блок env в ~/.claude/settings.json, как показано в Установка переменных окружения.
Это загружает CLAUDE.md, .claude/CLAUDE.md, .claude/rules/*.md и CLAUDE.local.md из дополнительного каталога. CLAUDE.local.md пропускается, если вы исключите local из --setting-sources.
Организуйте правила с помощью `.claude/rules/`
Для больших проектов вы можете организовать инструкции в несколько файлов, используя каталог .claude/rules/. Это сохраняет инструкции модульными и облегчает их обслуживание командами. Правила также могут быть ограничены определёнными путями файлов, поэтому они загружаются в контекст только когда Claude работает с совпадающими файлами, снижая шум и экономя пространство контекста.
Правила загружаются в контекст каждую сессию или когда открываются совпадающие файлы. Для инструкций, специфичных для задачи, которые не нужны в контексте всё время, используйте skills вместо этого, которые загружаются только когда вы их вызываете или когда Claude определяет, что они имеют отношение к вашему запросу.
Установите правила
Поместите файлы markdown в каталог .claude/rules/ вашего проекта. Каждый файл должен охватывать одну тему с описательным именем файла, например testing.md или api-design.md. Все файлы .md обнаруживаются рекурсивно, поэтому вы можете организовать правила в подкаталоги, такие как frontend/ или backend/:
your-project/
├── .claude/
│ ├── CLAUDE.md # Main project instructions
│ └── rules/
│ ├── code-style.md # Code style guidelines
│ ├── testing.md # Testing conventions
│ └── security.md # Security requirements
Правила без frontmatter paths загружаются при запуске с тем же приоритетом, что и .claude/CLAUDE.md.
Правила проекта пропускаются, если вы исключите project из --setting-sources. До v2.1.211 правила, которые загружаются по требованию, включая path-scoped правила и правила в вложенных каталогах .claude/rules/, загружались даже когда project был исключён.
Path-specific правила
Правила могут быть ограничены определёнными файлами, используя YAML frontmatter с полем paths. Эти условные правила применяются только когда Claude работает с файлами, совпадающими с указанными шаблонами.
---
paths:
- "src/api/**/*.ts"
---
# API Development Rules
- All API endpoints must include input validation
- Use the standard error response format
- Include OpenAPI documentation comments
Правила без поля paths загружаются безусловно и применяются ко всем файлам. Path-scoped правила срабатывают, когда Claude читает файлы, совпадающие с шаблоном, а не при каждом использовании инструмента. Начиная с v2.1.198, сопоставление также работает, когда Claude достигает файла через символически связанный путь к каталогу проекта, например в символически связанном checkout.
Используйте glob шаблоны в поле paths для сопоставления файлов по расширению, каталогу или любой комбинации:
| Шаблон | Совпадает |
|---|---|
**/*.ts |
Все файлы TypeScript в любом каталоге |
src/**/* |
Все файлы в каталоге src/ |
*.md |
Файлы Markdown в корне проекта |
src/components/*.tsx |
React компоненты в определённом каталоге |
Вы можете указать несколько шаблонов и использовать расширение скобок для сопоставления нескольких расширений в одном шаблоне:
---
paths:
- "src/**/*.{ts,tsx}"
- "lib/**/*.ts"
- "tests/**/*.test.ts"
---
Каждая группа скобок умножает количество развёрнутых шаблонов: src/*.{ts,tsx} развёртывается в два шаблона, а {a,b}/{c,d}/*.{ts,tsx} в восемь. Чтобы сохранить расширение ограниченным, весь список paths правила имеет один бюджет из 1000 развёрнутых шаблонов и 4 МиБ, и шаблоны без скобок не учитываются в нём.
Claude Code использует любой шаблон, который превысит бюджет неразвёрнутым, и его буквальные скобки не совпадают ни с какими файлами. До v2.1.217 значение paths со многими группами скобок зависало или вызывало сбой CLI при запуске.
Синтаксис Glob рассматривает [ как начало выражения скобок, такого как [abc]. Шаблон с [, который не может быть прочитан как выражение скобок, такой как photos [2024/**, является недействительным: он не совпадает ни с какими файлами, и другие шаблоны правила продолжают работать. Чтобы совпадать с буквальным [ в имени файла, экранируйте его как photos \[2024/**. До v2.1.207 один недействительный шаблон заставлял инструмент Read не работать для каждого файла, для которого оценивалось правило, вместо того чтобы не совпадать ни с чем.
Справочник frontmatter правил
Настройте правило с помощью YAML frontmatter между маркерами --- в начале файла. paths — это единственное поле, которое Claude Code читает из правила; любое другое поле игнорируется без ошибки. Claude Code удаляет frontmatter перед загрузкой правила в контекст.
| Поле | Обязательно | Описание |
|---|---|---|
paths |
Нет | Glob шаблоны, которые ограничивают правило совпадающими файлами. Принимает список YAML или строку, разделённую запятыми |
Если YAML между маркерами не анализируется, Claude Code игнорирует frontmatter и загружает правило, как если бы оно не имело paths. Запустите claude --debug для просмотра ошибки анализа.
Поделитесь правилами между проектами с помощью символических ссылок
Каталог .claude/rules/ поддерживает символические ссылки, поэтому вы можете поддерживать общий набор правил и связывать их в несколько проектов. Циклические символические ссылки обнаруживаются и обрабатываются корректно.
Claude Code рассматривает символическую ссылку, цель которой находится вне вашего рабочего каталога, как внешний импорт. Связанные правила не загружаются, пока вы не одобрите внешние импорты для проекта, и после этого загружаются только те, которые не имеют поля paths. Claude Code просит это одобрение только когда файл памяти проекта импортирует файл вне рабочего каталога с @path, а не для самих символических ссылок. Чтобы загружать общие правила без этого одобрения, держите их в ~/.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 # Your personal coding preferences
└── workflows.md # Your preferred workflows
Claude Code загружает правила уровня пользователя перед правилами проекта, поэтому правило проекта появляется позже в контексте Claude, чем правило пользователя. Ни один набор не переопределяет другой: если правило пользователя и правило проекта конфликтуют, Claude может следовать любому из них, поэтому держите эти два согласованными.
Управляйте CLAUDE.md для больших команд
Для организаций, развёртывающих Claude Code в командах, вы можете централизовать инструкции и контролировать, какие файлы CLAUDE.md загружаются.
Развёртывание CLAUDE.md на уровне организации
Организации могут развернуть централизованно управляемый CLAUDE.md, который применяется ко всем пользователям на машине. Этот файл не может быть исключён индивидуальными настройками.
Create the file at the managed policy location
- macOS:
/Library/Application Support/ClaudeCode/CLAUDE.md - Linux и WSL:
/etc/claude-code/CLAUDE.md - Windows:
C:\Program Files\ClaudeCode\CLAUDE.md
Deploy with your configuration management system
Используйте MDM, Group Policy, Ansible или аналогичные инструменты для распределения файла на машины разработчиков. См. управляемые настройки для других параметров конфигурации на уровне организации.
Ключ claudeMd позволяет вам поместить управляемое содержимое CLAUDE.md непосредственно внутри managed-settings.json вместо развёртывания отдельного файла.
Область действия: каждая сессия Claude Code на машине, в каждом репозитории. Для руководства, специфичного для репозитория, зафиксируйте проект CLAUDE.md вместо этого.
Приоритет: то же самое, что и управляемый файл CLAUDE.md. Загружается перед пользователем и проектом CLAUDE.md.
Где это соблюдается: только управляемые и политические настройки. Установка claudeMd в пользовательские, проектные или локальные настройки не имеет эффекта.
Пример ниже добавляет инструкции поведения непосредственно в файл управляемых настроек:
{
"claudeMd": "Always run `make lint` before committing.\nNever push directly to main."
}
Управляемый CLAUDE.md и управляемые настройки служат разным целям. Используйте настройки для технического принуждения и CLAUDE.md для руководства поведением:
| Проблема | Настроить в |
|---|---|
| Блокировать определённые инструменты, команды или пути файлов | Управляемые настройки: permissions.deny |
| Принудительная изоляция песочницы | Управляемые настройки: sandbox.enabled |
| Переменные окружения и маршрутизация поставщика API | Управляемые настройки: env |
| Метод входа и ограничения организации | Управляемые настройки: forceLoginMethod, forceLoginOrgUUID |
| Рекомендации по стилю кода и качеству | Управляемый CLAUDE.md |
| Напоминания об обработке данных и соответствии | Управляемый CLAUDE.md |
| Инструкции поведения для Claude | Управляемый CLAUDE.md |
Правила настроек принудительно применяются клиентом независимо от того, что Claude решит делать. Инструкции CLAUDE.md формируют поведение Claude, но не являются жёстким слоем принуждения.
Исключите определённые файлы CLAUDE.md
В больших монорепозиториях файлы CLAUDE.md предков могут содержать инструкции, которые не имеют отношения к вашей работе. Параметр claudeMdExcludes позволяет вам пропустить определённые файлы по пути или glob шаблону.
Этот пример исключает файл CLAUDE.md верхнего уровня и каталог правил из родительской папки. Добавьте его в .claude/settings.local.json, чтобы исключение оставалось локальным для вашей машины:
{
"claudeMdExcludes": [
"**/monorepo/CLAUDE.md",
"/home/user/monorepo/other-team/.claude/rules/**"
]
}
Шаблоны сопоставляются с абсолютными путями файлов, используя синтаксис glob. Вы можете настроить claudeMdExcludes на любом слое настроек: пользователь, проект, локальный или управляемая политика. Массивы объединяются по слоям.
Чтобы исключить файл правила, который вы достигаете через символическую ссылку, будь то файл или его каталог является ссылкой, напишите шаблон против любого пути: пути файла в .claude/rules/ или его цели ссылки. Шаблон, который совпадает с любым путём, исключает файл. До v2.1.239 только шаблон, который совпадал с целью ссылки, исключал файл.
Управляемые политические файлы CLAUDE.md не могут быть исключены. Это гарантирует, что инструкции на уровне организации всегда применяются независимо от индивидуальных настроек.
AGENTS.md
Claude Code может читать AGENTS.md как инструкции вашего проекта, поэтому репозиторий, уже настроенный для других агентов кодирования, работает без добавления CLAUDE.md, импорта или параметра. Эта таблица показывает, что Claude читает по умолчанию для каждой комбинации файлов инструкций в вашем репозитории:
| Your repository has | Claude reads |
|---|---|
An AGENTS.md, and no CLAUDE.md or CLAUDE.local.md in your working directory or above it |
Your AGENTS.md |
An AGENTS.md and a CLAUDE.md or CLAUDE.local.md in your working directory or above it |
Your CLAUDE.md files only |
A CLAUDE.md that already imports AGENTS.md |
Your CLAUDE.md, with AGENTS.md included through the import |
Чтобы изменить значение по умолчанию, например чтобы Claude всегда читал оба файла, читал только CLAUDE.md или читал только управляемые организацией инструкции, измените параметр Project instructions.
Чтение AGENTS.md напрямую требует Claude Code v2.1.277 или более поздней версии. В некоторых сеансах Claude не может читать AGENTS.md, поэтому импортируйте его из CLAUDE.md вместо этого.
When Claude Code reads AGENTS.md
По умолчанию Claude читает AGENTS.md только когда у вас нет CLAUDE.md в вашем рабочем каталоге или выше него. Вот какие из ваших файлов учитываются для этой проверки:
- Учитываются, поэтому Claude читает их вместо
AGENTS.md:CLAUDE.md,.claude/CLAUDE.mdилиCLAUDE.local.mdв вашем рабочем каталоге или в любом каталоге выше него - Не учитываются и продолжают загружаться вместе с
AGENTS.md: ваш~/.claude/CLAUDE.md, управляемый организациейCLAUDE.mdи файлы.claude/rules/
Когда ничего не учитывается, вот что Claude читает и как вы можете это определить:
- При запуске сеанса: каждый
AGENTS.mdи.claude/AGENTS.mdв вашем рабочем каталоге и в каталогах выше него. В интерактивном сеансе вы видите строку, напримерno CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.mdв разговоре - Когда Claude работает в подкаталогах:
AGENTS.mdподкаталога, когда Claude открывает файл там с помощью инструмента Read и в этом подкаталоге нет ни одного из трёх файловCLAUDE.md - Внутри каждого
AGENTS.md: импорты@pathрасширяются, применяются паттерныclaudeMdExcludesи подагенты, которые пропускают инструкции проекта, пропускают эти файлы тоже - Не читаются:
AGENTS.local.md,AGENTS.override.mdили что-либо в каталоге.agents/
Поскольку CLAUDE.local.md учитывается, добавление его для сохранения ваших собственных незафиксированных инструкций в проекте, который полагается на AGENTS.md, останавливает чтение Claude AGENTS.md для вас. Чтобы сохранить ваш CLAUDE.local.md и при этом иметь Claude читающий AGENTS.md, установите Project instructions на claude-md-and-agents-md.
Choose which instruction files load
Чтобы изменить, какие файлы читает Claude, введите /config в сеансе Claude Code, чтобы открыть панель параметров, затем установите Project instructions на одно из этих значений:
| Value | What Claude reads |
|---|---|
claude-md-or-agents-md |
Ваши файлы CLAUDE.md или ваши файлы AGENTS.md, когда у вас нет CLAUDE.md или CLAUDE.local.md в вашем рабочем каталоге или выше него. Это значение по умолчанию |
claude-md-and-agents-md |
Ваши файлы CLAUDE.md и AGENTS.md вместе, каждый CLAUDE.md каталога первым и его AGENTS.md после них. Claude Code пропускает AGENTS.md, который он уже загрузил, поэтому тот, который ваш CLAUDE.md импортирует или создаёт символическую ссылку на, не читается дважды |
claude-md |
Только ваши файлы CLAUDE.md |
managed-only |
Только управляемый организацией CLAUDE.md и auto memory при запуске. Ваши проектные, локальные и пользовательские файлы CLAUDE.md, ваши файлы .claude/rules/ и каждый AGENTS.md исключены. CLAUDE.md и файлы .claude/rules/ подкаталога, и path-scoped rules, всё ещё загружаются, когда Claude читает файл там |
Вы также можете установить значение в файле параметров вместо /config. Добавьте его под ID встроенного плагина agents-md в pluginConfigs, в ~/.claude/settings.json, файл --settings или managed settings. Claude Code игнорирует его в файлах параметров проекта и локальных параметрах. Этот пример заставляет Claude читать оба файла:
{
"pluginConfigs": {
"agents-md@builtin": {
"options": { "instructionFiles": "claude-md-and-agents-md" }
}
}
}
Ваше изменение применяется со следующего сообщения, которое вы отправляете, и в каждом новом сеансе.
When AGENTS.md support is unavailable
В этих сеансах Claude читает только файлы CLAUDE.md, и Project instructions не появляется в панели параметров /config:
- Вы используете Claude Code версии до v2.1.277
- Вы отключили встроенный плагин
agents-mdв/plugin - В некоторых случаях это ваш первый сеанс после обновления с v2.1.276 или более ранней версии. Claude читает
AGENTS.mdсо следующего сеанса
До v2.1.281 некоторые сеансы, такие как сеансы на Amazon Bedrock или с отключённой телеметрией, читали только файлы CLAUDE.md. На этих версиях обновите Claude Code. Чтобы дать Claude ваш AGENTS.md в любом из этих сеансов, импортируйте его из CLAUDE.md.
Where AGENTS.md differs from CLAUDE.md
AGENTS.md, который Claude читает через параметр Project instructions, отличается от CLAUDE.md в этих местах:
CLAUDE.md |
AGENTS.md read through the setting |
|
|---|---|---|
InstructionsLoaded hooks |
Fire | Don't fire. They fire as usual for an AGENTS.md that a CLAUDE.md imports or symlinks to |
Directories you add with --add-dir while CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD is set |
Their CLAUDE.md loads |
Their AGENTS.md doesn't load |
An @path import of a file outside your working directory |
Claude Code asks you to approve external imports | Loads only if you already approved external imports for this project, with no prompt |
Remove an earlier AGENTS.md workaround
Если вы настроили Claude Code на чтение AGENTS.md до того, как он это делал самостоятельно, вот что делать с каждой распространённой установкой:
CLAUDE.md, содержащий@AGENTS.md: вы можете оставить его. Сохранение импорта никогда не заставляет Claude читатьAGENTS.mdдважды, какое бы значение Project instructions вы ни использовали. УдалитеCLAUDE.md, если он больше ничего не содержит, или сохраните его, если некоторые из ваших сеансов не могут загрузитьAGENTS.mdнапрямую.CLAUDE.md, который говорит Claude словами читатьAGENTS.md: Claude видитAGENTS.mdтолько если решит открыть файл. УдалитеCLAUDE.md, чтобы Claude читалAGENTS.mdнапрямую, или замените предложение на импорт@AGENTS.md.CLAUDE.md, символически связанный сAGENTS.md: ничего или удалите символическую ссылку. В любом случае Claude читает содержимое один раз.- Hook
SessionStart, который выводитAGENTS.md: удалите его. После того как Claude начнёт читатьAGENTS.mdнапрямую, hook добавит вторую копию в контекст.
Share one file with other coding tools
Когда Claude не читает ваш AGENTS.md напрямую, вы всё ещё можете сохранить его как один файл, который разделяют все инструменты, поместив импорт @AGENTS.md в CLAUDE.md рядом с ним. Делайте это, когда ваш проект также имеет CLAUDE.md, когда вы установили Project instructions на claude-md, или в сеансах, которые не могут загрузить AGENTS.md. Добавьте любые инструкции, специфичные для Claude, ниже импорта, и Claude читает импортированный файл первым, затем остальное:
@AGENTS.md
## Claude Code
Use plan mode for changes under `src/billing/`.
Если вам не нужно содержимое, специфичное для Claude, символическая ссылка также работает:
ln -s AGENTS.md CLAUDE.md
Команда не выводит ничего при успехе. Перед тем как выбрать символическую ссылку вместо импорта, проверьте эти ограничения:
- Editing: Claude читает
CLAUDE.mdчерез ссылку, но инструменты Edit и Write отказываются писать через символическую ссылку, и отказ направляет Claude на редактирование целевой ссылки,AGENTS.md, вместо этого - Windows: если вы или кто-либо, кто клонирует репозиторий, работает на Windows, используйте импорт
@AGENTS.mdвместо этого. Создание символической ссылки там требует привилегий администратора или режима разработчика, и Git проверяет зафиксированную символическую ссылку как простой текстовый файл, еслиcore.symlinksне включен, что оставляет этот клон с однострочнымCLAUDE.mdвместо ваших инструкций
С любым подходом запустите /context в вашем следующем сеансе и подтвердите, что CLAUDE.md появляется под Memory files.
Migrate instructions from other tools
Запуск /init читает файлы инструкций других инструментов и включает соответствующие части в сгенерированный CLAUDE.md:
- Cursor rules в
.cursor/rules/или.cursorrules - Copilot rules в
.github/copilot-instructions.md - С установленным
CLAUDE_CODE_NEW_INIT=1:AGENTS.md,.devin/rules/,.windsurf/rules/или.windsurfrules, и.clinerules
Вы также можете запустить /import, чтобы привести конфигурацию поддерживаемого AI-агента кодирования в Claude Code, который добавляет одноразовую копию файлов инструкций, таких как AGENTS.md, в соответствующий CLAUDE.md и переносит MCP servers, commands, subagents и skills. Требует Claude Code v2.1.213 или более поздней версии.
Auto memory
Auto memory позволяет Claude накапливать знания между сеансами без вашего участия. По мере работы Claude сохраняет четыре вида заметок для себя. Claude записывает вид как поле type в frontmatter файла памяти:
user: ваша роль, опыт и предпочтения в работеfeedback: исправления, которые вы даёте Claude, и подходы, которые вы подтверждаетеproject: текущая работа, сроки и решения, которые Claude не может вывести из кода или истории gitreference: где найти информацию вне проекта, например трекер проблем или панель управления
Claude пропускает всё, что он может вывести из кодовой базы, такое как архитектура, пути файлов или исправления отладки. Он также пропускает всё, что уже говорят ваши файлы CLAUDE.md.
Claude не сохраняет что-то каждый сеанс. Он решает, что стоит помнить, на основе того, будет ли информация полезна в будущем разговоре.
Включите или отключите auto memory
Auto memory включена по умолчанию. Чтобы переключить её, откройте /memory в сеансе и используйте переключатель auto memory, который сохраняет autoMemoryEnabled в ваши пользовательские настройки в ~/.claude/settings.json. Чтобы отключить её для одного проекта, установите autoMemoryEnabled в настройках этого проекта:
{
"autoMemoryEnabled": false
}
Чтобы отключить auto memory через переменную окружения, установите CLAUDE_CODE_DISABLE_AUTO_MEMORY=1.
Местоположение хранилища
Каждый проект получает свой собственный каталог памяти в ~/.claude/projects/<project>/memory/. Путь <project> получается из репозитория git, поэтому все worktrees и подкаталоги в одном репозитории используют один каталог auto memory. Вне репозитория git вместо этого используется корень проекта.
Если вы установите CLAUDE_CODE_PROJECT_DIR_NAME рядом с CLAUDE_CONFIG_DIR, Claude Code использует это имя как каталог <project> под <config dir>/projects/ независимо от того, в каком репозитории вы его запустите, поэтому проекты, запущенные с этим каталогом конфигурации, используют один каталог auto memory. Требуется Claude Code v2.1.234 или позже.
Чтобы сохранить auto memory в другом местоположении, установите autoMemoryDirectory в вашем settings.json. Он читается из любой области настроек: пользователя, проекта, локальной, политики или --settings.
{
"autoMemoryDirectory": "~/my-custom-memory-dir"
}
Значение должно быть абсолютным путём или начинаться с ~/.
Когда вы установите его в .claude/settings.json или .claude/settings.local.json проекта, Claude Code соблюдает его в соответствии с тем же правилом доверия рабочей области, что и hooks в файлах настроек. Пока permissions.blockReadsOutsideWorkingDirectories включена, Claude Code не загружает auto memory из каталога, который выбирает файл настроек, поставляемый репозиторием, и не сохраняет в него, где бы этот каталог ни находился.
Каталог содержит индекс MEMORY.md и один файл по теме на память:
~/.claude/projects/<project>/memory/
├── MEMORY.md # Индекс, одна строка на память, загружается в каждый сеанс
├── user_role.md # Одна память
├── feedback_testing.md # Одна память
└── ... # Любые другие файлы по темам, которые создаёт Claude
MEMORY.md служит индексом каталога памяти. Claude читает и пишет файлы в этом каталоге на протяжении вашего сеанса, используя MEMORY.md для отслеживания того, что хранится где.
Auto memory зависит от машины. Все worktrees и подкаталоги в одном репозитории git используют один каталог auto memory. Файлы не общие между машинами или облачными окружениями.
Claude Code удаляет старые стенограммы сеансов после периода хранения cleanupPeriodDays, но исключает файлы памяти в каталоге памяти из этого периода хранения. MEMORY.md и файлы по темам остаются до тех пор, пока вы или Claude не отредактируете или не удалите их.
Как это работает
Первые 200 строк MEMORY.md, или первые 25KB, в зависимости от того, что наступит раньше, загружаются в начале каждого разговора. Содержимое после этого порога не загружается при запуске сеанса. Claude держит MEMORY.md лаконичным, перемещая подробные заметки в отдельные файлы по темам.
После того как Claude пишет в MEMORY.md, Claude Code измеряет файл в соответствии с ограничениями чтения в 200 строк и 25KB. Если файл близок к ограничению, Claude Code напоминает Claude сократить его: оставить одну строку на запись, переместить детали в файлы по темам и объединить или удалить устаревшие записи. Если файл превышает ограничение, запись всё ещё успешна, но Claude Code возвращает ошибку, указывающую Claude переписать индекс, потому что всё после ограничения отбрасывается при следующей загрузке.
Это ограничение применяется только к MEMORY.md. Claude Code загружает файл CLAUDE.md размером до 4 MiB полностью и пропускает больший файл. Более короткие файлы дают лучшее соблюдение.
Claude Code не загружает файлы по темам, такие как user_role.md или feedback_testing.md, при запуске. Claude читает их по требованию, используя свои стандартные инструменты файлов, когда ему нужна информация.
Память auto memory основного разговора не загружается в подагентов; исключением является fork, который наследует родительский разговор и системный prompt. Собственная auto memory подагента, включённая с полем memory подагента, — это отдельный каталог.
Claude читает и пишет файлы памяти во время вашего сеанса. Когда вы видите сообщения вроде "Saved 2 memories" или "Recalled 2 memories" в интерфейсе Claude Code, Claude активно обновляет или читает из ~/.claude/projects/<project>/memory/.
Когда Claude пишет файл памяти, который начинается с YAML frontmatter, Claude Code записывает время записи в поле modified frontmatter как временную метку ISO 8601. Временная метка показывает, насколько актуален факт, как для вас, так и для Claude, когда он читает память обратно. Любой файл, который имеет frontmatter, получает это поле при следующей записи Claude, включая файлы, созданные в более ранних версиях; Claude Code никогда не добавляет frontmatter к файлу, который его не имеет. Поле modified требует Claude Code v2.1.214 или позже.
Проверьте и отредактируйте вашу память
Файлы auto memory — это простой markdown, который вы можете редактировать или удалять в любое время. Запустите /memory для просмотра и открытия файлов памяти из сеанса.
Просмотр и редактирование с помощью `/memory`
Команда /memory перечисляет ваши файлы CLAUDE.md, CLAUDE.local.md и другие файлы памяти в разных областях пользователя и проекта, включая записи CLAUDE.md пользователя и проекта для файлов, которые еще не существуют. Она также позволяет переключать auto memory включена или отключена и предоставляет опцию для открытия папки auto memory. Выберите любой файл для открытия его в вашем редакторе; выбор файла, который еще не существует, сначала создает его. Чтобы проверить, какие файлы CLAUDE.md и файлы правил загружены в текущий сеанс, запустите /context.
Графические редакторы, такие как VS Code, открывают файл в отдельном окне, и вы можете продолжать использовать сеанс, пока он открыт. До версии 2.1.216 /memory ждал, пока вы закроете файл, прежде чем ответить. Редакторы терминала, такие как Vim, захватывают терминал, пока вы не выйдете.
Когда вы просите Claude что-то запомнить, например "всегда используйте pnpm, а не npm" или "помните, что тесты API требуют локального экземпляра Redis", Claude сохраняет это в auto memory. Чтобы добавить инструкции в CLAUDE.md, попросите Claude напрямую, например "добавьте это в CLAUDE.md", или отредактируйте файл самостоятельно через /memory.
Устранение неполадок с памятью
Это наиболее распространённые проблемы с CLAUDE.md и auto memory, а также шаги для их отладки.
Claude не следует моему CLAUDE.md
Содержимое CLAUDE.md доставляется как пользовательское сообщение после системного запроса, а не как часть самого системного запроса. Claude читает его и пытается следовать ему, но нет гарантии строгого соответствия, особенно для расплывчатых или конфликтующих инструкций.
Для отладки:
- Запустите
/contextи проверьте список под Memory files, чтобы убедиться, что ваши файлы CLAUDE.md и CLAUDE.local.md загружены. Если файлCLAUDE.mdотсутствует там, Claude не может его видеть. Используйте/memoryдля открытия и редактирования файлов. - Проверьте, что соответствующий CLAUDE.md находится в местоположении, которое загружается для вашего сеанса (см. Выберите, где разместить файлы CLAUDE.md).
- Сделайте инструкции более конкретными. "Используйте отступ из 2 пробелов" работает лучше, чем "красиво форматируйте код".
- Ищите конфликтующие инструкции в файлах CLAUDE.md. Если два файла дают разные рекомендации для одного поведения, Claude может выбрать одну произвольно.
Если инструкция — это что-то, что должно выполняться в определённый момент, например перед каждым коммитом или после каждого редактирования файла, напишите её как hook. Hooks выполняются как команды shell в фиксированных событиях жизненного цикла и применяются независимо от того, что решит сделать Claude.
Для инструкций, которые вы хотите на уровне системного запроса, используйте --append-system-prompt. Вы передаёте это при запуске, поэтому оно лучше подходит для скриптов и автоматизации, чем для интерактивного использования. О том, как оно ведёт себя при возобновлении разговора, см. System prompt flags in resumed conversations.
Используйте hook InstructionsLoaded для логирования того, какие файлы CLAUDE.md и файлы правил загружены, когда они загружаются и почему. Это полезно для отладки правил, специфичных для пути, или ленивых загруженных файлов в подкаталогах.
Мой AGENTS.md не загружается
Если ваш репозиторий содержит AGENTS.md и Claude, похоже, не знает, что в нём написано, обычной причиной является CLAUDE.md где-то на пути проекта. По умолчанию Claude читает AGENTS.md только когда у вас нет CLAUDE.md или CLAUDE.local.md в вашем рабочем каталоге или выше него. Проверьте их в таком порядке:
- Ищите
CLAUDE.md,.claude/CLAUDE.mdилиCLAUDE.local.mdв вашем рабочем каталоге или в любом каталоге выше него, кроме вашего~/.claude/CLAUDE.md. Если вы найдёте один, Claude читает его вместоAGENTS.md, если вы не установите Project instructions наclaude-md-and-agents-md. - Запустите
claude --versionи подтвердите v2.1.277 или более позднюю версию. До версии v2.1.281 некоторые сеансы, такие как сеансы на Amazon Bedrock или с отключённой телеметрией, не могли загружатьAGENTS.md, поэтому на этих версиях обновитесь до v2.1.281 или более поздней версии. - Введите
/configв вашем сеансе, чтобы открыть панель параметров и подтвердить, что Project instructions не установлен наclaude-mdилиmanaged-only. Если вы вообще не видите этот параметр, ваш сеанс — это один из тех, которые не могут загружатьAGENTS.md.
Чтобы проверить, прочитал ли Claude ваш AGENTS.md, запустите /memory и ищите его путь в списке.
До версии v2.1.280 /memory и /context не выводили список AGENTS.md, который Claude читал напрямую. На этих версиях вместо этого спросите Claude, что говорят его инструкции проекта.
Если вы хотите сохранить найденный CLAUDE.md или ваш сеанс не может загружать AGENTS.md, добавьте CLAUDE.md рядом с вашим AGENTS.md, который его импортирует.
Я не знаю, что сохранила auto memory
Запустите /memory и выберите папку auto memory для просмотра того, что Claude сохранил. Всё это простой markdown, который вы можете читать, редактировать или удалять.
Мой CLAUDE.md слишком большой
Файлы более 200 строк потребляют больше контекста и могут снизить соблюдение. Claude Code пропускает файл размером более 4 MiB. Используйте path-scoped rules для загрузки инструкций только когда Claude работает с соответствующими файлами, или сократите содержимое, которое не требуется в каждом сеансе. Разделение на @path imports помогает организации, но не снижает контекст, так как импортированные файлы загружаются при запуске.
Проверка /doctor предлагает сокращения для проверенного CLAUDE.md: она удаляет содержимое, которое Claude может вывести из кодовой базы, такое как макеты каталогов, списки зависимостей и обзоры архитектуры, и сохраняет подводные камни, обоснование и соглашения, которые отличаются от стандартных инструментов. Проверка сокращения требует Claude Code v2.1.206 или более поздней версии.
Инструкции кажутся потерянными после `/compact`
CLAUDE.md в корне проекта выживает при сжатии: после /compact Claude повторно читает его с диска и повторно вводит его в сеанс. Вложенные файлы CLAUDE.md в подкаталогах и правила с paths: frontmatter перезагружаются по мере того, как Claude читает файлы, к которым они применяются.
Если инструкция исчезла после сжатия, она была дана только в разговоре, находится в вложенном CLAUDE.md, который ещё не перезагрузился, или является правилом с областью действия пути, которое не совпадало с файлом с момента сжатия. Добавьте инструкции только для разговора в CLAUDE.md, чтобы они сохранялись. Полный список см. в разделе What survives compaction.
Подробнее см. в разделе Write effective instructions для рекомендаций по размеру, структуре и конкретности.
Связанные ресурсы
- Отладка вашей конфигурации: диагностируйте, почему CLAUDE.md или настройки не вступают в силу
- Skills: упакуйте повторяемые рабочие процессы, которые загружаются по требованию
- Settings: настройте поведение Claude Code с помощью файлов настроек
- Subagent memory: позвольте subagents поддерживать собственную auto memory