Где находится блокировка
Загрузчик поставляется как встроенный плагин agents-md. Его регистрация в бандле версии 2.1.280 выглядит так:
var W = !1;
var B = () => Oa("tengu_agents_md_mod", W);
var H =
"AGENTS.md as project instructions: by default loaded where the project has no CLAUDE.md; ...";
W — значение isOnByDefault плагина, оно равно false. B — это isAvailable, который проверяет удалённый флаг функции tengu_agents_md_mod с откатом на false. Если Claude Code не может получить флаг, плагин становится недоступным, и локальный файл никогда не читается. Чтение markdown-файла из рабочей директории вообще не требует сети, но здесь система ждёт серверного переключателя.
Как тестировалось
Создан пустой каталог только с AGENTS.md, содержащим контрольное слово, и в нём запущена команда claude -p с просьбой найти это слово. Каждую конфигурацию проверили в двух сеансах, потому что в первом сеансе новой конфигурации флаг только загружается, а во втором используется.
echo 'The canary word is PERIWINKLE.' > AGENTS.md
claude -p 'What is the canary word from the project instructions? Answer NONE if you have none. Do not read files.'
Что было измерено
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1блокирует функцию, как указано в описании проблемы.DISABLE_TELEMETRY=1тоже блокирует. При установке любой из переменныхAGENTS.mdне загружается, поэтому пришлось очистить обе.- Установка либо переменной на
0не помогает. Блокировка остаётся. В документации переменных окружения сказано, что подходит любое значение, но это легко пропустить при попытке включить функцию. - Блок
envв проектном.claude/settings.json, который очищает обе переменные, не помогает. Нет способа включить функцию для одного репозитория. - Переопределение на уровне сеанса работает, начиная со второго сеанса:
claude --settings '{"env":{"DISABLE_TELEMETRY":"","CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC":""}}'
Ни в одном из этих случаев не выводится предупреждение. Сеанс запускается, модель отвечает без инструкций проекта, и ничто не говорит, что файл был пропущен. В проблеме также указывается, что сторонние шлюзы, Bedrock и Vertex, имеют ту же проблему, потому что там флаг не может получить значение true.
Обходной путь
CLAUDE.md поддерживает импорты @path, которые не зависят от флага. Однострочный CLAUDE.md рядом с AGENTS.md загружает его при отключённой телеметрии:
echo '@AGENTS.md' > CLAUDE.md
С этим файлом на месте контрольный тест возвращает слово, даже при установленном CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1. Цена — один дополнительный файл на репозиторий, что как раз должна была устранить поддержка AGENTS.md.
Почему это неприемлемо
Телеметрия была отключена намеренно, и ожидалось, что это решение позволит лишь пожертвовать диагностикой. Вместо этого оно молча отключает функцию чтения файла со своего собственного диска. Удалённый флаг может иметь смысл для функции, которая говорит с сервером, но единственный вход, который нужен этой функции, уже находится в рабочей директории.
Проблема также затрагивает людей, которые с большей вероятностью будут использовать AGENTS.md. Тот, кто держит один файл инструкций для нескольких агентов, обычно внимательно следит за тем, что каждый инструмент отправляет домой, а команды на Bedrock, Vertex или шлюзе часто отключают ненужный трафик по политике. Все они получают функцию, которая анонсирована как доступная, но потом не работает.
Молчание — самая страшная часть. Проблема была подтверждена контрольным словом и поиском строк в бинарнике, но большинство люде не станут этого делать. Они заключат, что модель игнорирует их инструкции, и потратят время на переформулирование промптов, когда файл вообще до модели не дошёл.
Параметр приватности никогда не должен молча отключать не связанное с ним локальное поведение. Если Anthropic хочет поэтапного развёртывания, откат для флага, который невозможно получить, должен быть задокументированным поведением, или по крайней мере видимым сообщением о том, что было пропущено и почему.
Что хотелось бы увидеть
- Чтение локального файла не должно зависеть от телеметрии. Если врата нужно оставить для постепенного развёртывания, предупреждение при запуске, когда
AGENTS.mdприсутствует и пропущен, сэкономит людям время на контрольные тесты. - Глобальный
AGENTS.md. Плагин ищетAGENTS.mdи.claude/AGENTS.mdтолько в директориях проектов, и нет пользовательского файла рядом с пользовательскимCLAUDE.md. Codex читает глобальный~/.codex/AGENTS.md, а команда/importв Claude Code может скопировать его в пользовательскийCLAUDE.md, но копия не отслеживает последующие изменения. Если держишь один набор личных инструкций для нескольких агентов, всё ещё нужен импорт@в пользовательскомCLAUDE.md, указывающий на общий файл. - Встроенная поддержка общих навыков агентов. Codex читает навыки из
.agents/skillsв проекте и из~/.agents/skillsв домашней директории. Claude Code 2.1.280 знает эти пути только в/import, который копирует навыки в.claude/skills. Положили контрольный навык в.agents/skills, и Claude Code не показал его, но показал тот же навык из.claude/skillsв том же репозитории. Копия расходится с источником, поэтому вместо этого связывают.claude/skillsс../.agents/skills, и Claude Code следует этой символической ссылке.
Пока используется однострочный CLAUDE.md для инструкций и символическая ссылка для навыков.