Хороший промт для нейросети — это конкретная задача плюс контекст, ограничения, формат ответа и способ проверить результат. Пишите так, будто объясняете задачу новому коллеге, который ничего не знает о вашем проекте: что сделать, зачем, с какими данными, чего не трогать и как должен выглядеть ответ. Большую задачу разбивайте на шаги и, если можно, покажите пример нужного результата.
Здесь разбираем общие принципы: они работают в ChatGPT, Claude, DeepSeek, GigaChat, а также в кодинг-агентах. Уклон — в задачи с кодом. Как писать промты именно в Cursor (режимы, @-контекст, правила), — в отдельной статье как написать промт для Cursor. Готовые тексты под частые задачи — в разделе промты для программирования.
Из чего состоит хороший промт#
| Часть | Что написать | Пример для кода |
|---|---|---|
| Задача | Что сделать, одним глаголом | «Напиши функцию», «найди причину ошибки» |
| Контекст | Для чего, что уже есть | Язык, версия, фрагмент кода, текст ошибки |
| Ограничения | Чего не делать | «Без новых библиотек», «не меняй API» |
| Формат | Как должен выглядеть ответ | «Только код и три строки пояснения» |
| Проверка | Как понять, что ответ верный | «Вот три входа и ожидаемый результат» |
Не обязательно расписывать все пять частей для каждого вопроса. Но если ответ не устроил, почти всегда не хватает одной из них.
Как написать промт: 6 шагов#
1. Начните с задачи
Первая фраза — что нужно сделать. «Напиши», «объясни», «найди ошибку», «сравни». Если задач несколько, перечислите их нумерованным списком: в документации Anthropic отдельно советуют давать инструкции последовательными шагами, когда важны порядок и полнота.
2. Дайте контекст, которого у модели нет
Модель не знает ваш проект, стек и то, что вы уже пробовали. Для кода это:
- язык и версия, фреймворк;
- код, о котором идёт речь, или путь к файлу (в агенте);
- полный текст ошибки, а не пересказ;
- что уже пробовали и что получилось.
Проверка из документации Anthropic: покажите промт коллеге без контекста. Если он запутается, модель тоже.
3. Скажите, чего делать не надо
Ограничения экономят больше всего времени. «Не меняй сигнатуру функции», «без сторонних библиотек», «не трогай остальные файлы». Особенно это важно в агентах, которые сами правят код: без запрета они охотно «улучшают» соседнее.
4. Опишите формат ответа
«Сначала короткий вывод, потом код», «таблицей», «только diff», «не больше 10 строк пояснений». Если ответ пойдёт дальше в программу, попросите конкретный формат, например JSON с заданными полями.
5. Покажите пример
Один-два примера нужного результата работают лучше длинного описания. Anthropic называет примеры одним из самых надёжных способов получить ответ в нужной форме. Для кода пример — это вход и ожидаемый выход, образец стиля из вашего проекта или похожая функция, которую надо повторить.
6. Дайте способ проверить
Попросите модель проверить себя по критериям: «перед ответом прогони эти три примера», «убедись, что тесты проходят». Документация Claude Code называет возможность проверить работу самым важным, что можно дать агенту: тесты, ожидаемый вывод, скриншот.
Примеры: плохо → хорошо#
Написать код:
Плохо:
напиши функцию для проверки email
Хорошо:
Напиши функцию на TypeScript isValidEmail(value: string): boolean
для формы регистрации. Без сторонних библиотек.
Достаточно простой проверки: есть одна @, непустая часть до неё,
после — домен с точкой. Не нужно поддерживать все варианты из RFC.
Проверь на примерах:
- "anna@mail.ru" → true
- "anna@mail" → false
- "@mail.ru" → false
Ответ: код функции и список примеров, на которых проверял.
Исправить ошибку:
Плохо:
не работает, почини
Хорошо:
Python 3.12, FastAPI. При POST /orders сервер отвечает 500.
Ошибка из лога:
[полный traceback]
Код обработчика:
[код]
Найди причину и предложи минимальное исправление.
Не меняй модель данных и другие эндпоинты.
Сначала объясни причину в двух-трёх фразах, потом дай исправление.
Подробный промт для отладки с разбором — исправление ошибки.
Разобраться в чужом коде:
Плохо:
что делает этот код
Хорошо:
Я фронтендер, Python читаю плохо. Объясни, что делает этот скрипт:
[код]
Нужно: назначение в одной фразе, затем по шагам, что происходит,
и какие внешние ресурсы он трогает (файлы, сеть, база).
Без пересказа каждой строки.
Приёмы, которые помогают в сложных задачах#
- Сначала план, потом код. Попросите модель описать план и подождать вашего «ок». В Cursor и Claude Code для этого есть режим плана; в обычном чате достаточно фразы «код пока не пиши». Готовый текст — промт «сначала план».
- Пусть модель задаст вопросы. «Если чего-то не хватает, сначала спроси». Это дешевле, чем переделывать ответ, построенный на догадке.
- Разделяйте данные и инструкции. Длинный код, лог или документ оберните в теги, например
<code>...</code>или<log>...</log>. Anthropic рекомендует XML-теги, чтобы модель не путала инструкции с материалом. - Одна задача — один промт. «Добавь авторизацию, перепиши стили и сделай тесты» лучше разбить на три сообщения с проверкой после каждого.
- Повторяющееся — в правила. Если вы в каждом промте пишете «используй TypeScript, не добавляй зависимости», вынесите это в файл правил проекта: AGENTS.md или правила Cursor.
Шаблон промта для задач с кодом#
Задача: [что сделать].
Контекст: [язык/фреймворк, что за проект, какой файл или фрагмент].
[код, ошибка или данные — в тегах <code>...</code>]
Ограничения: [что не менять, без каких библиотек].
Формат ответа: [код / diff / план / объяснение, объём].
Проверка: [примеры вход → выход, тесты, ожидаемое поведение].
Если чего-то не хватает — сначала задай вопросы.
Если задача больше одного шага (новый сайт, бот, крупная функция), одного промта мало: сначала опишите её в ТЗ для нейросети, а промтом отдавайте этапы по одному.
Частые ошибки#
- Промт из трёх слов. Модель отвечает на самый частый вариант вопроса, а не на ваш.
- Пересказ ошибки вместо текста. «Там что-то с типами» — копируйте сообщение целиком.
- Всё в одном сообщении. Длинный список задач выполняется неровно: последние пункты теряются.
- Только роль без задачи. «Ты — лучший программист в мире» не заменяет описания стека и ограничений.
- Нет критерия результата. Не с чем сравнить ответ — непонятно, хороший он или нет.
- Продолжать в длинном чате. Через десятки сообщений ранние детали теряются. Новая задача — новый чат с коротким контекстом.