3,583 papers
arXiv:2608.12905 76 13 авг. 2026 г. FREE

Анатомия рабочего промпта: 82% текста — это не задача, а правила как её выполнять

КЛЮЧЕВАЯ СУТЬ
18% текста в рабочих промптах — это сама задача. Остальные 82% — правила игры: роль, формат, запреты. Анализ 57 500 промптов из реального кода показывает: такая структура даёт возможность собрать промпт, который стабильно работает в продакшене, а не скатывается в рулетку 'то так, то эдак'. Фишка — задача занимает всего пятую часть текста, вся сила в обёртке: System задаёт роль и правила, User — данные и задачу. 64% всех промптов используют именно такую связку.
Адаптировать под запрос

Исследователи разобрали 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% состояли из чистой задачи без обёртки. Это подтверждает главный вывод — люди, которые пишут промпты для продакшена (не для разового чата), интуитивно нагружают их правилами, форматом и ограничениями, потому что без этого модель ведёт себя непредсказуемо.


📋 Дайджест исследования

Ключевая суть

18% текста в рабочих промптах — это сама задача. Остальные 82% — правила игры: роль, формат, запреты. Анализ 57 500 промптов из реального кода показывает: такая структура даёт возможность собрать промпт, который стабильно работает в продакшене, а не скатывается в рулетку 'то так, то эдак'. Фишка — задача занимает всего пятую часть текста, вся сила в обёртке: System задаёт роль и правила, User — данные и задачу. 64% всех промптов используют именно такую связку.

Принцип работы

Правило простое: раздели статику и динамику. В System — роль и правила, которые не меняются от запроса к запросу. В User — то, что меняется: данные, контекст, сама задача. Треть промптов явно прописывает 'чего не делать' — и это работает лучше, чем 'постарайся не'. Модель не додумывает границы сама — она копирует паттерн из инструкции.

Почему работает

Модель по умолчанию не знает границ. Без явных рамок она берёт усреднённый стиль из обучающих данных — вежливые вступления, случайная длина, общие фразы. Дай запрет прямым текстом — модель скопирует паттерн, а не станет угадывать. Заполнитель контекста встречается в 16% промптов, ограничения — в 11%, требования к формату — в 9,7%. Это самые частые кусочки, потому что именно они держат модель в рамках.

Когда применять

Для повторяемых задач с фиксированным сценарием — регулярные посты, отчёты, обработка данных, боты — особенно когда нужна стабильность формата от запроса к запросу. НЕ подходит для разовых творческих запросов: жёсткая обёртка из роли, формата и запретов может задушить оригинальность.

Мини-рецепт

1. Задай роль в System: конкретная профессия, не 'помощник'. Пример — 'ты редактор техно-канала', а не общие слова.
2. Раздели статику и динамику: правила — в System, данные и задачу — в User через плейсхолдеры типа {текст}.
3. Пропиши запреты явно: не 'постарайся не', а конкретное 'не пиши вступления типа Конечно!'.
4. Задай формат ответа: длина, структура, что должно быть в начале и в конце.
5. Проверь баланс: если задача — это весь твой промпт, добавь роль, формат и запреты. Так собраны 96% рабочих промптов из живого кода.

Примеры

[ПЛОХО] : Напиши пост про эту новость: {новость}
[ХОРОШО] : Ты — редактор техно-канала с ироничным тоном. Задача: пост 80-120 слов по новости {новость}. Формат: без вступлений типа "Вот пост:", максимум 1 эмодзи. Запреты: не используй канцелярит, не повторяй новость дословно.
Источник: Prompts in the Wild: A Large Analyzed Collection of Transactional Prompts in Code
ArXiv ID: 2608.12905 | Сгенерировано: 2026-08-14 06:25

Концепты не выделены.

📖 Простыми словами

Promptsin the Wild: ALargeAnalyzed Collection of TransactionalPromptsin Code

arXiv: 2608.12905

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

Это как если бы ты зашел в кофейню и сказал баристе: «Сделай мне что-нибудь попить». Формально он может принести тебе хоть стакан кипятка, хоть двойной эспрессо с сиропом, и будет прав. Вроде заказ выполнен, но пить это невозможно. Без конкретных параметров — объема, температуры и состава — ты получаешь случайный результат, который в 9 из 10 случаев летит в мусорку.

Чтобы эта машина выдавала базу, а не мусор, нужно использовать транзакционные промты с жесткими рамками. Исследование показывает, что работают три вещи: ограничение длины (никаких «напиши побольше»), запрет на вежливость (убираем «Конечно! Вот ваш текст») и стилистический якорь. Если ты не прописал, что ChatGPT — это дерзкий админ канала, она по умолчанию будет вести себя как услужливый официант, который боится тебя обидеть и потому льет патоку вместо контента.

Хотя в исследовании копались в коде и автоматизации, этот принцип — фундаментальный закон общения с LLM. Он работает везде: от генерации юридических договоров до написания поздравлений бабушке. Если ты не выставил жесткие фильтры на входе, модель начнет галлюцинировать или просто тупить, пытаясь угадать, чего ты хочешь. SEO для мозгов AI — это не про ключевые слова, а про архитектуру ограничений.

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

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с