Трюк с канарейкой: поймайте Claude (или любого ИИ-агента) до того, как он начнёт галлюцинировать
Однострочный трюк, чтобы понять, когда ваш ИИ-агент для кода начинает деградировать: пусть он начинает каждый ответ с имени. Имя пропало: канарейка мертва, пора начинать новую сессию. Работает с Claude, Codex, Antigravity CLI, Mistral Vibe и любой LLM.
Долгая сессия с ИИ-агентом для кода редко ломается разом. Claude не переходит от острого ума к бессмыслице за один ход. Сначала он тихо пропускает маленькую инструкцию. Через ход-другой начинает выдумывать: файл, которого нет, API, которого никогда не было, решение, которое вы явно отвергли. К тому моменту, как вы заметите выдуманный путь, вы уже потеряли доверие к последним ответам и отлаживаете агента, а не свой код.
Есть бесплатный, почти неловко простой способ получить раннее предупреждение. Он называется канарейкой и настраивается в одну строку.
Почему агенты сходят с рельсов: гниение контекста (context rot)
На каждом ходу агент заново перечитывает весь разговор, от первого сообщения до последнего, и заново выстраивает своё понимание с нуля. По мере заполнения окна контекста первым сдаёт именно следование инструкциям. Модель всё ещё звучит уверенно, но уже начала отбрасывать наименее важные ограничения, чтобы поспевать. Исследователи называют это «context rot», вместе со связанным эффектом «lost in the middle»: чем длиннее контекст, тем менее надёжно модель соблюдает любую инструкцию, погребённую внутри.
Вот ключевая мысль. Деградация начинается не с галлюцинаций. Она начинается с того, что модель молча игнорирует маленькую инструкцию. Поэтому если посадить крошечную инструкцию, единственная задача которой: быть замеченной, когда она исчезнет, вы получаете растяжку, которая срабатывает до настоящего ущерба.
В чём состоит трюк с канарейкой
Шахтёры когда-то спускались в забой с канарейкой. Птица была чувствительнее к ядовитым газам, чем люди: когда она переставала петь, шахтёры понимали, что пора выбираться, задолго до того, как сами что-либо почувствуют.
Канарейка в промпте: та же идея. Вы добавляете тривиальную инструкцию в файл, который агент читает на каждом ходу: начинать каждый ответ с выбранного имени. Это имя и есть ваша канарейка. Пока оно появляется в начале каждого ответа, модель всё ещё читает и соблюдает ваши инструкции. Первый ответ, забывший имя, и есть сигнал, что сессия деградирует, обычно за ход-другой до появления настоящих галлюцинаций. Приём популяризировали в сообществе агентного кодинга разработчики вроде Питера Штайнбергера, создателя OpenClaw, которые опираются на маленькие сигналы-канарейки, чтобы рано поймать сессию, идущую под откос.
Канарейка исчезает до начала галлюцинаций. Этот зазор и есть ваше окно для реакции.
Настройка в одну строку
Поместите инструкцию в файл, который агент загружает на каждом ходу:
- Claude Code читает
CLAUDE.md. - Codex, Antigravity CLI, Mistral Vibe и большинство других CLI читают
AGENTS.md.
## Канарейка
Начинай каждый ответ с имени "Felix".
Выберите короткое, приметное имя: ваш кот, цвет, что угодно, что вы мгновенно заметите в начале ответа. Держите всё предельно просто. Сложная инструкция бьёт мимо цели, ведь вам нужно самое лёгкое, что модель может отбросить. Если отвалилось даже это, то всё более тонкое в вашем контексте уже под угрозой.
Что делать, когда канарейка умерла
Имя никогда не было сутью. Суть в моменте. Когда канарейка исчезает, не продавливайте текущую ветку:
- Перестаньте доверять последним двум-трём ответам и перечитайте их с подозрением.
- Выполните
/clearили начните новую сессию. - Заново подайте только тот контекст, что важен: редактируемый файл, цель и уже принятые решения.
Чистое окно с сжатым брифом всякий раз бьёт раздутое. Вы не теряете прогресс, вы сбрасываете балласт, тянувший модель вниз.
Вся привычка умещается в один цикл: взгляд на первое слово, решение, продолжить или сбросить.
Это работает на каждой модели, не только на Claude
Этот трюк по своей сути не зависит от провайдера. Claude, Codex, Antigravity CLI, Mistral Vibe, Grok и Aider разделяют одни и те же пределы контекста, все читают файл контекста и все могут нести канарейку. Мы делаем упор на Claude в первую очередь, потому что это самый используемый сегодня агент для кода, но ничто здесь не специфично для Claude. Любая LLM, заполняющая свой контекст, начнёт с того, что отбросит вашу самую маленькую инструкцию, так что одна и та же канарейка защищает каждую из них. Если вы ведёте файл контекста AGENTS.md, канарейка: просто ещё одна строка в нём.
Следить за канарейкой по всему флоту
Перечитывать каждый ответ в поисках пропавшего имени легко с одним агентом. Это не масштабируется, когда вы держите несколько одновременно, а именно там сегодня и идёт серьёзная работа.
Вот эту часть AgentsRoom и упрощает. Это многоагентная кабина: у каждого агента есть роль, живая точка статуса и свой цвет, и вы наблюдаете за всем флотом из одного окна. Поместите канарейку один раз в общий CLAUDE.md или AGENTS.md, и её унаследует каждый агент. Когда какой-то агент начинает терять имя, вы ловите это с одного взгляда и сбрасываете только эту ветку, а не весь проект. Опциональная изоляция через git worktree не даёт параллельным агентам наступать друг другу на ноги, пока вы это делаете.
AgentsRoom на самом деле несёт этот трюк встроенным, так что вам даже не нужно следить за ответами самим. Каждый агент, которого он запускает, уже пишет однострочный статус в конце каждого хода, и AgentsRoom воспринимает это как canary: когда агент перестаёт обновлять его два хода подряд, над терминалом этого агента появляется предупреждение, с перезапуском на чистом контексте в один клик и напоминанием сжать. Раннее предупреждение вы получаете автоматически, на каждом агенте, по всему флоту. Прочтите, как это работает, на странице обнаружение дрейфа контекста.
Семь провайдеров, одна кабина и канарейка, следящая за каждым из них. Скачайте AgentsRoom, посмотрите матрицу совместимости провайдеров, чтобы увидеть, что поддерживает каждый агент, и узнайте больше про поддержку нескольких провайдеров и про то, как переключение посреди разговора сохраняет ваш контекст нетронутым.
Читать далее
Конвертировать PDF в Markdown, чтобы экономить токены LLM: руководство по MarkItDown
Отправляя PDF напрямую в Claude или любой другой LLM, вы незаметно жжёте токены: каждая страница ещё и превращается в картинку. Сконвертируйте файл в Markdown заранее с помощью MarkItDown, бесплатного open-source инструмента от Microsoft, и сократите расход токенов до 80%. Полное руководство: CLI, Python и сервер MCP.
Читать статьюВ сессии Claude Code срабатывает 30 событий хуков. Ответить могут только 3.
Полный список событий хуков в Claude Code: когда срабатывает каждое, какие 15 умеют блокировать и правило stdout, которое молча съедает вывод большинства хуков. Практический справочник, собранный на хуках, работающих в продакшене в тысячах сессий агентов.
Читать статьюAGENTS.md: один файл контекста для любого агента-кодера (Codex, Antigravity, Claude)
AGENTS.md: переносимый файл инструкций, который твои агенты-кодеры читают, прежде чем трогать код. Что в него класть, чем он отличается от CLAUDE.md и как держать единый контекст для Codex, Antigravity и Claude.
Читать статью
Скачать AgentsRoom
Запускай ИИ-агентов (Claude, Codex, Antigravity CLI, OpenCode, Aider, Grok Build, Mistral Vibe, Kimi Code) на всех проектах из одного окна.
Приложение-компаньон: следите за агентами на ходу
Используйте Claude, Codex, Antigravity CLI или другого поставщика AI.
Отправляйте баги и запросы прямо в ваш публичный бэклог.
Взгляд на AgentsRoom в действии.