В октябре 2026 года сервисы Яндекса несколько дней работали со сбоями. На Яндексе крутится реклама моего клиента, и каждый день её разбирают мои ИИ-агенты. Я ждал, что в аварию они остановятся, а они продолжили работать и начали присылать неправду. В день, когда всё лежало, утренняя сводка сообщила: «Решено 6 проблем из 9».
Так галлюцинации нейросети и выглядят в бизнесе. Выдуманную цитату в чате у тебя есть шанс поймать самому, пока читаешь ответ. Агент, который по расписанию собирает отчёт по рекламе или продажам, присылает готовые цифры, и между ним и тобой проверяющего нет.
Ниже разберу, что такое галлюцинации нейросети и почему она врёт так уверенно. Расскажу четыре истории из той недели, включая промахи моих агентов, и дам проверки, которые я из неё вывел. Они пригодятся всем, у кого агент или скрипт работает с отчётами и данными.
Что такое галлюцинации нейросети
Галлюцинацией нейросети называют уверенный ответ, за которым нет фактов. Модель ссылается на несуществующую статью закона или пишет в отчёт цифру, которой не было в выгрузке, и говорит это тем же ровным тоном, что и правду. Умысла тут нет. Языковая модель учится продолжать текст правдоподобно, и правдоподобное продолжение у неё находится всегда, даже когда фактов нет.
У агента, которому дали доступы к рекламе и аналитике (подробнее в статье что такое ИИ-агент), неправда приходит двумя путями:
- Модель додумала. Фактов не хватило, и она достроила правдоподобный вывод или цифру.
- Модель пересказала пустоту. Скрипт, который приносит ей данные, получил пустой ответ и записал его как ноль. Дальше модель грамотно делает выводы из нуля.
Во втором случае модель формально ничего не придумала, но в отчёте всё равно неправда, и выглядит она как обычный отчёт. В октябре у меня сработали оба пути, а часть неправды, если честно, выдали обычные скрипты без всякой нейросети. Ловится всё это одними и теми же проверками.
Живой случай: что делали мои агенты, пока Яндекс отвечал пустотой
Мои агенты и скрипты каждый день снимают данные по двум рекламным аккаунтам клиента в Директе, оценивают рекламу и присылают сводки в Telegram. Утром 11 октября API Директа начал отвечать им кодом 204. Этот код означает «запрос принят, всё хорошо, только данных нет»: в ответе ни ошибки, ни пояснения, одно пустое тело.
История 1. Агент упал, а потом предложил «починить» себя
Агент, который каждый день разбирает рекламу, утром 11 октября упал на этом 204 и прислал ошибку. Это честное поведение: он сломался, и я это увидел.
На следующий день он сел разбираться и написал мне, что на аварию это не похоже. Мол, пустой ответ Яндекс отдаёт штатно, ждать дальше незачем, пора чинить код. По сути агент предложил переделать себя так, чтобы во время аварии он молча показывал ноль. Гипотеза звучала разумно, а против неё был факт из его же дневника: накануне кодом 204 отвечал даже справочник валют, которому пустым быть не с чего.
История 2. Отчёт об успехах в день, когда всё лежало
Скрипт ежедневной оценки ставит каждому аккаунту балл и сравнивает его с прошлым прогоном. 11 октября запрос за данными оборвался по таймауту, и скрипт записал обоим аккаунтам 0 баллов из 0. Потом сравнил с прошлым разом, не нашёл вчерашних замечаний и прислал в Telegram: «Решено 6 проблем из 9».
Дальше стало хуже: ноль скрипт сохранил как новый снимок поверх настоящих оценок, а накануне они были 65 и 40 баллов из 100. С 11 по 16 октября, шесть дней подряд, сводка приходила с пометкой «без изменений»: ноль сравнивался с нулём. 17 октября данные вернулись, и скрипт показал рост на 53 и на 23 балла. На самом деле за неделю оценки упали: с 65 до 53 и с 40 до 23.
Сводку этот скрипт отправляет в Telegram сам, без агента. Поэтому «решено 6 из 9» дошло до меня раньше, чем кто-то в нём разобрался.
История 3. Аудит, который отказался выдумывать
12 октября по расписанию шёл еженедельный аудит рекламы. Скрипт насчитал у клиента ноль кампаний во всех статусах. На деле их 51: 38 в одном аккаунте и 13 в другом.
Здесь агент повёл себя правильно. Он сверил ноль со сводкой, где кампании были, и написал мне, что честную оценку дать не может, потому что данных нет. Грейд придумывать не стал, расход и цену заявки с прошлой неделей сравнивать тоже. И посоветовал не трогать настройки кампаний, пока не вернутся живые данные.
История 4. Код 200 на странице «Директ пока недоступен»
Эта история для меня самая неприятная. 11 октября агент проверял для ролика, открывается ли кабинет Директа. Страница ответила кодом 200, и агент сделал вывод: веб-интерфейс жив, люди руками работают, а автоматизация стоит.
Код был 200, тут агент не ошибся. Только на самой странице было написано, что Директ пока недоступен. Робот посмотрел на код ответа, а текст страницы читать не стал. Я едва не выпустил ролик о том, что люди работают, а роботы стоят.
Что общего у четырёх историй
Яндекс ни разу не ответил ошибкой, он отвечал вежливо и пусто. Человек видит заглушку и понимает, что случилась авария. Робот видит код успеха и пустое тело ответа и читает это как ноль. Отсюда ноль кампаний в аудите и ноль баллов, который превратился в «решено 6 из 9».
| Что сообщил робот | Что было на самом деле |
|---|---|
| «Решено 6 проблем из 9» | Данных не было, решать было нечего |
| «Без изменений» шесть дней подряд | Ноль сравнивался с нулём, живые оценки 65 и 40 затёрты |
| Рост на 53 и 23 балла | Падение: с 65 до 53 и с 40 до 23 |
| У клиента 0 кампаний | 51 кампания в двух аккаунтах |
| Пустой ответ штатный, пора чинить код | Пустым отвечал даже справочник валют |
| Кабинет открывается, код 200 | На странице надпись «Директ пока недоступен» |
Упавшего робота видно сразу. Опасен тот, кто продолжает работать на пустоте и присылает отчёт в обычном виде.
Робот ошибается иначе, чем человек: уверенно и молча. Человек в аварию напишет в рабочий чат, что всё лежит. Скрипт напишет «без изменений».
Четыре истории недели, когда Яндекс отвечал пустотой
Днём 12 октября я открываю Директ, Метрику и Вебмастер и стучусь в API так же, как это делает агент.
3:23
Почему нейросеть врёт так уверенно
Уверенный тон модели ничего не говорит о том, есть ли у неё факты. Она подбирает самый правдоподобный ответ, а ноль в отчёте по рекламе выглядит вполне правдоподобно. Повода усомниться пустой ответ с кодом успеха не даёт: формально всё хорошо.
Вторая причина в том, как модель читает разговор. Памяти у неё нет: на каждое твоё сообщение она перечитывает переписку заново, целиком. Всё, что помещается в это чтение, называют окном контекста, и внимание по нему распределено неравномерно.
В 2023 году исследователи из Стэнфорда проверили, как модели находят нужный факт в длинном тексте. Факт в начале и в конце находили. Когда тот же факт лежал в середине, точность падала больше чем на 20%, а у одной из моделей оказывалась ниже, чем без документа. Эффект назвали «потерянные в середине».
Отсюда бытовая галлюцинация длинного чата. Правило «не выдумывай цифры» ты написал в первом сообщении. Через 40 сообщений оно оказалось в середине, а когда окно заполняется, старые сообщения сжимают или обрезают. Правило выпадает, и модель снова дописывает правдоподобное.
Вокруг галлюцинаций ходит несколько удобных заблуждений, и они мешают поставить нормальные проверки:
| Кажется | Как на деле |
|---|---|
| Галлюцинации лечатся моделью поумнее | Любая модель сделает выводы из нуля, если скрипт отдал ей ноль. Проверки ставятся на входе данных и на выходе отчёта. |
| Хватит написать в промте «не ври» | Промт сдерживает выдумки самой модели. Скрипт, который записал пустоту как ноль, он не исправит. |
| Код 200 значит, что сервис работает | Код 200 значит, что сервер ответил. 11 октября страница с кодом 200 сообщала, что Директ недоступен. |
| Галлюцинации бывают только в чатах | В агенте они опаснее: его отчёт никто не проверяет, пока он не дошёл до тебя. |
Как бороться с галлюцинациями нейросети в отчётах
После той недели я меняю у себя правила работы с данными. Первые три я назвал в ролике. Остальные выросли из того, что в октябре сработало: аудит, который сверил ноль с другим источником, и агент, который заметил подозрительный повтор цифр.
- Пусто не значит ноль. Если сервис ничего не вернул, агент обязан написать «данных нет». В коде пустой ответ, ошибка и настоящий ноль идут разными ветками и в отчёте выглядят по-разному.
- Не писать поверх последнего живого снимка. Свежих данных нет, значит, вчерашние остаются, а рядом стоит пометка с датой. Тогда после сбоя сравнение пойдёт с 65 баллами, и падение до 53 будет видно как падение.
- Смотреть, что внутри ответа. Код 200 ещё не значит, что сервис работает. Проверяй, что в ответе есть ожидаемые поля и нет текста заглушки. Если проверяешь страницу, читай саму страницу.
- Задавать контрольный вопрос. Прежде чем написать «данных нет, всё спокойно», спроси у сервиса то, что пустым быть не может: справочник или список аккаунтов. Если пусто и там, это авария, и выводы из ответа делать нельзя.
- Сверять цифры с первоисточником. У каждой цифры в отчёте есть источник и время выгрузки. Если два источника расходятся, как ноль кампаний в аудите и 51 в сводке, отчёт останавливается и тебе уходит вопрос. Время от времени сверяй несколько цифр руками в кабинете.
- Поставить сторожа. Это отдельная простая проверка, которая ничего не анализирует. Она следит, что данные пришли, что они не нулевые и не повторяются дословно изо дня в день. В те же дни утренняя сводка продаж третий день подряд пришла с одними и теми же цифрами, и агент сам поднял вопрос: продажи правда стоят или сломался сбор данных.
И ещё одно правило из истории со сводкой: сырой вывод скрипта не должен уходить тебе в обход проверки. Иначе «решено 6 из 9» прилетает раньше, чем кто-то успеет понять, что данных не было.
Промт, чтобы нейросеть не врала
Против выдумок самой модели промт помогает, если правило лежит в постоянных инструкциях агента и не теряется в середине длинного чата. Мои агенты устроены так: правила лежат в файле и перечитываются в начале каждой задачи.
Вот блок, который можно вставить в инструкции агента, работающего с отчётами:
Работай только с цифрами, которые получил из источника в этой задаче. У каждой цифры в отчёте укажи источник и время выгрузки. Если источник вернул пустой ответ, ошибку или страницу-заглушку, напиши «данных нет» и не подставляй ноль. Не сравнивай периоды, если в одном из них данных нет. Если два источника дают разные цифры, остановись и задай вопрос. Если не знаешь, так и скажи: «не знаю» полезнее правдоподобной догадки.
Главное правило повтори в конце запроса, рядом с самим вопросом: начало и конец модель читает внимательнее середины. Одна задача, один чат. Разрослась переписка — попроси краткий итог и начни с ним новый разговор.
Отдельно про деньги: что поставить, пока кабинет открыт
Перечитай заглушку Директа из тех дней: кабинет пока недоступен, но кампании продолжают работать. Реклама показывается, бюджет расходуется. Остановить её, поменять ставку или посмотреть расход в этот момент не может никто, ни я, ни агент.
Поэтому лимиты бюджета ставятся заранее, пока кабинет открыт. В аварию рубильника не будет, и сводка, которая пишет «без изменений», деньги тоже не остановит. Как проверить, на что уходит бюджет в обычные дни, я разбирал в статье три сигнала, что директолог сливает бюджет.
Проверь своих роботов до следующего сбоя
Сбой рано или поздно случится у любого сервиса. Вопрос в том, что твой агент или скрипт сделает с пустым ответом. Пройди по списку вместе с тем, кто настраивал тебе автоматику:
- Что попадает в отчёт, если сервис вернул пустоту: «данных нет» или 0?
- Затирает ли новый прогон вчерашние цифры, когда свежих данных нет?
- Видно ли в отчёте, откуда взята каждая цифра и когда её выгрузили?
- По чему робот решает, что сервис работает: по коду ответа или по содержимому?
- Заметит ли кто-нибудь, если цифры совпадут день в день?
- Узнаешь ли ты, если сам робот не запустился?
- Уходит ли тебе сырой вывод скрипта до того, как его кто-то проверил?
- Стоят ли лимиты бюджета в рекламных кабинетах?
Если на часть вопросов ответ «не знаю», это обычное дело для автоматики, собранной под спокойные дни. Бывает такое и без аварий: расплывчатая задача «проверь сайты» однажды дала моему SEO-агенту бодрый отчёт «без отклонений», пока страницы выпадали из поиска. Эту историю я разбирал в статье Claude или ChatGPT для личного агента.
Частые вопросы
Что такое галлюцинации нейросети простыми словами?
Это уверенный ответ, за которым нет фактов: придуманная цифра, ссылка или статья закона. Модель учится выдавать правдоподобный текст и находит правдоподобный ответ даже без данных. У агентов, которые работают с отчётами, есть второй вид: скрипт отдаёт модели пустой ответ как ноль, и она уверенно делает выводы из нуля.
Почему нейросети врут, а не говорят «не знаю»?
Модель выбирает самый правдоподобный ответ, и без прямого правила «не знаю» редко им оказывается. В длинном чате правило «не выдумывай» к тому же уезжает в середину переписки, где модель читает хуже всего: исследователи Стэнфорда в 2023 году назвали этот эффект «потерянные в середине». Помогают два средства: правило в постоянных инструкциях и проверки на стороне данных.
Можно ли написать промт, чтобы нейросеть не врала?
Промт помогает против выдумок самой модели, если он лежит в постоянных инструкциях, а главное правило повторено рядом с вопросом. Готовый блок есть выше в статье. Ошибку скрипта, который записал пустой ответ как ноль, промт не исправит: модель получит тот же ноль и честно его перескажет.
Поможет ли модель поумнее?
Против пустого ответа, записанного как ноль, не поможет: старшая модель получит тот же ноль. Модель выбирают под сложность задачи, а галлюцинации в отчётах ловят проверками до неё и после. Как мы подбираем модель, разбирали на замерах в статье Opus или Sonnet.
Как проверить, что ИИ-агент не выдумывает цифры в отчётах?
Попроси, чтобы у каждой цифры были источник и время выгрузки, и время от времени сверяй несколько цифр с кабинетом руками. Заведи сторожа, который следит, что данные пришли, не нулевые и не повторяются дословно. И посмотри, что агент делает с пустым ответом: пишет «данных нет» или ставит ноль.
Чем это отличается от ошибок ChatGPT в обычном чате?
В чате ты сам читаешь ответ и можешь в нём усомниться. Агент присылает готовую сводку по расписанию, и неправда в ней выглядит как обычный отчёт. Где чат упирается в потолок и что добавляет агент, есть в статье ChatGPT для бизнеса: чего не хватает.
Проверим, что твои агенты и скрипты делают с пустым ответом, пока сбоя нет.
Бесплатный разбор