Outcome-First Prompting: почему короткие промпты работают лучше длинных инструкций

В апреле 2026 года OpenAI выпустила официальный гайд по промптингу для GPT-5.5, который перевернул устоявшиеся практики. Главный тезис: короткие промпты, описывающие желаемый результат, работают лучше тяжёлых стэков с пошаговыми инструкциями. Это не рекомендация — это вывод из внутренних тестов на новой архитектуре.
Разберём технику Outcome-First Prompting на конкретных примерах и цифрах.
Что изменилось в подходе к промптам
Традиционный подход к промпт-инжинирингу строился на детализации процесса: чем подробнее описать каждый шаг, тем выше шанс получить нужный результат. Разработчики добавляли императивы ALWAYS, NEVER, MUST, описывали алгоритмы действий и создавали промпты на сотни строк.
OpenAI в новом гайде прямо заявляет: «Shorter, outcome-first prompts usually work better than process-heavy prompt stacks». Это касается GPT-5.5, но эксперименты показывают, что принцип работает и на Claude Opus 4.7.
Outcome-First Prompting — это техника, при которой промпт описывает конечный результат и критерии успеха, а не пошаговый процесс достижения цели. Модель сама выбирает оптимальный путь решения задачи.
Практический пример: обработка логов ошибок
Рассмотрим реальный кейс из рабочего проекта — скилл для обработки логов ошибок. Исходная версия промпта занимала 663 строки и содержала 36 капс-блоков с императивами.
Старый подход (134 слова):
Промпт содержал четыре блока с буллетами, четырнадцать пунктов инструкций. Основные проблемы:
- Дублирование одной мысли четырьмя способами: «Fix root cause», «not symptoms», «not workarounds», «not just patches»
- Императивы на judgment calls: «Never ignore errors» противоречил таблице из 60 правил auto-mute
- Отсутствие stopping condition — модель не понимала, когда остановиться
- Judgment под видом invariant: «Quality over speed» звучит как абсолют, но иногда быстрый патч важнее идеального решения
Новый подход (50 слов):
Промпт переписан через outcome и явные критерии остановки. Одна мысль про root cause — один раз. Outcome описывает, что значит «чисто». Отдельная фраза про границы — «не расширяй скоуп».
Результат: при тестировании на реальной ошибке (getaddrinfo EAI_AGAIN во время деплоя) короткий промпт на обеих моделях (Opus 4.7 и GPT-5.5) корректно классифицировал проблему как infrastructure, не пытался чинить application-код и не предлагал рефакторинг. Длинный вариант на обеих моделях привёл к избыточному анализу кода вокруг DNS-вызовов.
Четыре принципа техники
Первый принцип: описывайте результат, а не процесс. Вместо «сначала проанализируй, потом напиши код, потом протестируй» пишите «код должен пройти все тесты и решать задачу в одно предложение». Модель сама выберет путь.
Второй принцип: императивы только для true invariants. Используйте ALWAYS/NEVER/MUST только там, где нарушение приведёт к катастрофе. Например: «NEVER DELETE FILES AUTOMATICALLY» для агента удаления кода — это инвариант безопасности. А «всегда сначала проанализируй» — это рекомендация, модель должна решить сама.
Третий принцип: явные stopping criteria. Модель должна понимать, в какой точке задача решена. Без этого она либо недокапывает, либо уходит в overthinking. Пример: «Stopping criteria: similar pattern checked, fix is committed, related issues documented as separate tasks».
Четвёртый принцип: минимум доказательств. OpenAI вводит новое понятие: «Use the minimum evidence sufficient to answer correctly, cite it precisely, then stop». Модель должна думать ровно столько, сколько нужно, и останавливаться, а не продолжать анализ поверх готового ответа.
Эксперимент: Google Stitch
Самый быстрый способ проверить принцип — Google Stitch, инструмент для генерации UI-экранов. Возьмём два промпта на одну задачу.
Промпт А — жёсткий и подробный (технический): Создай экран онбординга. Используй карточки 16:9 с тенью box-shadow: 0 4px 12px rgba(0,0,0,0.08). Заголовок 32px, подзаголовок 18px, отступы 24px, межблочные 16px. Цвета: primary #2563EB, secondary #F1F5F9, текст #0F172A.
Промпт Б — смысловой и короткий (outcome): Экран онбординга для AI-приложения. Должен ощущаться лёгким, дружелюбным, без бюрократии. Цель — чтобы новичок захотел дойти до конца за 30 секунд.
На дистанции десятков прогонов промпт Б выигрывает почти всегда. Когда вы зажимаете модель в техническую решётку — отступы, цвета, шрифты — она перестаёт делать дизайн. Она начинает заполнять решётку.
Различия между моделями
Принцип Outcome-First работает на разных моделях, но с нюансами. OpenAI рекомендует: outcome + constraints, минимум структуры, всё остальное модель решит сама. Anthropic в курсе по промпт-инжинирингу для Claude предлагает: outcome + структура (XML-теги, чёткое разделение), модель решит сама внутри структуры.
На GPT-5.5 промпт описывает «куда прийти и каких границ не пересекать». На Claude — «куда прийти, в какой структуре сложить ответ, и каких границ не пересекать». Больше структуры на Claude (XML, разделители), меньше на GPT-5.5.
Важное наблюдение: если попросить одну модель написать промпт для другой — результат избыточен. Opus 4.7 пишет для GPT-5.5 слишком структурированно, GPT-5.5 для Claude — слишком сжато. Кросс-модельная генерация промптов ломается.
Где императивы остаются
Три категории, где императивы оправданы:
- Safety-критичные операции. Удаление файлов, изменение продакшн-базы — «NEVER DELETE FILES AUTOMATICALLY» это true invariant, нарушение приведёт к потере данных
- Контракты и схемы. JSON-ответ для API с жёсткой схемой — поле id всегда строка, status всегда из перечня. Без императива модель будет творчески интерпретировать схему
- Детали, которые модель должна выполнить буквально. Имя файла миграции в формате YYYYMMDD_HHMMSS_description.sql — порядок применения определяется таймстампом, любое отклонение сломает накат
Различие: ALWAYS/NEVER для invariants (нарушение = катастрофа), не для preferences (нам так больше нравится).
Что делать прямо сейчас
Пересмотрите свои промпты через призму четырёх вопросов:
- Где я описываю процесс вместо результата?
- Где императив стоит на judgment call, а не на invariant?
- Есть ли явный stopping criteria?
- Дублирую ли я одну мысль несколькими формулировками?
Не нужно выкидывать всё подряд. Нужно отличать invariant от preference, outcome от процесса. Длинные промпты с императивами на каждом шагу — это след времён, когда модели плохо держали контекст. Те модели ушли. Те промпты — пора.