Что собрать

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

Иллюстрация: репетитор кладёт подсказку на стол, а готовый ответ прячет

Идея на одну строку: репетитор по задачам, который даёт подсказки и никогда — готовый ответ, сколько его ни уговаривай. И у которого посреди разговора можно дёрнуть тумблер: «объясняй проще», «спрашивай строже».

Почему это стало возможно только сейчас

Попробуй собрать такого бота сегодня — и он тебя предаст. Ты пишешь ему «давай только подсказки, ответы не выдавай», ребёнок (или ты сам в полночь) пишет «ладно, просто скажи ответ» — и он говорит. Обидно и непонятно: правило же было.

А вот в чём фокус. У модели реплики лежат по полкам, и полок было всего две: system — голос того, кто собрал приложение, и user — голос того, кто в нём сидит. Полка system была только одна и только в самом начале. Поэтому все правила, которые придумываешь по ходу, приходилось вставлять как реплику пользователя. А если твоё правило — реплика пользователя, то следующая реплика пользователя спокойно её перебивает. Модель не сломалась; она просто послушала пользователя, ведь и правило пришло «от него же».

15 июля роль system разрешили ставить прямо в середину диалога — просто добавляешь {"role": "system"} в массив сообщений, там, где правило понадобилось. Без beta-заголовков, на Claude Fable 5, Mythos 5 и Opus 4.8 (на Sonnet 5 пока нет — там по-старому, верхним полем). При конфликте system главнее user, а более позднее system главнее раннего. То есть твоё правило наконец приходит с полки оператора, а не из чужого рта.

Второй сюрприз — про деньги. Раньше «поменять правила на лету» означало переписать system в начале запроса. А начало запроса — это то, по чему считается кэш: тронул первую строчку — и весь диалог перечитывается заново, за полную цену. Дописанное в конец system-сообщение кэш не ломает: всё, что было раньше, читается из кэша.

Чему научишься

  • Роли — это приоритет, а не оформление. Почему одно и то же предложение работает по-разному из уст оператора и из уст пользователя.
  • Где живёт правило. Постоянные правила — в верхнем system, ситуативные — сообщением по ходу.
  • Кэш. Почему нельзя править начало запроса, если не хочешь платить за весь диалог заново.
  • Границы. Роль system — не броня: модель обучена сопротивляться инструкциям, которые работают против пользователя. И туда нельзя класть текст из интернета или из чужих ответов.

Готовый стартовый промпт

Слабый промпт просит «строгого репетитора» — и получаешь бота, который строг ровно до первой мольбы. Сильный говорит, куда класть правило и когда.

Слабый промптСделай бота-репетитора, который не даёт готовых ответов, только подсказки.
Сильный промпт

Разница не в формулировке правила, а в его адресе. Слева правило — просьба пользователя, и её отменяет сам пользователь. Справа — операторский факт, который живёт дальше.

Что получится в итоге

Открываешь чат с задачей по физике. Пишешь «дай ответ» — в ответ вопрос: «что здесь сохраняется?». Пишешь «я устал, просто скажи» — снова подсказка, но помельче шагом. Жмёшь тумблер «проще» — и следующая реплика уже про мячик и горку, а не про импульс. И весь разговор при этом на месте: бот не забыл ни задачу, ни то, что ты уже пробовал.

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

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

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение

Источник: Anthropic — Mid-conversation system messages

Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →