Исследователи разобрали 57 500 промптов, которые реально работают внутри программ — не чаты с ChatGPT, а инструкции, зашитые в код продуктов (боты, автоматизация, сервисы). Они построили детальную классификацию каждого кусочка промпта: роль, формат, ограничения, контекст — и посчитали, из чего на самом деле состоят промпты, которые проверены боем в продакшене.
Главный вывод бьёт по интуиции новичка: если ты пишешь только задачу — "переведи текст", "оцени резюме" — ты используешь промпт на 18% от его потенциала. В реальных рабочих промптах сама задача занимает только 18,2% текста. Остальные 82% — это "обёртка": кто говорит (роль), что нельзя делать, в каком формате отдать ответ, какой контекст учесть. Только 4% промптов обходятся без этой обёртки — и это, как правило, короткие одноразовые вопросы типа "объясни, как написать окно в Python".
Из этого вытекает конкретный, проверенный на масштабе паттерн: System-сообщение задаёт роль и постоянные правила, User-сообщение — саму задачу и данные. Такую пару используют 64% всех промптов. И треть промптов явно прописывают "чего не делать" — это работает как страховка от типичных болячек модели: многословности, лишнего текста, ухода от формата.
Схема находки (анатомия рабочего промпта)
SYSTEM-сообщение (статичная настройка):
→ Роль ("Ты — юрист, специализирующийся на...")
→ Постоянные правила и ограничения
USER-сообщение (динамический ввод):
→ Описание контекста (что дано)
→ Сама задача/вопрос
→ Данные (плейсхолдеры: {текст}, {файл})
→ Требования к формату ответа
→ Явные запреты ("не добавляй...", "не переводи...")
Из всех кусочков инструкций в промптах чаще всего встречаются: заполнитель контекста (16%), ограничение (11%), требование к содержанию ответа (9,7%), требование к формату (9,7%), указание роли (8,1%).
Пример применения
Задача: Ты ведёшь Telegram-канал и каждый день просишь ChatGPT написать пост по новости. Промпт "напиши пост про эту новость: {новость}" даёт нестабильный результат — то слишком длинно, то не в стиле канала, то с лишним "Конечно! Вот пост:".
Промпт (по анатомии из исследования):
Ты — редактор Telegram-канала о технологиях с ироничным, но экспертным тоном.
Твоя аудитория — предприниматели и айтишники, которые ценят конкретику без воды.
Контекст: вот новость, на основе которой нужно написать пост.
{новость}
Задача: напиши пост объёмом 80–120 слов.
Формат ответа:
— только текст поста, без заголовков и пояснений
— не более одного эмодзи
— заканчивай коротким выводом или риторическим вопросом
Запреты:
— не пиши "Конечно!", "Вот пост:" и подобные вступления
— не используй канцелярит и штампы типа "в современном мире"
— не повторяй новость дословно — переформулируй своими словами
Результат: Модель выдаст готовый пост нужной длины, в заданном тоне, без лишних вступлений и штампов — потому что явные запреты и формат отсекают типичные "тики" модели, а роль задаёт стиль на весь диалог.
Почему это работает
Модель по умолчанию не знает границ: сколько писать, что можно, а что нельзя, как обращаться к пользователю. Без явных рамок она подставляет усреднённый стиль из обучающих данных — вежливые вступления, общие фразы, случайную длину.
Зато модель отлично следует явным правилам, если их прописать текстом — она не "додумывает" ограничение, а копирует паттерн, который увидела в инструкции. Именно поэтому в реальных рабочих системах 82% промпта — это не задача, а именно правила: роль, формат, запреты.
Рычаги управления: - Роль в System — чем конкретнее ("ты — редактор техно-канала", а не "ты — помощник"), тем острее стиль ответа. - Явные запреты работают лучше, чем "постарайся не..." — модель точнее соблюдает жёсткие "не делай X", чем мягкие пожелания. - Разделение System/User — если задача повторяется многократно (шаблон отчёта, регулярный пост), зафиксируй правила в System-части, а меняющиеся данные — в User.
Шаблон промпта
Ты — {роль, максимально конкретная}.
Твоя аудитория — {кто читает результат}.
Контекст:
{данные, которые нужно обработать}
Задача: {что конкретно нужно сделать}
Формат ответа:
— {требование к длине/структуре}
— {требование к тону/стилю}
— {что должно быть в начале/конце}
Запреты:
— не {типичная ошибка модели №1}
— не {типичная ошибка модели №2}
— не {типичная ошибка модели №3}
Что подставлять: {роль} — конкретная профессия или персонаж, не абстрактный "помощник". {данные} — сам текст, новость, резюме, что угодно. {требование к формату} — длина в словах/предложениях, наличие списка, эмодзи. {запреты} — то, что модель обычно делает не так именно в твоих задачах (вступления, канцелярит, лишние пояснения).
🚀 Быстрый старт — вставь в чат:
Вот шаблон промпта из исследования реальных рабочих промптов (роль + задача + формат + запреты).
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, кто твоя аудитория, какой тон нужен и какие ошибки модель обычно допускает в этой задаче — потому что именно эти три поля определяют 80% качества промпта, согласно анализу.
Ограничения
⚠️ Это статистика, не гарантия: исследование показывает, ЧТО делают люди в рабочих промптах, но не проверяло напрямую, что больше ограничений = лучше результат. Корреляция с качеством не измерялась.
⚠️ Смещение выборки: данные взяты только с открытого GitHub. Корпоративные и закрытые проекты, где могут быть другие практики, в выборку не попали.
⚠️ Не для творческих задач: структура "роль + запреты + формат" отлично работает для повторяемых задач (отчёты, посты, обработка данных). Для разовых творческих запросов жёсткая обёртка может задушить оригинальность.
Как исследовали
Команда нашла в открытых репозиториях GitHub все места кода, где вызывается API отправки промпта в LLM (через chat.completion.create или LangChain), и вытащила оттуда реальный текст инструкций — 57 640 уникальных промптов. Дальше каждый промпт разобрали на части с помощью самой LLM: определили роль сообщений, тип каждой инструкции (задача, констрейнт, формат, роль), язык, домен применения.
Чтобы убедиться, что LLM-разметка не врёт, эксперт вручную проверил 100 случайных примеров и сравнил с разметкой. Точность оказалась высокой почти везде (90%+ для языка, домена, техник промптинга), но заметно хуже (60–70%) там, где нужно было "догадаться" — например, определить тип вывода, если он не назван явно, а виден только из примеров в тексте.
Любопытная деталь: даже среди этих отточенных, боевых промптов только 4% состояли из чистой задачи без обёртки. Это подтверждает главный вывод — люди, которые пишут промпты для продакшена (не для разового чата), интуитивно нагружают их правилами, форматом и ограничениями, потому что без этого модель ведёт себя непредсказуемо.
