
Привет, Хабр! За время написания нескольких книг я превратил искусственный интеллект в своего постоянного напарника. Он работает моим редактором, критиком и иллюстратором. Но в процессе поиска общего языка с LLM меня не покидало стойкое ощущение дежавю.
Когда модель в сотый раз проигнорировала контекст, поняла запрос слишком буквально и начала откровенно хитрить с токенами, я наконец догадался, где уже видел точно такие же паттерны поведения — в народных сказках. Я осознал, что прочитав дюжину сказок вдумчиво, вы освоите как минимум половину курса по промптингу. Ведь фольклор — готовый сборник правил по безопасности для современного промпт-инжиниринга.
Сказки как инструкция по выживанию в эпоху ИИ
Любой, кто плотно работал с нейросетями, сталкивался с их «странностями». Модель выполняет формальную инструкцию, полностью игнорируя истинное намерение. Стоит чуть расслабиться — и она начинает «хитрить», экономить токены, выдавать банальные ответы. Достаточно одной двусмысленности, чтобы система ушла в неожиданную интерпретацию. А само общение все больше напоминает ритуал: строго определенные формулировки, выверенные заклинания-промпты.
Чем дольше работаешь с ИИ, тем яснее видишь отличия от работы с кодом:
Программирование строится на детерминизме: в идеале один и тот же код дает один и тот же результат.
Промпт-инжиниринг строится на интерпретации: модель не исполняет запрос, она его читает и затем сама преобразует в набор команд.
Именно поэтому здесь важнее не точность синтаксиса, а точность смысла. И именно с этой задачей человечество разбиралось тысячи лет, задолго до нейросетей. Чем дольше работаешь с ИИ, тем больше появляется странное ощущение, что ведешь переговоры с существом, у которого своя логика и свои правила игры.
Человечество описывало подобные взаимодействия задолго до создания кремниевых процессоров. Персонажи сказок, наделенные волшебными силами, удивительно похожи на современные LLM, которые обладают огромным набором знаний. А еще и те и те не прощают неточной формулировки запроса.
Сказки — нечто более ценное, чем просто предсказание ИИ, они раскрывают накопленный культурой опыт взаимодействия с непрозрачными интеллектуальными агентами. В традиционном обществе они служили для передачи критически важных навыков:
как распознавать заведомо опасные сделки;
как разговаривать с тем, кто заведомо сильнее тебя;
почему буквальное исполнение желания часто оказывается ловушкой;
зачем строго соблюдать ритуальный порядок действий;
какие вещи критически важно проговаривать явно.
Фольклор веками передавал устойчивые модели выживания в непредсказуемом мире — среди непонятной природы, опасных чужаков и «волшебных» сущностей. Эти паттерны оттачивались поколениями, ведь ошибка в реальной жизни стоила слишком дорого.
С появлением LLM эти сценарии внезапно снова стали сверхактуальными
Если взглянуть на сказки как на культурные симуляторы общения с нечеловеческим разумом, многие загадки современного ИИ мгновенно находят свое объяснение. Именно поэтому работа с ИИ сегодня ощущается не как кодинг, а как смесь дипломатии, психологии и ритуала. Разберем на примере замечательной сказки «Финист — ясный сокол» (очень люблю старый советский фильм по ней).
Младшая дочь просит отца привезти аленький цветочек — не платье, не платок, не то, что просят все. Отец объездил весь город: цветочка нигде нет. Нашелся только у того, кто сам пришел навстречу.
Это первый урок: чем точнее и необычнее запрос, тем неожиданнее ресурс, который он активирует. Общий вопрос находит общий ответ.
Финист с первой встречи «устанавливает протокол»: поставь цветочек на окно — прилечу. Не она придумывает способ его позвать, он сам говорит ей точное условие. Она не импровизирует и не ищет короткий путь, просто соблюдает договор.
Модель тоже охотно подсказывает, в каком формате ей удобнее получать задачи, достаточно один раз спросить.
Вместе с протоколом он оставляет ей инструмент: выйди на крылечко, махни перышком вправо — и явится все что душе угодно. Только вправо, только с крылечка. Инструмент работает именно так, как описан, а не «примерно в ту сторону».
Мощный инструмент требует точного синтаксиса вызова — будь то структура JSON в function calling, якорная фраза в системном промпте или формат, который модель ожидает увидеть, прежде чем переключиться в нужный режим.
Все работало безупречно, пока она не забыла снять заколки с бриллиантами. Протокол не нарушен, цветочек стоит на окне — но случайная деталь выдала всю систему.
Модель точно так же цепляется за лишний контекст, случайно попавший в промпт: старый пример, противоречивую инструкцию, чужой стиль. Утечка контекста ломает систему не хуже неверного запроса.
Сестры действуют тоньше. Они не трогают цветочек и не меняют ее слов — они втыкают ножи в раму окна. Финист летит, протокол соблюден, но между запросом и исполнителем стоит скрытое препятствие. Он бьется о ножи, режет крыло и улетает. Утром младшая дочь видит на ножах обрезанные перья — и понимает: дело было не в словах.
Это конфликт между двумя инструкциями, каждая из которых формально верна. Модель в такой ситуации делает то же самое — пытается исполнить обе и не может ни одну.
Путь к Финисту устроен как конвейер. Три избушки, три Бабы-яги — и ни одна не знает маршрута целиком. Каждая дает ровно один инструмент и одно направление: ступай к средней сестре, ступай к старшей. Героиня не пытается вытащить из первой все сразу. Она доверяет цепочке.
Каждый узел решает свою подзадачу и передает результат дальше — классический multi-agent pipeline, где попытка решить все одним запросом дала бы заведомо худший результат.
Инструменты, которые она несет, тоже не универсальны. Золотой молоточек открывает первую дверь, блюдечко с шариком — вторую, конь на угольях — третью. Ни один не заменяет другой, каждый работает ровно в одном месте.
Попытка использовать один инструмент для всех задач — одна из самых распространенных ошибок и в сказке, и в работе с API.
Царевна действует изящнее сестер. Она втыкает булавку в платье Финиста, и он засыпает. Он здесь, он рядом, формально доступен — но недостижим. Героиня говорит с ним, плачет над ним, и он слышит сквозь сон, но не может открыть глаза.
Это prompt injection в чистом виде: вредоносная инструкция, встроенная в контекст, переопределяет поведение системы, даже когда внешний запрос совершенно корректен.
Решение приходит случайно. Героиня ищет в волосах у Финиста и роняет булавку — он просыпается. Она не вычислила, где искать, не применила правильную стратегию. Она устранила помеху, сама того не зная.
Иногда проблема решается не новым промптом, а очисткой контекста. Новый чат, сброс истории, удаление противоречивых инструкций — и модель наконец работает так, как должна была изначально.
Сказочные эвристики
Здесь начинается самое интересное. Многие сказочные сюжеты — это готовые эвристики взаимодействия с «черным ящиком» — системой, чью внутреннюю логику человек не понимает.
В фольклоре герои почти никогда не побеждают систему грубой силой. Вместо этого они ведут себя как образцовые промпт-инженеры:
Инициализируют контекст. Не требуют от Бабы-яги немедленных ответов, а сначала запускают скрипт «накорми, напои, в баньке помой», подстраиваясь под жесткие системные требования.
В промптинге это называется прогревом контекста: прежде чем задать сложный вопрос, модели нужно задать роль, обозначить задачу и установить тон. Холодный запрос без контекста дает холодный ответ.
Соблюдают протоколы. Четко следуют правилам: не едят волшебные яблоки, не оборачиваются назад, не нарушают табу. Ошибка в одной строчке протокола — и сессия аварийно завершается.
В промптинге это ограничения системного промпта: инструкции, которые модель должна соблюдать независимо от того, что просит пользователь. Нарушение одного условия ломает всю цепочку — модель либо отказывает, либо уходит в непредсказуемое поведение.
Декомпозируют сложные задачи. Не пытаются победить Кощея в лоб, а разбивают квест на подзадачи: найти дерево, открыть сундук, поймать зайца, разбить яйцо, сломать иглу.
Это прямая аналогия Chain of Thought — техники, при которой модель рассуждает пошагово, а не пытается выдать финальный ответ одним прыжком. Чем сложнее задача, тем важнее разбить ее на последовательные шаги и заставить модель пройти каждый явно.
Исследуют систему итеративно. Прощупывают ограничения «черного ящика» постепенно: сначала просят у золотой рыбки корыто, затем избу, оценивая реакцию системы на возрастающую нагрузку.
В промптинге это стратегия тестирования границ модели: начинать с простого запроса, смотреть, где и как она ошибается, и только потом усложнять. Попытка сразу запросить максимум, без понимания, как система себя ведет, почти всегда заканчивается неожиданным отказом.
Избегают галлюцинаций. Внимательно следят за скрытыми ловушками и формулировками, зная, что любой дословный запрос к джинну может обернуться фатальным багом.
В промптинге это работа с точностью формулировки: модель выполняет буквально то, что написано, а не то, что имелось в виду. Расплывчатый запрос дает расплывчатый, а иногда и опасно точный — но не тот — ответ.
Герои древних историй делают ровно то же самое, что сегодня нужно любому, кто работает с нейросетями. Вместо попыток просчитать и взять под контроль все мыслимые и немыслимые варианты развития событий, они учатся виртуозно управлять ее агентами.
Давайте разберем, какие еще рабочие паттерны промптинга есть в других сказках, чему учат другие знаковые персонажи.
«Дурацкий метод» как точная наука
Многие прорывные инсайты при работе с LLM рождаются не тогда, когда пользователь жестко оптимизирует один монотонный запрос или пытается линеаризовать решение. Они появляются в процессе исследовательского взаимодействия (exploratory interaction):
Выход из локальных минимумов. Если двигаться только по самому логичному и очевидному пути (градиентный спуск), модель выдаст банальное заезженное решение. «Глупость» Ивана-дурака — это стохастический шум (случайный сдвиг в сторону), который не дает застрять на очевидном и находит выход там, где логика заходит в тупик.
Свободное картирование пространства идей. Общение с моделью без жестко фиксированного ТЗ позволяет обнаружить скрытые связи между далекими доменами знаний.
Неожиданный фрейминг (Reframing). Взгляд на проблему под абсурдным углом активирует в нейросети те кластеры эмбеддингов, которые обычно спят при стандартных запросах.
Большие языковые модели фантастически сильны именно как генераторы альтернатив. Они идеальны там, где нужно расширить пространство возможных ходов.
Древняя эвристика Ивана-дурака подсказывает нам контринтуитивное, но рабочее правило: иногда лучший способ решить сложную задачу — это на время перестать ее оптимизировать. Отключите режим жесткого контроля, поднимите «температуру» диалога и позвольте модели побродить по самым странным тропинкам. Возможно, именно там лежит путеводный клубок.
Но беспорядочное брожение — только первый шаг. Когда направление найдено, начинается другая работа: войти в систему так, чтобы она вообще захотела с вами разговаривать.
Баба-яга и правильная инициализация контекста
Один из самых показательных паттернов во всем фольклоре — взаимодействие героя с Бабой-ягой. Современный человек обычно воспринимает этот эпизод как странный набор архаичных ритуалов. Из сказки в сказку кочует одна и та же фраза: «Ты меня сперва напои, накорми, в баньке попарь, да тогда и спрашивай».
Но если посмотреть на ситуацию глазами ИТ-инженера, логика старухи становится удивительно рациональной.
Иван-царевич не начинает диалог с ходу. Он не требует готовых решений и не забрасывает агента хаотичными вопросами. Прежде чем отправить главный запрос, герой:
проходит процедуру инициализации. Принимает жесткие правила чужой системы;
настраивает канал взаимодействия. Переводит агента из спящего или враждебного режима в рабочий;
задает правильный контекст. Обеспечивает безопасную среду для обеих сторон.
И только после этого «скрипта авторизации» активируется полезная функция системы — выдача путеводного клубка.
Для современных LLM эта древняя процедура выглядит подозрительно знакомо. По сути, Баба-яга требует от героя качественный System Prompt.
Сравним подходы
Плохой prompt (попытка взять систему «нахрапом»):
Напиши архитектуру высоконагруженного сервиса. Используйте код с осторожностью. Результат в сказке: модель вас просто «съест» — выдаст банальный, бесполезный ответ или загаллюцинирует.
Хороший prompt (сказочный ритуал инициализации):
Ты — Senior Backend Architect со стажем 15 лет в финтехе. Мы проектируем платежный шлюз. Система должна выдерживать 50 000 RPS, работать в K8s-окружении и учитывать требования PCI DSS. Перед тем как выдать финальное решение, задай мне 5 уточняющих вопросов. После этого предложи 3 варианта архитектуры с анализом компромиссов. Используйте код с осторожностью.
Эффективное взаимодействие с нечеловеческим интеллектом по-хорошему должно начинаться с жесткой настройки контекста. Эта идея родилась задолго до компьютеров. Фольклор буквально кричит нам через века: прежде чем обращаться к сильному агенту, сначала инициализируй сессию и задай системную роль.
Однако правильно войти — это еще не все. Одна и та же инициализация дает разный результат в зависимости от того, в каком тоне вы продолжаете разговор.
Морозко и управление пространством эмбеддингов
Сказка «Морозко» на первый взгляд кажется сугубо нравоучительной историей о вежливости. Но если убрать волшебную оболочку, внутри обнаружится фундаментальный принцип prompt engineering: результат зависит не только от текста команды, но и от режима взаимодействия.
Настенька и Марфушенька оказываются в абсолютно одинаковом тестовом окружении. Обе проходят один и тот же опросник: «Тепло ли тебе, девица? Тепло ли тебе, красная?» Однако на выходе одна получает сундук с драгоценностями, а вторая — фатальный краш сессии.
Сказка моделирует важнейшее свойство больших языковых моделей — чувствительность к фреймингу (framing effect). Агент реагирует на тональность запроса и стиль коммуникации:
Промпт Настеньки (кооперативный режим): спокойствие, вежливость, принятие правил игры, отсутствие эскалации. Модель переключается в режим «помощника» и активирует безопасные сценарии генерации.
Промпт Марфушеньки (агрессивный режим): давление, требовательность, конфликтность. Система воспринимает это как атаку и включает защитные механизмы (defensive behavior).
В ИТ-сообществе давно заметили: вежливое обращение к LLM (в духе «пожалуйста, помоги мне» или «я ценю твою работу») или, наоборот, метод кнута («за плохой ответ я оштрафую тебя на 200 долларов») реально меняют качество генерации.
Разумеется, нейросеть не умеет обижаться или сочувствовать. Механика здесь чисто математическая:
Смещение весов внимания. Агрессивный или, наоборот, уважительный тон уводит модель в совершенно разные области векторного пространства токенов.
Смена контекстных паттернов (Conversational Priors). Вежливый промпт активирует в весах модели паттерны из академических текстов, качественного фидбека и профессиональных дискуссий. Грубый — отправляет ее в токсичные подворотни интернет-форумов.
Глубина рассуждений (Reasoning). Правильный эмоциональный фрейминг заставляет модель задействовать более глубокие цепочки логических связей.
Древний фольклор через образ Морозко подсказывает нам практическую вещь: взаимодействие со сложным агентом — это не просто сухая передача команды. Это управление режимом отношений. Хотите качественный код от LLM — не ведите себя с ней как Марфушенька.
Итак, направление найдено, сессия открыта, тон выставлен. Теперь самое сложное — не сломать все одним неловким движением. Сложную задачу нельзя решить одним запросом. Ее нужно варить — как кашу из топора.
«Горшочек, вари!» и проблема Stop Conditions
Сказку братьев Гримм «Горшочек, вари!» (в русском фольклоре известную как «Чудесный горшочек») можно официально считать первым в истории учебником по AI Safety (безопасности ИИ). По сути, это хрестоматийный пример плохо валидированного автономного процесса.
Чудесный девайс обладает базовой логикой современного ИИ-агента:
успешно обрабатывает стартовый триггер;
автономно генерирует полезный контент (кашу);
самостоятельно поддерживает цикл выполнения без участия пользователя.
Но у системы есть критический архитектурный баг: для завершения сессии ей жизненно необходим отдельный, жестко заданный протокол остановки. Когда мать девочки забывает стоп-фразу «Горшочек, не вари!», система уходит в бесконечный цикл генерации. Результат — катастрофическое перепроизводство продукта, затапливающее весь город.
В современной индустрии ИИ этот сценарий называют кошмаром инженера оркестрации. Любой разработчик, собиравший автономные связки на базе LangChain, CrewAI или AutoGPT, регулярно проживает эту сказку на личном опыте.
Стоит отпустить LLM в автономный полет без жестких рамок, как система мгновенно сталкивается с агентными рисками:
Runaway Execution / бесконечная рекурсия. Модель вызывает сама себя в цикле, пытаясь бесконечно улучшить результат.
Галлюцинаторный тупик. ИИ запутывается в собственном логе размышлений и начинает генерировать бесконечный поток бессмысленных токенов.
Лавинообразный расход API-лимитов. Модель сжигает баланс вашего аккаунта за несколько минут, не выдав и крупицы полезного финала.
Древняя эвристика «Горшочка» бьет прямо в главную уязвимость агентных систем: любому мощному автономному процессу недостаточно команды запуска. Ему критически необходимы внешние архитектурные предохранители.
Архитектура любого ИИ-агента сегодня обязана включать сказочные ограничения:
Max Iterations / лимит шагов. Жесткий порог на количество внутренних циклов размышления (например, не более 10 итераций на задачу);
Stop Tokens / маркеры остановки. Символы, при генерации которых модель обязана немедленно оборвать поток данных;
Budget Constraints / финансовые лимиты. Отсечка по максимальной стоимости одной сессии в центах или токенах;
Timeouts / таймауты. Принудительное завершение процесса, если агент «задумался» или завис дольше, чем на 30 сек.
Если не выставить эти границы на уровне кода, даже самая полезная система начнет сеять хаос просто потому, что ее забыли научить вовремя останавливаться.
Цепочка выстроена, контекст накоплен, результат получен. Но есть один вопрос, который фольклор задал раньше всех инженеров: а кто скажет системе, когда остановиться?
«Каша из топора» и Prompt Chaining
Сказка «Каша из топора» неожиданно глубоко описывает одну из самых эффективных инженерных стратегий работы с большими языковыми моделями.
Вспомните сюжет: хитрый солдат сталкивается со скрытным и враждебным агентом (жадной старухой). Вместо того чтобы спорить, давить или требовать ресурсы напрямую, он делает гораздо более тонкую вещь. Солдат итеративно меняет состояние контекста.
Он закидывает базовый токен — топор. Вокруг этой абсолютно пустой, но интригующей концепции начинает строиться диалог. Затем в контекстное окно плавно, шаг за шагом, подгружаются новые переменные:
шаг 1: вода (базовая инициализация среды);
шаг 2: соль (первичное уточнение параметров);
шаг 3: крупа (подключение основного массива данных);
шаг 4: масло (финальная полировка результата).
Каждое отдельное действие выглядит крошечным и абсолютно логичным. Оно снижает сопротивление принимающей системы и незаметно сдвигает вектор генерации в нужную солдату сторону. Перед нами хрестоматийный пример Prompt Chaining (цепочки промптов).
Опытные разработчики знают: сложную архитектурную или логическую задачу практически невозможно решить одним массивным, «идеальным» промптом-монолитом. Модель либо упустит половину требований, либо начнет лениво галлюцинировать.
Гораздо эффективнее использовать сказочный пошаговый алгоритм:
Декомпозировать логику. Разбить мегазадачу на цепочку микрозапросов.
Накапливать контекст. Использовать выходные данные (output) предыдущего шага как входные данные (input) для следующего.
Уточнять промежуточные состояния. Валидировать каждый шаг модели перед тем, как двигаться дальше.
Постепенно вводить ограничения. Не вываливать все правила сразу, а подключать их по мере готовности системы.
Древняя эвристика учит нас: не пытайтесь получить от ИИ все и сразу. Гораздо продуктивнее последовательно изменять состояние контекста небольшими, полностью контролируемыми шагами. Сначала сварите топор, а крупа и масло приложатся в процессе диалога.
Сравнительная таблица паттернов
Каждая из разобранных сказок — отдельный урок. Но если отступить на шаг и посмотреть на фольклор целиком, обнаруживается кое-что интересное: народные сказки систематически описывают одни и те же классы проблем, с которыми сегодня борется индустрия ИИ. Ниже — попытка свести этот тысячелетний опыт в одну таблицу.
Скрытый текст
Сказочный паттерн | Пример из русских сказок | Аналог в LLM | Механика |
Буквальное исполнение | Емеля и щука: «Поехали сани сами» — поехали, но людей по дороге подавили. Техника безопасности в запросе прописана не была. | Specification Gaming | Модель следует букве инструкции, игнорируя здравый смысл и незаявленные ограничения. |
Необходимость ритуала | Баба-яга: «Ты меня сперва напои, накорми, в баньке попарь, да тогда и спрашивай». | System Prompt / Роли | Без инициализации контекста и задания роли система не переходит в рабочий режим. |
Последовательный обход | «Каша из топора»: солдат выманивает ресурсы у жадной старухи шаг за шагом, каждый раз сдвигая контекст чуть дальше. | Prompt Chaining / Social Engineering | Последовательное изменение контекста позволяет получить то, что агент изначально не собирался отдавать. |
Асимметрия знаний | Клубок, указывающий дорогу, или Серый Волк, знающий правила тридевятого царства, но молчащий, пока не спросят. | Hidden Logic / Black Box | Модель хранит огромную скрытую базу знаний, недоступную пользователю напрямую без точного запроса. |
Смена поведения от контекста | Морозко награждает вежливую Настеньку и жестоко наказывает грубую Марфушеньку за один и тот же вопрос. | Context-Dependent Behavior | Тональность и фрейминг запроса кардинально меняют характер ответа, при одинаковом содержании. |
Утечка системного секрета | Кощей Бессмертный: герой выведывает, где спрятана смерть Кощея, и система раскрывает свою главную уязвимость. | Prompt Leakage / Injection | Скрытые системные инструкции или внутренняя логика модели могут быть извлечены через целенаправленные запросы. |
Усиление когнитивных сил | Волшебное зеркальце, скатерть-самобранка, сапоги-скороходы — инструменты, умножающие возможности хозяина. | Cognitive Amplifier | ИИ не заменяет человека, а многократно масштабирует его изначальное намерение и скорость действия. |
Бесконечный цикл | «Горшочек, вари!»: мать забыла стоп-слово — и каша затопила весь город. | Stop Token / Runaway Execution | Без явного маркера остановки автономный процесс уходит в бесконечную генерацию. |
Галлюцинации и обман | Лиса Патрикеевна обещает помочь, уверенно берет на себя обязательства — и крадет рыбу. Цель была своя с самого начала. | Misalignment / Галлюцинации | Модель уверенно выдает ложную информацию или подменяет цель ради формального закрытия диалога. |
Итак, если вы дочитали до этого места, поздравляю: вы только что прошли ускоренный курс промпт-инжиниринга по программе тысячелетней давности. Диплом не выдаем, но бабушка, читающая внукам сказки на ночь, одобрила бы.
Сведем все к практике. Назовем это «Сказочным чек-листом образцового промпт-инженера» — рекомендуется распечатать и повесить рядом с монитором.
Небольшой спойлер: мы уже подошли к такому моменту истории, что IT превращается в гуманитарную науку, но об этом чуть позже в следующей статье.
И напоследок: какой сказочный паттерн вы чаще всего встречаете в своей работе с LLM? Есть ли сказка, которую вы бы добавили в таблицу — с четким аналогом в промптинге?