Промпт-инжиниринг
Промпт-инжиниринг для кода: паттерны и библиотека промптов
Промпт-инжиниринг — это искусство и техника постановки задачи для нейросети. В разработке он стал ключевым навыком: чем точнее задание, тем лучше результат. Разберём паттерны, которые работают, и соберём библиотеку промптов под типовые задачи.
1. Что такое промпт-инжиниринг и зачем он в коде
Промпт-инжиниринг — настройка текстового обращения к модели так, чтобы получить предсказуемый и качественный результат. По сути это ТЗ, написанное для нейросети.
В коде промпт определяет, сможет ли агент решить задачу за одну итерацию или будет ходить кругами. Разница между «сделай мне форму» и «сделай форму с валидацией почты, сообщениями об ошибках на русском и маской телефона» — это разница между результатом, который надо переписывать, и тем, который принимаешь сразу.
Промпт-инжиниринг не отменяет контроль: он задаёт рамку. Базовый подход к агентной разработке — в что такое агентная разработка.
2. Паттерны промпт-инжиниринга
Несколько рабочих паттернов, которые подходят и для Cursor, и для других ИИ-агентов:
Патерн «Роль + задача + формат».
Ты — senior-разработчик на Python. Сделай функцию проверки email. Верни код и два теста.
Паттерн задаёт роль, цель и формат вывода. Агент уже не гадает, что от него ждут.
Паттерн «Шаги и границы».
Разбей задачу на шаги: 1) описание 2) код 3) тесты. Не трогай существующие файлы, кроме module.py.
Паттерн удерживает агента в границах — защита от «полезных» правок, которые ломают проект.
Паттерн «Критерии приёмки».
Готово, когда: функция проходит тест, покрыта обработка пустой строки, нет лишнего вывода.
Так у команды есть понятная точка, после которой задачу можно принимать.
Паттерн «Контекст и ссылки».
Возьми за основу кэш из cache.py, замени реализацию на версию underflow-safe. Смотри README.
Паттерн даёт агенту точку опоры и снижает риск галлюцинаций.
Паттерн «Ограничь себя» / само-критика.
Перед сдачей проверь себя: найди три слабых места в решении и предложи правки.
Заставляет агента «придираться» к собственному результату.
3. Как писать промпты для Cursor
Cursor работает как IDE с ИИ-агентом. Приёмы, которые дают больше пользы:
- Говорите о цели, а не о синтаксисе. Опишите поведение, а не «напиши цикл for». Формулировку подберёт агент.
- Давайте контекст. Указывайте, какие файлы смотреть — так агент не полезет «куда не надо».
- Уточняйте формат. Просите код, тесты, пояснения или JSON — в зависимости от задачи.
- Задавайте «готово». Критерий приёмки сокращает число итераций.
- Возвращайтесь с замечаниями. Агент запоминает правки и меняет подход, а не пишет заново.
Эти приёмы особенно важны, когда агент уходит в многошаговый цикл. Как выстроить такой цикл — в многоагентной разработке: субагенты и оркестрация.
4. Библиотека промптов
Готовые шаблоны под типовые задачи. Скопируйте и подгоните под свой проект.
Промпт на создание модуля.
Ты — инженер по Python. Создай модуль <module> с функциями:
<список>. Требования: типовая аннотация, docstring по PEP 257,
ни одной внешней зависимости, кроме стандартной библиотеки.
Тесты — отдельным файлом в pytest. Верни код и порядок запуска тестов.
Промпт на рефакторинг.
Смотри <file>. Найди 3 места с повторяющимся кодом и вынеси в отдельные
функции в том же файле. Не меняй публичную сигнатуру API. После правки
покажи, что изменилось, и добавь тест на новую функцию.
Промпт на написание тестов.
Для функции <function> напиши тесты на pytest. Покрой: основной путь,
пограничные значения, пустой ввод, ошибку. Каждый тест — с понятным
именем и кратким комментарием, зачем он нужен.
Промпт на нахождение бага.
В проекте <открой> ошибка <опиши> в <условиях>. Предполжи 3 причины
с вероятностью. Проверь каждую гипотезу по коду и покажи, как
воспроизвести. Не исправляй, пока не подтвердишь причину.
Промпт на документацию.
Смотри <file>. Опиши модуль для README: назначение, установка,
пример использования, ограничения. Не выдумывай факты о проекте —
опирайся на код. Формат — Markdown, кратко.
Промпт на код-ревью.
Проведи ревью <file>. 3 уровня: 1) безопасность и инъекции,
2) читаемость и шаблоны, 3) производительность. По каждому замечанию —
конкретная строка и предложение. Итог — вердикт: принять / доработать.
5. Типовые ошибки в промптах и решения
| Ошибка | Как выглядит | Решение |
|---|---|---|
| Размытая цель | «сделай сайт» | Разбить на конкретные шаги и требования |
| Молчаливый контекст | Нет, какие файлы смотреть | Указать ссылки и ограничения явно |
| Нет формата | Возвращает непонятно что | Задать структуру вывода (код/тест/JSON) |
| Без критериев | Нет точки приёмки | Сформулировать «готово, когда …» |
| Одна попытка | Не вернулся на доработку | Вести итеративный диалог с правками |
6. Чек-лист продвинутого промпта
- Есть роль и зона ответственности агента.
- Описана цель, а не синтаксис.
- Указаны файлы и границы правок.
- Задан формат результата.
- Сформулированы критерии приёмки.
- Добавлена просьба к само-проверке.
- Есть ограничения по зависимостям и доступу.
Вопросы и ответы
Промпт-инжиниринг — это для разработчиков? — Нет. Это навык для всех, кто работает с нейросетью: от инженера до аналитика. В разработке он даёт наибольший эффект.
Как писать промпты для нейросети, если я слабый в технике? — Опишите поведение и ожидаемый результат простыми словами, а не «напиши код на Python». Формулировку агент подберёт сам.
Промпт-инжиниринг отменяет программиста? — Нет. Он меняет фокус: меньше ручного набора, больше постановки задачи, ревью и контроля.
Нужно ли железо для работы с агентами? — Для базовых задач хватит рабочей станции. Для локальных моделей и больших контекстов — GPU-узел из каталога серверов.
Частые вопросы
Промпт-инжиниринг — это для разработчиков?
Нет. Это навык для всех, кто работает с нейросетью: от инженера до аналитика. В разработке он даёт наибольший эффект.
Как писать промпты для нейросети, если я слабый в технике?
Опишите поведение и ожидаемый результат простыми словами, а не «напиши код на Python». Формулировку агент подберёт сам.
Промпт-инжиниринг отменяет программиста?
Нет. Он меняет фокус: меньше ручного набора, больше постановки задачи, ревью и контроля.
Нужно ли железо для работы с агентами?
Для базовых задач хватит рабочей станции. Для локальных моделей и больших контекстов — GPU-узел из каталога серверов.