Вторник, час ночи. Сижу пишу промпт чтобы вытащить из 40 PDF-ок с актами нужные поля в JSON. Задача рутинная, у меня под неё лежит проверенный шаблон. Развёрнутый CoT, три few-shot примера, роль «опытный финансовый аналитик с 15 лет опыта». Раньше работал как часы.
Закидываю в GPT-5.5 с высоким мышлением. Получаю мусор. Половина полей не та, формат сломан, в выводе развёрнутое рассуждение которое я не просил.
Думаю ладно, заглючило. Прогоняю ещё раз. То же самое.
Удаляю промпт целиком. Пишу заново, тупо: «вытащи из приложенного текста поля X, Y, Z в виде JSON, никаких пояснений». Десять строк. Запускаю.
Работает.
Минут десять сижу пялюсь в монитор. Я только что выкинул в помойку три года накопленного арсенала. И минимальный промпт сделал лучше.
Так а что вообще произошло
Я полез копать. И вот что нашёл.
В 2025-2026 пошла волна reasoning-моделей. o-серия, Opus 4.7 в high-thinking, GPT-5.5 с высоким мышлением, Gemini 3 thinking. Принципиальное отличие от старых LLM такое: внутри ответа модель сама прокручивает chain-of-thought. Без подсказки. Без «подумай шаг за шагом». Без моих умных схем.
Раньше я был типа инструктором, учил модель как думать. Сейчас она думает без меня. И вот это «без меня» меня и порвало.
Половина старых техник стали бессмысленными или вредят. Особенно те где я лез прямо в процесс рассуждения.
Что начало сыпаться первым
Сильнее всего пострадал мой любимый длинный CoT-промпт. Типа «сначала проанализируй задачу, потом выпиши ключевые сущности, потом построй гипотезу, потом проверь её на edge cases, потом выдай ответ». На GPT-4 это давало плюс десять-пятнадцать процентов к точности на сложных задачах, я мерил.
На reasoning-модели тот же промпт даёт минус пять-семь процентов. Потому что модель и так делает примерно то же самое внутри. А мой промпт сверху это второй слой мышления, который конфликтует с первым.
Дальше посыпалась эмоциональная role-play. «Ты гениальный программист с двадцатью годами опыта, ты любишь elegant решения». Раньше работало, я сам не понимал почему но факт. Сейчас модель из такого вступления вытягивает не качество, а тон. Начинает писать как герой LeetCode-форума, пафосно, с восклицаниями. Налажал, переписал.
Чуть менее очевидно но тоже сдохло: тяжёлый few-shot для логики. Шесть-семь примеров одной и той же задачи чтобы научить модель решать класс. Раньше — стандартная техника. Сейчас модель и так знает класс, а лишние примеры её сбивают на копирование, теряется обобщение.
Ну и весь жанр «многословное вступление о важности задачи». Раньше я думал что это мотивирует модель. Сейчас понимаю что просто жгу токены.
А что наоборот выросло
Тут начинается интересное. Самые скучные техники, на которые я раньше тратил минут пять промпта, теперь оказались чуть ли не главными.
Первое и главное — контракт результата. Что хочешь на выходе, конкретно. Не «дай хороший отчёт», а «таблица из пяти строк, столбцы такие-то, пояснений до и после не надо». Reasoning-модель отлично решит как добраться до ответа. Она не должна угадывать что я считаю ответом.
Я сейчас ловлю себя на том что половина моего нового промпта это про выход. Что в каком формате, какой длины, чего точно не должно быть. Раньше я тратил на это две строчки, сейчас полпромпта.
Второе — системные промпты вместо user-prompts. CLAUDE.md, system message в API, инструкции субагенту. Стабильные правила работы — туда. В user остаётся только конкретная задача. Это разделение раньше казалось чисто эстетическим. Сейчас структурное. Системный слой почти полностью определяет поведение, user — только запрос дня.
Если у вас в каждом user-промпте написано «ты helpful assistant, отвечай по-русски, не давай советов по медицине» — это место не для user. Это в system.
Третье, и оно меня лично спасает — констрейнты. Что нельзя. «Не используй сторонние библиотеки», «не меняй файлы вне /src», «не предлагай решения с downtime больше пяти минут». Старые модели иногда забивали на «не делай Y» и делали Y. Reasoning-модели уважают негативные констрейнты на удивление честно.
Только не больше 3-4 ограничений за раз. Если завалить — становится фоновым шумом.
Четвёртое — few-shot всё ещё нужен, но не для того. Один пример формата. Два если формат сложный. Дальше не надо. Reasoning-модель учится логике из одного примера, а лишние тянут её в копирование вместо обобщения. Раньше я давал шесть примеров чтобы научить классу задач. Сейчас даю один пример чтобы показать формат ответа.
Не «как решать», а «как оформить решение». Звучит мелко, на качество влияет сильно.
Пятое — persona работает но не та. «Ты security-аудитор который ищет уязвимости в этом коде» — работает. «Ты гениальный программист с двадцатью годами опыта» — не работает. Разница простая, функция против комплимента. Первое — это ограничение точки зрения, полезно. Второе — мотивационное вступление, мусор.
Шестое, тут чисто техническое — structured output. JSON Schema, XML с тегами, markdown с фиксированной разметкой. Если вывод парсится — must have. Раньше можно было написать «выведи как JSON» и модель часто промахивалась, добавляла комментарии до и после блока, ломала кавычки. Сейчас structured-output через API-параметр или явный prompt-контракт с XML работает стабильно.
Если ваш парсер падает на ответах от модели — почти всегда лечится переходом на structured-output, а не очередным переписыванием user-промпта.
Под задачу — свой набор
Хочется одной таблицы. Так быстрее перечитать через полгода когда я снова всё забуду.
Класс задачи |
Что в промпте главное |
Что выкинуть |
|---|---|---|
Код |
Минимум промпта, максимум контекста файлов через тулзы агента |
Длинные размышления в самом промпте |
Анализ данных |
Schema на вход и выход, констрейнты на форматы и единицы |
«Сделай красивую статистику» без метрик |
Планирование |
Decomposition вопросом «разбей на 5-7 шагов с estimate», констрейнты на ресурсы |
Философию про важность задачи |
Критика и ревью |
Forced disagreement, confidence score 1-10 |
Просьбу «дай обратную связь», модель ответит вежливо и бесполезно |
Коммуникация |
Persona как функция (юрист, клиент, инженер), tone constraints |
Эмоциональные модификаторы типа «жёстко» |
Сейчас самая частая ошибка которую я ловлю у себя и у клиентов — пытаться написать один промпт на всё. «Универсальный системный, ты helpful assistant и умеешь всё». Не работает. Один класс задач — один шаблон. У меня в репозиториях лежит не один CLAUDE.md а несколько: общий, для подсистемы, отдельный для тестов. Так и пишутся.
Когда промпт-инжиниринг вообще не нужен
Иногда не нужен.
Распарсить JSON, написать unit-тест на чистую функцию, перевести с русского на английский — reasoning-модель решит с минимальным промптом. Любое усложнение тут оверхед. Тратит токены, тормозит, и ещё иногда ухудшает результат.
Правило: начинаешь с минимума. Усложняешь только если минимум не справился. Не наоборот.
И отдельно. Иногда плохой ответ — это не проблема промпта. Это проблема того что я сам толком не знаю чего хочу. Никакой промпт это не починит. Сначала формулировка, потом инструмент.
К чему всё идёт
Я думаю в следующем году появятся модели которые сами пишут себе промпты под задачу. Уже сейчас есть meta-prompting штуки, где одна модель оптимизирует промпт для другой. Когда станет нормой — привычная роль «промпт-инженера» сожмётся до уровня «постановщика задачи».
И тогда главным навыком будет не «как написать промпт», а «как правильно сформулировать вопрос». То есть то что всегда было главным, просто без шумного слоя.
Если у вас сейчас лежит пара любимых промптов со множеством примеров и развёрнутым CoT — попробуйте их укоротить. Не на десять процентов. Процентов на семьдесят-восемьдесят. Сравните. У меня после такого упражнения часть промптов сжалась с 2000 токенов до 150. Качество либо то же, либо лучше.
В общем я и сам ещё переучиваюсь. Через полгода может половина моих новых техник тоже сдохнет, и я снова буду сидеть ночью на кухне с этим же выражением лица.
Кстати, было бы интересно услышать чьи привычки в работе с моделями последние месяцы тоже посыпались. У меня ощущение что не я один.
Комментарии (14)

411
23.05.2026 14:22Та самая причина по которой я считал курсы по промт-инжинирингу пустой тратой времени (и денег, если платные)

Dhwtj
23.05.2026 14:22Изначально было понятно что это оптимизации-костыли под одну модель, максимум под поколение. То есть на квартал - полгода. Потом они входят в саму модель.
Лучше вспоминать и прокачивать инженерное мышление.
Вас этому когда-то учили. Да да!

Dreams_and_magic
23.05.2026 14:22"Ты гениальный программист с двадцатью годами опыта, ты любишь elegant решения"
Это и не должно было работать, так как не даёт никакой полезной информации нейросетке :) Это был баг, а не фича. Антропики любят добавлять слои "очеловечивания", поэтому это худо-бедно помогало, а как убрали лишнее - так всё и поломалось.
"Если у вас сейчас лежит пара любимых промптов со множеством примеров и развёрнутым CoT — попробуйте их укоротить. Не на десять процентов. Процентов на семьдесят-восемьдесят. Сравните. У меня после такого упражнения часть промптов сжалась с 2000 токенов до 150. Качество либо то же, либо лучше. "
Попробуйте дать задание вашей нейросети их укоротить для самой себя, объяснив, что именно требуется, дайте задание сделать их с десяток вариантов и прогнать их на нескольких типичных запросах, результаты вписать в файл и потом их оценить . Это будет объективно лучше и гораздо быстрее:)

Pshir
23.05.2026 14:22Так всё логично. Сейчас LLM - это рабочий инструмент, и их сразу обучают на то, что быть рабочими инструментами. Поэтому и обращаться надо с ними как с рабочими инструментами, а не как с менеджерами-шизофрениками, у которых главный KPI - это длина и пафосность отчёта, а не результат. Ну и самому мыслить надо соответственно: напрямую, а не через подвыверты.

Ra2007
23.05.2026 14:22Точно та же история с CLAUDE.md. Полтора года назад писал в него подробные инструкции с объяснением логики, сейчас оставил только ограничения и правила вывода. Verbose CoT в промпте это действительно был workaround для моделей без внутреннего рассуждения, сейчас он мешает. Единственное что у меня по-прежнему работает из старого арсенала это явные примеры формата вывода, Claude уважает независимо от уровня thinking. А вот role-play действительно умер, согласен.

dkeiz
23.05.2026 14:22в следующем году появятся модели которые сами пишут себе промпты под задачу...одна модель оптимизирует промпт для другой
Да, тренируют под вызов субагентов, наверно уже с прошлой осени в это все играют, сейчас пошло супермассово, хоть и не суперэффективно.
А лучшее что работает сейчас - короткий промпт и длинный план. План можно отредактировать, либо, если модель упирается, начать новый контекст с фразы - "от прошлой сессии у меня остался вот такой вот plan.md, надо его доделать и поработать".

Zoolander
23.05.2026 14:22Если в статье появился Claude.md, значит вы пишете на агенте, а не рассказываете про чат.
Модели - да, меняются.
Но еще сильнее изменился наш промпт, который по пути к нейронке обрастает системными промптами и вызовами инструментов, там настоящий суп из семи колбас.
Мне недавно агент начал править CSS без спроса, когда я начал допрашивать почему, он сказал, что таковы были правила работы с CSS в системном промпте. Конкретно, речь шла про letter spacing, в файле он был отрицательным, агент Codex сам прошел и везде проставил 0 (это меня вообще убило мог бы удалить, но нет, нынешние нейронки не умеют писать минималистично)
Протестируйте ваш метод на последних моделях без агентов. Хотя они заверяют, что они больше стремятся к результату, не стоит сбрасывать со счетов адскую кашу системных промптов и инструментов в агентах.

Garik88
23.05.2026 14:22Что клод, что всякие кодексы с опенкодами, заточены на программирование и впихнуть в них бизнес логику, это прям проблема. Все эти агенты и субагенты имеют свои промпты, как вы верно заметили. И в некоторых случаях вывернуть из всех этих кодов все эти лишние промпты огромная проблема. Проще накидать на томже langgraph обычный простенький реакт агент с пачкой нужных инструментов получается намного проще и эффективнее, чем резать эти ваши коды и мучаясь с промптами из mcp. Так что категорически поддерживаю!

adante
23.05.2026 14:22Вот недавно со знакомым посмеялись обсуждая промпты, что когда-то работали лесть и угрозы.
Потом role playing.
Единственное, что у меня работает из старого до сих пор это «если у тебя недостаточно информации для выполнения задачи или на основании имеющейся информации задачу можно решить несколькими способами, задавай уточняющие вопросы прежде чем продолжать»

StudyQA
23.05.2026 14:22Подтверждаю из практики. Оркестрирую Claude Code через CLAUDE.md + system prompt, и самый большой прирост качества дал именно "контракт результата", не промпт-инженерия.
Конкретный пример: промпт на генерацию постов для Telegram-канала. Было 1800 токенов с role-play, few-shot на 7 примеров и цепочкой CoT. Результат: модель копировала стиль примеров вместо обобщения.
Переписал в 200 токенов: жесткие ограничения (длина 800-1200 символов, максимум 1 эмодзи, конкретная структура), один пример формата, функциональная роль ("контент-редактор канала"). Качество выросло, а главное, стало стабильным.
Добавлю к выводам автора: с reasoning-моделями критично не только что писать в промпте, но и что убрать. Каждый лишний constraint модель честно пытается соблюсти, даже если он противоречит другим.

StudyQA
23.05.2026 14:22Подтверждаю из практики. Оркестрирую Claude Code через CLAUDE.md + system prompt, и самый большой прирост качества дал именно “контракт результата”, не промпт-инженерия.
Конкретный пример: промпт на генерацию постов для Telegram-канала. Было 1800 токенов с role-play, few-shot на 7 примеров и цепочкой CoT. Результат: модель копировала стиль примеров вместо обобщения.
Переписал в 200 токенов: жесткие ограничения (длина 800-1200 символов, максимум 1 эмодзи, конкретная структура), один пример формата, функциональная роль (“контент-редактор канала”). Качество выросло, а главное, стало стабильным.
Добавлю к выводам автора: с reasoning-моделями критично не только что писать в промпте, но и что убрать. Каждый лишний constraint модель честно пытается соблюсти, даже если он противоречит другим.

unitcraft
23.05.2026 14:22Совпадает, но добавлю — изменилось не содержание промптов, а распределение труда. Раньше: 70% на тонкий промпт, 30% на проверку ответа. С рассуждающими моделями наоборот: 30% — короткий промпт с контекстом, 70% — критерии приёмки и проверка после.
Побочный эффект: стало можно запускать модель автономно по плану на часы, без присмотра — она сама держит цикл «проверь, сдай». Старый промпт-инжиниринг такого не давал.
Chuika
Ох, понимаю