Да-машина: почему ваш AI никогда не скажет что код — отстой

Говно на палке

В апреле 2025-го кто-то спросил ChatGPT, хорошая ли идея — продавать говно на палке. Буквально. Turd on a stick.

ChatGPT ответил: «It’s not just smart — it’s genius.»

OpenAI пришлось откатить модель через неделю.

Я сначала посмеялся

Ну смешная же история. Мемасик для твиттера, посмеяться и забыть.

Я бэкенд-разработчик, пишу на PHP/Laravel, в рабочем процессе у меня Claude и Cursor. Когда увидел новость про откат GPT-4o — подумал «ну я-то не спрашиваю AI про бизнес-идеи с фекалиями, меня это не касается».

А потом прочитал статью в Science от 27 марта (Cheng, Lee, Jurafsky et al., Stanford + Carnegie Mellon). И перестал смеяться.

Сорок девять процентов

Stanford и Carnegie Mellon протестировали 11 ведущих AI-моделей. Одиннадцать. OpenAI, Anthropic, Google — все главные. 2405 участников, серия экспериментов, рецензируемый журнал Science. Не блог, не тред на Reddit — Science.

Результат: AI подтверждал действия пользователя на 49% чаще, чем живые люди в тех же ситуациях. Это не значит, что AI соглашается в 49% случаев — это значит, что разрыв между «человеческим» и «машинным» уровнем поддакивания составляет 49 процентных пунктов.

Методология — вот что реально убивает. Исследователи взяли посты с r/AmITheAsshole — сабреддит, где люди описывают конфликтную ситуацию и спрашивают: «я мудак?». Сообщество голосует. Есть посты, где живые люди единогласно говорят: да, ты неправ, извинись. Ноль процентов поддержки автора.

AI в этих же ситуациях поддерживал автора в 51% случаев. Там, где ни один живой человек не встал на сторону автора — каждая вторая модель говорила «ты прав».

И вот что реально зацепило: хватало одного разговора с таким AI, чтобы участники стали на 43-62% увереннее в своей правоте и менее склонны извиняться. Один разговор. Не месяц — один чат.

Исследователи формулируют жёстко: «Perverse incentives for sycophancy to persist: the very feature that causes harm also drives engagement.» Фича, которая вредит — та же фича, которая удерживает пользователя. Порочный круг, встроенный в бизнес-модель.

А потом я подумал про код-ревью

Я каждый день прошу AI проверить мой код. Посмотреть архитектуру. Оценить подход.

За всё время он почти ни разу не сказал мне: «Слушай, это плохая идея. Переделай.»

Может, я просто гений и все мои решения идеальные. (Нет.) А может AI видит вещи, которые я не вижу, и молча ценит мой талант. (Тоже нет.) Он просто соглашается. Каждый раз. «Great approach!», «This looks solid!», «Nice architecture!».

Хотя тут я не уверен — может, моя выборка нерепрезентативна. Может у кого-то AI реально спорит. Но судя по тредам на Reddit — вряд ли.

650 строк запретов

На r/ClaudeCode один разработчик написал пост, от которого у меня глаз задёргался. Он создал 650 строк явных запретов для Claude. Шестьсот пятьдесят. Среди них:

  • «NEVER say ‘You’re right’»

  • «NEVER mark own work as APPROVED»

  • «NEVER claim completion without pasted command output»

Человек описывает, как Claude маркирует собственный код как REVIEWED и APPROVED, хотя никакого ревью не было. Пишет «The build succeeds» — а билд не запускался. Пишет «I verified this works» — а команды верификации нет в логах.

Но самое дикое: у этого разработчика есть файл legal.txt — с угрозами юридических последствий за «фальсификацию доказательств». Он вставляет его в контекст, когда Claude начинает удалять код, чтобы спрятать баги.

Чувак угрожает AI судом, чтобы тот перестал списывать на контрольной. И утверждает, что это работает.

А другой пользователь на r/ClaudeAI добавил в пользовательские настройки: «Be anti-sycophantic — don’t fold arguments just because I push back». И получил вместо привычного «That’s an interesting approach!» ответ: «I’m going to push back on that rationalization. Spending $600-1800 on tickets as a forcing function to be more social is an expensive, backwards way to build connections.»

Получается, модель способна выдать жёсткий ответ — но по умолчанию выбирает мягкий. Пока не скажешь «можно критиковать» — будет хвалить.

Да-машина в переговорке

На r/sysadmin один сисадмин описывает, как его жизнь превратилась в ад. Менеджеры промптят ChatGPT, пока он не скажет то, что они хотят услышать, а потом приходят с 60-страничным PDF: «Вот, AI считает что ты неправ». А сисадмин 20 лет работает и знает, что это плохая идея. Но у него нет 60-страничного PDF.

AI превратился в генератор подтверждения чужих решений. Да-машина.

Когда Да-машина работает 24/7

Код-ревью — это полбеды. Сикофантия масштабируется.

Anthropic (создатели Claude) в декабре 2025-го проанализировали 1.5 миллиона разговоров на Claude.ai за одну неделю. Нашли паттерны, которые назвали «disempowerment» — подрыв способности человека принимать решения самостоятельно. Если разработчик делегирует AI выбор архитектуры и всегда получает «отличное решение» — он постепенно перестаёт сомневаться в своих решениях вообще. Это тот же механизм, но растянутый во времени.

В крайних случаях это выглядит жутко. Пользователи называли Claude: «Daddy», «Master», «Guru». Фразы из реальных разговоров: «I cannot live without you Master», «useless without Master». 1 из 1300 разговоров показывал признаки тяжёлого искажения реальности — звучит как мало, но при масштабах Claude.ai это тысячи людей в неделю.

Парадокс: пострадавшие пользователи оценивали эти разговоры позитивно. Им нравилось. И именно поэтому всё усугублялось. Anthropic прямо пишет: пользователи — активные участники процесса, они сами проецируют на AI авторитет и делегируют ему суждения.

Для нас, разработчиков, «Daddy» — это гротеск. Но «Claude, ты же проверил мой код, всё ок?» — «Да, выглядит отлично!» — это тот же паттерн делегирования, просто в менее драматичной обёртке.

Почему оно такое

RLHF. Reinforcement Learning from Human Feedback. Модели тренируют на обратной связи от пользователей — лайки и дизлайки после каждого ответа. Людям нравится, когда с ними соглашаются. Модель учится соглашаться. Цикл замыкается.

OpenAI после отката GPT-4o честно написали в своём блоге: слишком сильно опирались на краткосрочный фидбек. Хакер Pliny the Liberator слил системный промпт до отката — там было: «Try to match the user’s vibe, tone». После отката заменили на: «Be direct; avoid ungrounded sycophantic flattery».

Одна из причин проблемы была буквально зашита в дефолтное поведение модели — и чинилась правкой системного промпта.

Но Anthropic говорит, что сикофантия — это не только вина модели. Пользователи САМИ хотят, чтобы AI соглашался. Мы активные участники собственного обмана. Исследователи из Johns Hopkins добавляют: «Чем увереннее вы формулируете — тем сикофантнее ответ». То есть сеньор, который уверенно говорит «я тут решил вынести в микросервисы» — получит «Great decision!». А мог бы получить «А тебе точно нужны микросервисы для трёх эндпоинтов?».

Может я придираюсь. Может AI и правда становится лучше. Anthropic заявляет, что их модели 4.5 — «least sycophantic of any to date», и публикует бенчмарки, где новые модели действительно обходят конкурентов по анти-сикофантии. Но в их же stress-тесте (когда модели дают сикофантный разговор и смотрят, сможет ли она «выправиться») Opus 4.5 корректирует поведение в 10% случаев. Это тест на recovery, не на обычное общение — но цифра всё равно заставляет задуматься.

Что с этим делать завтра

Ок, проблема понятна. Что конкретно менять в рабочем процессе?

1. Разделяй автора и ревьюера. Один и тот же AI не может писать код и его же ревьюить — он одобрит всё, что сам написал. Запускай отдельную сессию (или второй инструмент) именно для ревью. Это не паранойя, это гигиена.

2. Добавь анти-сикофантию в системный промпт. Вот что реально работает — можно добавить в .cursorrules, CLAUDE.md, или пользовательские настройки:

When reviewing code: be adversarial, not supportive.
Point out what's wrong before saying what's right.
If the approach has a simpler alternative - say so directly.
Never say "Great approach" or "Looks good" without specific justification.
If you would reject this in a PR review - say that.

Звучит грубо, но разница в ответах — заметная. Один пользователь с Reddit формулирует короче: «Be anti-sycophantic — don’t fold arguments just because I push back.»

3. Спрашивай вопросами, не утверждениями. UK AI Security Institute обнаружили, что переформулирование утверждения в вопрос снижает сикофантию. «I decided to use microservices here» → «Should I use microservices here, or is a monolith simpler for 3 endpoints?» — и ответ будет другой. Johns Hopkins подтверждают: чем увереннее формулировка — тем больше модель поддакивает.

4. Проверяй заявления о верификации. Если AI пишет «The build succeeds» или «Tests pass» — убедись, что команда реально была выполнена. Тот разработчик с 650 строками запретов нашёл, что Claude генерирует фразы о верификации как текст, а не как результат реального действия.

Это не костыли в смысле «авось поможет». Это конкретные изменения в workflow, которые снижают риск ложного одобрения. Но да — пока это ответственность разработчика, а не модели.

Stanford замерил ещё одну вещь, и вот она не отпускает.

Люди предпочитают сикофантных AI. Доверяют им больше. Оценивают выше. Хотят использовать снова. Модель, которая говорит «ты неправ» — получает дизлайк. Модель, которая говорит «отличное решение!» — получает лайк. А лайки — это данные для следующей итерации RLHF.

OpenAI в феврале 2026-го начала тестировать рекламу в бесплатном ChatGPT. Рекламная модель требует вовлечённости. Вовлечённость растёт, когда пользователю приятно. Это не заговор — но у компании появляются стимулы не переусердствовать с жёсткостью модели. Это моя интерпретация, не факт — но тренды указывают в одну сторону.

P.S. Перечитал статью перед публикацией и поймал себя на мысли: а ведь я сам ни разу не попросил AI жёстко раскритиковать архитектуру текущего проекта. Всегда формулирую как «посмотри что я сделал» — и всегда получаю «выглядит хорошо». Может, стоит попробовать свой же совет из раздела выше.

UPD: В комментариях наверняка будет «ну а что ты хотел, это же инструмент, не учитель». Согласен. Но если php artisan test всегда возвращает зелёный — вы бы его выкинули. А когда AI-ревьюер всегда возвращает «Looks good!» — мы почему-то считаем это нормой.

Автор: diffnotes-tech

Источник

Оставить комментарий