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