AGENTS.md: постоянные правила проекта для Codex
Автор: Казачкин Даниил Михайлович · Обновлено
Файл AGENTS.md хранит долговечные инструкции для coding agents: устройство репозитория, команды запуска, инженерные соглашения, ограничения и критерии проверки. Он избавляет от повторения одних и тех же правил в каждом промпте, но не должен превращаться в копию всей документации проекта.
Как Codex находит инструкции
Codex собирает цепочку инструкций перед началом работы. Сначала учитывается глобальная область в каталоге Codex, затем файлы от корня проекта до текущей рабочей директории. Более близкая инструкция появляется позже и может переопределить более общую.
На каждом уровне приоритет имеет AGENTS.override.md, затем AGENTS.md, затем настроенные fallback-имена. Пустые файлы пропускаются. Это позволяет хранить:
- личные общие предпочтения глобально;
- правила всего репозитория в корне;
- специальные команды и ограничения рядом с отдельным сервисом;
- временное переопределение через AGENTS.override.md.
Область действия зависит и от того, из какой директории запущена сессия. После изменения инструкций безопаснее начать новую сессию, чтобы цепочка была собрана заново.
Что стоит записывать
Хороший корневой файл отвечает на практические вопросы:
# Repository guide
## Layout
- frontend/ — Vue-приложение
- backend/ — NestJS API
## Commands
- pnpm typecheck
- pnpm test
- pnpm lint
## Working agreements
- Сохраняй незакоммиченные изменения пользователя.
- Для локальных правок используй существующие зависимости.
- После изменения API обновляй контракт и e2e-тест.
## Done
- Запусти проверки затронутого пакета.
- Просмотри итоговый diff и сообщи о непроверенных рисках.Указывайте команды так, как они реально выполняются из текущей директории. Если backend использует другой runner, локальный AGENTS.md внутри backend должен это уточнить.
Что лучше оставить вне файла
Не помещайте в AGENTS.md:
- секреты, токены и приватные ключи;
- временные требования одной задачи;
- длинные учебники по фреймворку;
- правила, которые уже механически проверяет линтер без исключений;
- противоречивые пожелания без приоритета;
- описание несуществующих команд.
Одноразовое ограничение остаётся в промпте. Повторяемый сценарий можно оформить как skill. Жёсткое техническое ограничение, которое обязательно должно блокировать действие, лучше реализовать политикой доступа, CI или hook, а не надеяться только на текст.
Иерархия без конфликтов
Представьте монорепозиторий. Корневое правило требует запустить общий typecheck. В backend/AGENTS.md указано, что после миграций обязателен e2e-тест. В frontend/admin/AGENTS.override.md временно запрещено менять дизайн-систему.
Для задачи в frontend/admin действуют глобальные, корневые и локальные инструкции. Backend-правило не применяется, потому что оно не находится на пути от корня до текущей директории.
При конфликте формулируйте локальное правило явно:
## Verification override
Для этого пакета команда общего lint неприменима.
Запускай pnpm --filter @example/admin lint вместо корневой команды.
Остальные корневые проверки сохраняются.Такой текст объясняет и исключение, и оставшуюся часть соглашения.
Поддержка инструкций как кода
AGENTS.md устаревает вместе с проектом. Проверяйте его после смены package manager, структуры каталогов, CI или процесса релиза. Полезный цикл:
- заметить повторяющуюся ошибку агента;
- выяснить, не вызвана ли она средой или неоднозначной задачей;
- добавить короткое проверяемое правило;
- испытать его на следующей задаче;
- удалить правило, если оно не помогает.
Качество измеряется не длиной файла, а снижением повторных исправлений.
Практика: аудит AGENTS.md
Создайте или откройте файл проекта и отметьте:
- все ли команды существуют;
- понятно ли, из какой директории их запускать;
- названы ли каталоги с особым риском;
- есть ли правило сохранения пользовательских изменений;
- определены ли минимальные проверки;
- можно ли удалить абзац без потери рабочего решения.
Затем попросите Codex перечислить активные источники инструкций и кратко пересказать приоритеты. Сравните ответ с ожидаемой иерархией.
Что важно запомнить
- AGENTS.md хранит долговечные и проверяемые правила проекта.
- Инструкции собираются от глобальной области к текущей директории.
- Более близкие правила уточняют или переопределяют общие.
- Секреты, одноразовые задачи и механические проверки не должны жить в AGENTS.md.
Частые вопросы
Нужно ли копировать AGENTS.md в каждую папку?
Нет. Корневые инструкции наследуются. Локальный файл нужен только там, где правила действительно отличаются: другой стек, команды, требования безопасности или процесс проверки.
Что важнее: промпт или AGENTS.md?
Промпт описывает текущую цель, AGENTS.md — устойчивые соглашения области проекта. Не дублируйте их без необходимости; конкретная задача должна уточнять, а не переписывать всю базу правил.
Почему Codex не увидел только что изменённый файл?
Цепочка инструкций собирается в начале запуска или сессии. Начните новую сессию в нужной директории и проверьте, что файл непустой, имеет поддерживаемое имя и попадает в область поиска.