# Промпт-инжиниринг

> Практика составления запросов (промптов) к языковым моделям так, чтобы получать точные, полезные и предсказуемые ответы — инструкции, контекст, примеры, формат и проверка.

Источник: https://llmdocs.ru/wiki/prompt-engineering/ · обновлено 2026-11-09 · лицензия CC BY-SA 4.0

- **Объект**: текст запроса к языковой модели
- **Основные приёмы**: чёткие инструкции, контекст, примеры (few-shot), рассуждение по шагам, формат вывода
- **Ключевые работы**: GPT-3 и few-shot (2020), chain-of-thought (2022), ReAct (2022)
- **Связанные практики**: оценка (evals), RAG, контекст-инжиниринг
- **Руководства**: документация Anthropic, OpenAI, Google
**Промпт-инжиниринг** (англ. *prompt engineering*) — практика составления запросов к [языковым моделям](https://llmdocs.ru/wiki/llm.md) так, чтобы получать точные, полезные и предсказуемые результаты. **Промпт** — весь текст, который получает модель: системные инструкции, вопрос пользователя, приложенные документы, примеры, описание желаемого формата. Модель не знает ничего о задаче, кроме того, что есть в промпте и в её обучающих данных, поэтому качество ответа сильно зависит от того, как задача сформулирована.

С ростом возможностей моделей «магические формулы» потеряли значение, но основы остаются: ясная постановка задачи, достаточный контекст, примеры и проверка результата. Шире эту работу называют **контекст-инжинирингом** — управлением всем, что попадает в [контекстное окно](https://llmdocs.ru/wiki/context-window.md).

## Основные принципы

1. **Ясность и конкретность.** Объясните задачу так, как объясняли бы новому коллеге, не знающему контекста: цель, аудиторию, ограничения, критерии хорошего результата. «Сделай короче» хуже, чем «сократи до 3 предложений для руководителя, сохранив цифры».[1]
2. **Контекст и мотивация.** Объяснение, *зачем* нужно правило, помогает модели применить его разумно: не «никаких списков», а «ответ будет зачитан голосовым ассистентом, поэтому без списков и разметки».
3. **Примеры.** Несколько образцов входа и выхода (*few-shot*) показывают формат и стиль лучше длинных описаний. Эта способность модели учиться по примерам в запросе была ключевым открытием GPT-3.[4]
4. **Структура.** Разделяйте инструкции, данные и примеры явными границами — заголовками [Markdown](https://llmdocs.ru/wiki/markdown.md) или XML-тегами вроде `<document>` и `<instructions>`. Длинные документы лучше помещать в начало, а вопрос — в конец.
5. **Формат вывода.** Явно опишите, что нужно получить: таблицу, JSON по схеме, определённую длину. Для машинной обработки используйте [структурированный вывод](https://llmdocs.ru/wiki/structured-output.md).
6. **Позитивные формулировки.** «Пиши связными абзацами» работает надёжнее, чем «не используй списки».

## Пример

```text
Системный промпт:
Ты — ревьюер кода в команде бэкенда на Python. Ревью читают младшие разработчики,
поэтому объясняй причину каждого замечания.

Сообщение пользователя:
<code>
def get_user(id):
    return db.execute(f"SELECT * FROM users WHERE id = {id}")
</code>

Найди проблемы в коде выше. Для каждой укажи:
1) серьёзность (критично / желательно),
2) что не так и почему,
3) исправленный вариант.
Если проблем нет — так и скажи.
```

Промпт задаёт роль и аудиторию, отделяет код тегами, описывает формат ответа и даёт модели разрешение сказать «проблем нет», уменьшая соблазн придумать замечания.

## Приёмы

| Приём | Суть | Когда помогает |
|---|---|---|
| Роль в системном промпте | задать экспертизу, тон, аудиторию | стиль и глубина ответов |
| Few-shot | 2–5 примеров вход — выход | нестандартный формат, классификация |
| Рассуждение по шагам (*chain-of-thought*) | попросить подумать перед ответом[3] | математика, логика, многошаговые задачи |
| Декомпозиция и цепочки | разбить задачу на этапы, каждый — отдельный запрос | сложные документы, конвейеры |
| Предоставление источников | вставить документы и требовать ссылок на них | фактические вопросы, снижение [галлюцинаций](https://llmdocs.ru/wiki/hallucinations.md) |
| Самопроверка | попросить проверить ответ по критериям | код, расчёты, соответствие требованиям |
| Рассуждение и действие (ReAct) | чередование мыслей и вызовов инструментов[5] | [агенты](https://llmdocs.ru/wiki/ai-agent.md) |

Рассуждающие модели думают по шагам сами, поэтому для них подробные указания «как думать» часто не нужны и даже мешают; полезнее чётко описать задачу и критерии успеха. Систематический обзор десятков техник — в работе «The Prompt Report».[6]

## Промпты для агентов и инструментов

Для систем с вызовом функций ([Tool use / function calling](https://llmdocs.ru/wiki/tool-use.md)) значительная часть промпт-инжиниринга переходит в **описания инструментов**: понятные имена, точные описания параметров, примеры, указание, когда инструмент использовать и когда нет. Инструкции агенту стоит писать как регламент для сотрудника: границы полномочий, что делать при неясности, когда остановиться и спросить.

## Итерации и оценка

Промпт — это код: его стоит хранить в системе контроля версий и проверять на наборе тестовых примеров, а не на одном удачном запросе. Типичный цикл — сформулировать критерии успеха, собрать 20–100 характерных входов, запустить, разобрать ошибки, поправить промпт и повторить. Подробнее — в статье [Оценка LLM (evals)](https://llmdocs.ru/wiki/llm-evals.md). Повторяющуюся длинную часть промпта выгодно кэшировать ([Кэширование промптов](https://llmdocs.ru/wiki/prompt-caching.md)).[2]

## Безопасность

Если в промпт попадают данные из внешних источников — письма, веб-страницы, документы пользователей, — они могут содержать инструкции, которые модель примет за команды. Защиту от этого описывает статья [Безопасность LLM: prompt injection](https://llmdocs.ru/wiki/prompt-injection.md): разделение данных и инструкций, ограничение прав инструментов и подтверждение опасных действий человеком.

## См. также

- [Большая языковая модель (LLM)](https://llmdocs.ru/wiki/llm.md)
- [Контекстное окно](https://llmdocs.ru/wiki/context-window.md)
- [Оценка LLM (evals)](https://llmdocs.ru/wiki/llm-evals.md)
- [Tool use / function calling](https://llmdocs.ru/wiki/tool-use.md)
- [Структурированный вывод (JSON mode)](https://llmdocs.ru/wiki/structured-output.md)

## Источники

1. [Anthropic — Prompt engineering overview](https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview)
2. [OpenAI — Prompt engineering guide](https://platform.openai.com/docs/guides/prompt-engineering)
3. [J. Wei et al. — Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (2022)](https://arxiv.org/abs/2201.11903)
4. [T. Brown et al. — Language Models are Few-Shot Learners (2020)](https://arxiv.org/abs/2005.14165)
5. [S. Yao et al. — ReAct: Synergizing Reasoning and Acting in Language Models (2022)](https://arxiv.org/abs/2210.03629)
6. [S. Schulhoff et al. — The Prompt Report: A Systematic Survey of Prompting Techniques (2024)](https://arxiv.org/abs/2406.06608)
