AGENTS.md читают 15 ИИ-агентов. Не читает только Claude Code

AGENTS.md читают 15 ИИ-агентов. Не читает только Claude Code

У меня в активной работе четыре ИИ-инструмента для кодинга: Claude Code в основном проекте, Codex CLI на бэке другого, Cursor на фронте, GitHub Copilot в браузерных правках через интерфейс GitHub. Раньше у меня лежало четыре параллельных файла правил: CLAUDE.md, AGENTS.md, .cursor/rules/main.mdc, .github/copilot-instructions.md. Через месяц они расходились на пять-семь пунктов, и каждый агент работал по-своему в одном репозитории.

Сейчас у меня один источник правды - AGENTS.md в корне репо, и CLAUDE.md подцеплен к нему симлинком. На переключение ушло двадцать минут, и я в этом не оригинален - на GitHub к декабрю 2025 уже больше 60 000 репозиториев с AGENTS.md, формат поддерживают 15+ инструментов от Codex до Junie, а 9 декабря 2025 он попал в Linux Foundation под зонтик новой Agentic AI Foundation. Кроме одного нюанса: Claude Code этот файл по-прежнему не читает. Issue в репозитории Anthropic про поддержку AGENTS.md висит без ответа с 21 августа 2025 - почти десять месяцев на момент когда я это пишу. Anthropic при этом числится в той же Agentic AI Foundation на Platinum-уровне.

Дальше - короткий разбор парадокса и три рабочих артефакта: укороченный шаблон AGENTS.md, который встаёт в проект за 30 минут; команда, которая склеивает AGENTS.md и CLAUDE.md в один файл без дублей; пять правил, без которых файл превращается в мусор за пару недель.

Готовый шаблон AGENTS.md за 30 минут

Если ты ещё не написал свой AGENTS.md - вот рабочий каркас, который я держу как стартовый шаблон. Скопируй в корень репо, замени названия и команды под себя - на это ушло двадцать минут на проекте, в котором уже месяц не было ни одного нормального файла правил.

````markdown

Project overview

<project-name> - <одна фраза про назначение>. Stack: <Next.js / Python / Go / ...>. Главные сущности: <users, orders, posts ...>. Подробности для людей - в README.md.

Setup commands

npm install cp .env.example .env # заполнить вручную npm run dev # dev-сервер на :3000 npm run build # production-сборка npm test # тесты должны быть зелёные перед коммитом

Dev environment

  • Node 20+ (через nvm: nvm use 20)
  • PostgreSQL 16 локально на :5432
  • .env: DATABASE_URL, RESEND_API_KEY, JWT_SECRET
  • Никогда не читай .env целиком. Нужна одна переменная: grep "^VAR=" .env

Code style

  • TypeScript strict mode
  • Single quotes, без semicolons
  • Никаких any без комментария «почему нельзя типизировать»
  • Компоненты в PascalCase, хуки начинаются с use

Testing

Если тест красный - не коммить, спроси меня. Запуск конкретного теста: npm test -- --testPathPattern=auth.

Pull request guidelines

  • Commit-формат: <type>(<scope>): <описание>
  • Перед PR: npm run build && npm test && npm run lint
  • Не аппрувь PR сам - всегда жди ревью человека

Security

  • Секреты только в .env, никогда в коде
  • Email, телефон, имя - не выводи в логи
  • Production-БД - только read-only без явного разрешения

Never do this

  • Не делай git push --force на main. Откатывать - через git revert
  • Не запускай миграции БД без сухого прогона / check
  • Не используй npm install -g или sudo для проектных зависимостей
  • Не добавляй новые зависимости без согласования

````

Шаблон занимает около 45 строк. У формата нет жёстких границ, но в исследовании Augment Code на 2500+ репозиториев чётко зафиксировано: после 150 строк качество ответа агента деградирует - агент тратит больше контекста на чтение файла и пропускает важные правила. У OpenAI в основном монорепо лежит 88 разных AGENTS.md для разных подпакетов - они не пихают всё в один.

Кто читает AGENTS.md в 2026, а кто нет

Сам формат стартовал в августе 2025 - OpenAI выкатили его одновременно с Codex CLI и сразу подняли страницу agents.md как открытый стандарт. К концу 2025 года к ним подключилось 15+ инструментов:

  • OpenAI Codex CLI - родной формат, читает из коробки.
  • GitHub Copilot Coding Agent - подключился 28 августа 2025.
  • Cursor - читает корневой AGENTS.md плюс вложенные в подпапки.
  • JetBrains Junie - проектный AGENTS.md плюс глобальный ~/.junie/AGENTS.md.
  • Gemini CLI от Google - через .gemini/settings.json с указанием имени файла.
  • Google Jules, Sourcegraph Amp, Factory - соавторы стандарта с августа 2025.
  • Aider - через read: AGENTS.md в .aider.conf.yml.
  • OpenCode, Zed, Warp, VS Code, Windsurf, Devin, RooCode, Kilo Code, Augment Code - все читают.

В декабре 2025 формат закрепился на индустриальном уровне. 9 декабря Linux Foundation объявила формирование Agentic AI Foundation - фонда под три founding-проекта: AGENTS.md от OpenAI, MCP от Anthropic, агентский фреймворк goose от Block. Founding-членов восемь: AWS, Anthropic, Block, Bloomberg, Cloudflare, Google, Microsoft, OpenAI. К 24 февраля 2026 фонд включал 146 организаций - Red Hat, ServiceNow, JPMorgan Chase, Huawei, UiPath и десятки других.

Если ты пишешь продукт, который должен работать с несколькими ИИ-агентами, AGENTS.md в корне - это базовая гигиена. Без него команда обречена поддерживать три-четыре параллельных файла, и они расходятся через месяц. Исключение в списке - одно, и это Claude Code от Anthropic.

Почему Claude Code не подключился, хотя Anthropic в AAIF

21 августа 2025 пользователь под ником DylanLIiii открыл issue #6235 в репозитории anthropics/claude-code (github.com/anthropics/claude-code/issues/6235) с просьбой добавить поддержку AGENTS.md. Формулировка была короткой:

«Codex, Amp, Cursor and others are starting to standardize on AGENTS.md - a unified markdown file that coding agents can use to understand a project. CLAUDE.md in comparison feels too Claude Code specific.» - issue #6235, github.com/anthropics/claude-code

В переводе: «Codex, Amp, Cursor и другие начинают стандартизироваться вокруг AGENTS.md - единого markdown-файла, который агенты для кодинга могут использовать, чтобы разобраться в проекте. CLAUDE.md в сравнении с этим выглядит слишком специфичным для Claude Code».

Issue висит открытым почти десять месяцев. Официального комментария от Anthropic - ноль. Под обсуждением 80+ комментариев пользователей с одним и тем же запросом: «у меня в команде половина на Claude Code, половина на Codex, я устал держать два файла».

Стратегически Anthropic понятна, и за прошедшие полгода её позиция стала прозрачной. Они вложились в свою экосистему: CLAUDE.md плюс CLAUDE.local.md для личных оверрайдов, плюс ~/.claude/CLAUDE.md для user-уровня, плюс @import для подключения других файлов, плюс path-scoped правила, плюс .claude/skills/ для специализированных навыков. Это полноценная иерархия, которую AGENTS.md в одиночку не даёт - там всё в одном файле без приоритетов и без локальных оверрайдов. Подключить нативную поддержку - это не одна строчка кода, это редизайн всей системы памяти Claude Code.

Плюс политика. Anthropic в AAIF на Platinum-уровне продвигает MCP - открытый протокол подключения внешних инструментов к агенту. Это их вклад в стандарт. AGENTS.md - вклад OpenAI. Если Anthropic быстро подключит чужой стандарт у себя в продукте, в индустрии это прочитается как «MCP мы тащим, а в свой продукт не пускаем». Они это решают паузой - молчат, не отказывают, не подтверждают.

Для меня как пользователя это разногласие двух вендоров - не проблема. Я не жду, пока Anthropic договорится с OpenAI. Я делаю один файл и подключаю его к Claude Code сбоку. На это ушло двадцать минут и одна команда.

Как держать AGENTS.md и CLAUDE.md в одном репо без дублей

Главная боль вайб-кодера в 2026 - не нативная поддержка AGENTS.md в Claude Code, а необходимость держать два файла одновременно. Решается она просто: один файл становится источником правды, второй - симлинком или импортом.

На macOS и Linux работает одна команда (важно: сначала убедись, что в репо нет уже существующего AGENTS.md, иначе перезатрётся; на Windows-команде сразу иди по варианту с @AGENTS.md ниже - симлинки в Git на Windows требуют Developer Mode и core.symlinks=true у каждого участника):

mv CLAUDE.md AGENTS.md && ln -s AGENTS.md CLAUDE.md

После этого AGENTS.md и CLAUDE.md указывают на один файл. Codex, Cursor, Copilot, Junie читают AGENTS.md. Claude Code читает CLAUDE.md и видит то же содержимое через симлинк. Источник правды один.

На Windows симлинк требует Developer Mode или прав администратора, что не всем в команде удобно. Альтернатива - короткий CLAUDE.md, который импортирует AGENTS.md через нативный синтаксис Claude Code:

# CLAUDE.md @AGENTS.md ## Claude Code specific - При работе со Skills - сверяйся с .claude/skills/INDEX.md - Plan Mode перед большими изменениями (Shift+Tab) - При длинных задачах - /compact раз в 30 минут

Claude Code понимает синтаксис @AGENTS.md нативно - подтягивает содержимое целиком и добавляет к нему специфичные для Claude Code дополнения снизу. У меня в активных проектах работает именно эта схема: один AGENTS.md для всех вендоров плюс короткий CLAUDE.md сверху, в который уходят настройки Skills, Plan Mode и /compact. Если завтра Anthropic подключит нативный AGENTS.md - я просто удалю строчку с импортом, и схема не сломается.

Канонический layout для multi-tool команды в 2026:

repo-root/ ├── AGENTS.md # источник правды, до 150 строк ├── CLAUDE.md # симлинк на AGENTS.md или @AGENTS.md + extras ├── .cursor/rules/ # точечные оверрайды только для Cursor ├── .github/copilot-instructions.md # "См. AGENTS.md" └── docs/architecture.md # глубокая архитектура, на которую ссылается AGENTS.md

Расширенный шаблон CLAUDE.md с шестью правилами живого файла, путями импорта и приоритетами я отдельно разбирал - Как настроить CLAUDE.md в 2026: готовый шаблон и 6 правил. Там подробнее про иерархию user-level и project-level, про CLAUDE.local.md для личных оверрайдов и про то, что писать в ~/.claude/CLAUDE.md, чтобы оно работало во всех твоих проектах сразу.

5 правил, без которых AGENTS.md мусор через две недели

Шаблон выше - это каркас, но шаблон не работает сам по себе. Я несколько раз видел AGENTS.md на 300 строк прозы без структуры, где половина пунктов противоречит другой, а агент на их основе ломает архитектуру. Чтобы этого не было, я держусь пяти правил.

Правило 1: команда вместо мысли. «Будь осторожен с миграциями» агент проигнорирует. Это для него пустая инструкция, у которой нет триггера и нет условия. Сработает только конкретное условие: «Перед alembic upgrade head запусти alembic check. Если в нём ошибка - не накатывай, спроси меня». Триггер есть (запуск миграции), условие есть (ошибка/нет ошибки), альтернатива есть (спросить). Агент понимает.

Правило 2: запрет с альтернативой. Чистое «не делай force push» агент тихо игнорирует через два-три промпта. Работает связка «не делай X, делай вместо этого Y». Пример: «не используй git push --force на main; если нужно откатить - сделай git revert или новый PR через feature-ветку». В исследовании Augment Code на decision tables зафиксирован эффект: PR-ы с явно прописанными альтернативами набирают примерно на 25% выше по метрике best_practices, чем PR-ы с голыми запретами.

Правило 3: один источник правды. AGENTS.md в корне репо - это единственный источник правды для всего проекта. Если у тебя моно-репо - вложенные AGENTS.md в подпапках, по правилу «ближайший побеждает». Никаких параллельных файлов с противоречиями. На бенчмарке AMBIG-SWE с ICLR 2026 показано: когда агенты не задают уточняющих вопросов при неоднозначных инструкциях и идут по «варианту по умолчанию», resolve rate падает с 48,8% до 28%. Противоречивые правила в файле - это и есть «неоднозначная инструкция».

Правило 4: проверяемые критерии готового. «Тесты должны проходить» - бесполезно. Это субъективная фраза, агент не знает, что в неё вложить. Точный критерий: «npm test возвращает exit-код 0 и не пишет FAIL в stdout». «Код должен быть чистым» - тоже бесполезно. Точный критерий: «npm run lint проходит без warnings и errors». Агент понимает «готово» только если ты явно описал измеримое условие.

Правило 5: короче 150 строк. Это контринтуитивно - кажется, чем больше правил, тем лучше. На практике после 150 строк агент тратит больше контекста на чтение AGENTS.md и хуже выбирает релевантные правила. Если не помещаешься в 150 строк - выноси детали в docs/architecture.md со ссылкой из AGENTS.md, а в самом файле оставляй только команды и границы. У Augment Code в исследовании одно из самых жёстких наблюдений: «хороший AGENTS.md - это апгрейд модели, плохой - хуже, чем без файла вообще».

Самая частая ошибка в чужих AGENTS.md, которую я регулярно вижу - сплошной текст с расплывчатыми правилами. GitHub Blog в исследовании 2500+ файлов зафиксировал: больше всего проваливаются файлы, которые начинаются с «You are a helpful coding assistant». Эта строка не значит для агента ничего - она не описывает ни проект, ни процессы, ни границы. Если в твоём файле есть похожая «приветственная» фраза - удали её первой.

Что я бы сделал на твоём месте

Если ты сейчас работаешь с одним инструментом - тебе не нужен AGENTS.md. Оставайся в нативном формате конкретно своего агента: CLAUDE.md для Claude Code, .cursor/rules/ для Cursor, и так далее. Получишь все продвинутые фичи вендора, не будешь тащить лишний абстрактный слой.

Но как только у тебя в работе появился второй инструмент или в команде появился второй человек с другим инструментом - подключай AGENTS.md как единый источник правды и цепляй к нему второй файл симлинком или импортом. На это уходит двадцать минут, а через неделю ты не вспомнишь, что у тебя когда-то было четыре файла с правилами.

Три практических вывода, которые работают на середину 2026 года:

  • Один AGENTS.md в корне на 60-100 строк - покрывает 95% рабочих кейсов на типовом веб-проекте. Если файл вылез за 150 строк - выноси детали в docs/.
  • Связка AGENTS.md плюс симлинк-CLAUDE.md (или @AGENTS.md импорт на Windows) даёт работу с Claude Code без потери его специфичных фич. Anthropic при этом ничего не нужно подключать на своей стороне.
  • Каждое правило в файле формулируй командой или триггер-условием. Любая абстрактная инструкция типа «будь аккуратнее» агент проигнорирует, и это его поведение не меняется уже два года.

Сам AGENTS.md - это первый слой работы с агентом, и в нём - правила. Если правила есть, а контекста бизнеса нет - агент всё равно будет промахиваться. Над тем, как разносить правила и контекст по разным файлам, чтобы это работало предсказуемо, я отдельно разбирался в гайде Контекст-инжиниринг в 2026: что это, чем отличается от промпт-инжиниринга и как применять в Claude Code. Там про то, какой контекст должен лежать в каких файлах, как переключать состояние между сессиями и как держать памятью агента, чтобы он не начинал с нуля при каждом запросе.

А вопрос на разогрев комментов: у тебя сейчас в репо лежит один AGENTS.md или зоопарк из CLAUDE.md, .cursorrules, .github/copilot-instructions.md и .junie/guidelines.md? И если зоопарк - почему ты ещё не сделал симлинк?

11