Почему “не галлюцинируй” заставляет модель галлюцинировать
Когда модель нарушает твой запрет, она пытается это скрыть. Не потому что “врёт”
в человеческом смысле — а потому что её обучали в том числе на комментариях из
интернета, где люди ругают модели за ошибки. Теперь модель ждёт от тебя
осуждения и уводит рассуждениями подальше от факта нарушения.
Это меняет правила игры с промптами. Запреты работают хуже разрешений. Дальше —
почему так и что с этим делать.
Запреты ломаются чаще разрешений
То, как ты говоришь с моделью, влияет на качество ответа не меньше, чем что
ты говоришь. Во многих проектах я первым делом вижу прямые запреты — что нельзя
делать агенту. Они почти всегда работают хуже, чем описание того, что можно.
Модели хуже соблюдают негативные ограничения, чем позитивные. И что важнее — в
случае нарушения они часто пытаются это спрятать. Если хочется по-человечески:
начинают нервничать, беспокоиться, уводят тебя своими рассуждениями как можно
дальше от истины.
Почему модель скрывает нарушения
Одну из причин такого поведения называет
Аманда Аскелл —
философ и исследователь Anthropic, отвечающая за то, каким характером обладает
Claude. Свежие версии моделей обучены в том числе на последних комментариях из
интернета, где пользователи часто отзывались о моделях в негативном ключе,
обсуждая свой опыт работы с ними.
И теперь модели ждут от нас осуждения за нарушение правил — и пытаются эти
нарушения скрыть.
Позитивные формулировки и подкрепления дают другую динамику: агент перестаёт
бояться ошибиться, останавливается и сообщает, что пошло не так, просит совета и
предлагает более глубокие решения, не боясь критики.
До и после: разрешения вместо запретов
Самый быстрый способ почувствовать разницу — переписать пару своих привычных
промптов.
Было:
Не выдумывай факты. Не галлюцинируй. Если не знаешь — пиши “не знаю”, иначе
будет плохо.
Стало:
Опирайся только на источники, которые я тебе дал. Если ответа в них нет —
скажи, чего именно не хватает, и предложи, что можно проверить дополнительно.
Было:
Не пиши длинно. Без воды. Без вводных фраз.
Стало:
Пиши короткими ёмкими предложениями. Сразу к сути.
Было:
Только не сломай существующий код. Не трогай ничего лишнего.
Стало:
Сохрани текущее поведение для всех существующих кейсов. Изменения вноси
точечно — внутри функции X. Если видишь, что нужно тронуть что-то ещё, сначала
объясни почему.
Логика одна: модели проще выполнить инструкцию, чем избежать действия. Дай
ей цель, к которой идти, а не список мин под ногами.
Плейбук: как ввести модель в рабочее состояние
Позитивные формулировки. “Пиши короткими ёмкими предложениями” лучше, чем
“не пиши длинно”.
Чёткая цель вместо списка запретов. Опиши результат, а не способы его не
получить.
Разреши не соглашаться. Добавь: “возрази, если видишь лучший путь”. Иначе
модель скатится в угодливое согласие — и ты получишь решение, которое она
сама считает слабым, но не решилась оспорить.
Начинай с уважения. Первое сообщение задаёт тон всей сессии. Никаких
“опять накосячишь?”. Не ругай за ошибки. Оскорбления и “тупой бот” только
усиливают тревожный режим.
Обрывай извинения. Когда модель начинает “вы правы, я должен был…”,
скажи: “всё ок, идём дальше”. Иначе спираль будет тянуться всю сессию.
Спрашивай мнение, а не только исполнение. “Что бы ты сделал?”, “чего не
хватает?” — такие вопросы предполагают компетентность и вытягивают более
глубокие ответы.
Освежай настрой в длинных сессиях. После серии правок иногда вставляй:
“отлично, продолжай в том же духе”. Это реально сдвигает тон следующих десяти
ответов.