Промпт-инженеринг¶
~7 минут чтения
Полный гайд по техникам промптинга для AI/LLM инженеров (2025-2026)
Ключевые концепции¶
Сдвиг парадигмы 2025-2026¶
| Было | Стало |
|---|---|
| Craft prompts вручную | Проектирование reasoning systems |
| Статические промпты | Динамические, адаптивные |
| Single-shot | Multi-turn, итеративное уточнение |
Иерархия техник:
| Уровень | Техника | Сложность | Прирост точности |
|---|---|---|---|
| Базовый | Zero-shot, Few-shot | Низкая | Baseline |
| Средний | Chain-of-Thought, Role | Средняя | +10-30% |
| Продвинутый | Tree of Thoughts, Self-Consistency | Высокая | +20-50% |
| Передний край | Atom of Thoughts, Graph of Thoughts | Очень высокая | +30-70% |
1. Zero-Shot Prompting¶
Прямая инструкция без примеров. Работает для простых, хорошо определённых задач.
2. Few-Shot Prompting¶
2-5 примеров перед задачей. Performance ~ log(num_examples) -- после 5 примеров diminishing returns.
| Задача | Zero-Shot | Few-Shot (3) | Прирост |
|---|---|---|---|
| Classification | 70% | 85% | +15% |
| Translation | 75% | 88% | +13% |
| Reasoning | 55% | 72% | +17% |
Best practices: 3-5 diverse examples, consistent format, most relevant first.
3. Chain-of-Thought (CoT)¶
Промежуточные шаги рассуждения. Формула: P(answer | question, reasoning) > P(answer | question).
Варианты:
| Вариант | Описание | Когда |
|---|---|---|
| Zero-shot CoT | "Let's think step by step" | Быстрые задачи |
| Few-shot CoT | Примеры с рассуждениями | Pattern learning + reasoning |
| Auto-CoT | Модель генерирует примеры сама | Автоматизация |
| Manual CoT | Человек пишет reasoning chains | Критические задачи |
Прирост по типу задачи:
| Задача | Без CoT | С CoT | Прирост |
|---|---|---|---|
| Math (GSM8K) | 17% | 58% | +41% |
| Reasoning (StrategyQA) | 55% | 72% | +17% |
| Symbolic | 20% | 60% | +40% |
| Simple Q&A | -- | -- | 0-10% (overhead) |
Прирост по размеру модели:
| Модель | Без CoT | С CoT |
|---|---|---|
| 7B | 15% | 35% |
| 70B | 35% | 65% |
| GPT-4 | 55% | 85% |
4. Tree of Thoughts (ToT)¶
Исследование нескольких ветвей рассуждений с backtracking.
graph TD
P["Problem"] --> A1["Thought A1"]
P --> A2["Thought A2"]
P --> A3["Thought A3"]
A1 --> B1["B1"]
A1 --> B2["B2"]
A2 --> B3["B3"]
A3 --> B4["B4"]
B1 --> EVAL["Evaluation"]
B2 --> EVAL
B3 --> EVAL
B4 --> EVAL
EVAL --> SOL["Solution"]
style P fill:#e8eaf6,stroke:#3f51b5
style EVAL fill:#fff3e0,stroke:#ff9800
style SOL fill:#e8f5e9,stroke:#4caf50
| Аспект | CoT | ToT |
|---|---|---|
| Путей | 1 | Множество |
| Backtracking | Нет | Да |
| Стоимость | Ниже | 5-20x |
| Для | Линейные задачи | Задачи с ветвлением |
Реализация:
def tree_of_thoughts(problem, max_depth=3):
thoughts = generate_initial_thoughts(problem, k=3)
for depth in range(max_depth):
new_thoughts = []
for thought in thoughts:
branches = expand_thought(thought, k=2)
evaluated = [evaluate(t) for t in branches]
new_thoughts.extend(top_k(evaluated, k=1))
thoughts = new_thoughts
return best_solution(thoughts)
Best practices: 3-5 мыслей за шаг, глубина 3-5, early pruning low-scoring paths.
5. Self-Consistency¶
Генерация множества reasoning paths + majority voting.
| Paths | Math (GSM8K) | Прирост | Cost multiplier |
|---|---|---|---|
| 1 (CoT) | 58% | -- | 1x |
| 5 | 68% | +10% | 5x |
| 10 | 74% | +16% | 10x |
| 20 | 78% | +20% | 20x |
| 40 | 80% | +22% | 40x |
Diminishing returns после 10-20 paths. Используй для high-stakes decisions, не для quick prototyping.
6. Least-to-Most Prompting¶
Декомпозиция сложной задачи на подзадачи, решение от простого к сложному.
Problem: "What's the population of the capital of the country
that won the 2018 World Cup?"
Sub-problems:
1. Who won the 2018 World Cup? -> France
2. Capital of France? -> Paris
3. Population of Paris? -> 2.1M
Прирост +50-200% на compositional tasks. Cost 3-10x.
7. Graph of Thoughts (GoT)¶
Расширение ToT: произвольные графовые структуры вместо деревьев. Позволяет мёрджить мысли из разных веток, нелинейное рассуждение.
8. Atom of Thoughts¶
Маркеры естественного языка для управления reasoning: "I wonder if...", "Let me try a different approach...", "Wait, what if...", "Actually, I should reconsider...". Более натуральный reasoning flow + self-correction.
9. Meta-Prompting¶
Использование LLM для генерации/оптимизации других промптов.
You are a prompt engineer. Create an optimal prompt for:
{task_description}
Requirements: clear instructions, format, edge cases.
Применения: генерация промптов, рефайнмент, task decomposition, format specification.
10. Role-Based Prompting¶
Назначение persona/expertise. Прирост +10-50% для domain tasks.
| Тип роли | Прирост |
|---|---|
| Expert | +5-10% |
| Careful thinker | +8-15% |
| Specific domain | +10-20% |
Детали и практика¶
Принципы 5C¶
| Принцип | Описание |
|---|---|
| Clear | Однозначные инструкции |
| Concrete | Конкретные примеры |
| Complete | Весь необходимый контекст |
| Consistent | Единая терминология |
| Concise | Без лишних слов |
2026 Чеклист (перед каждым промптом)¶
- Success criteria -- что значит "сделано" и как проверить?
- Output contract -- формат, длина, тон, обязательные секции
- Constraints -- scope, исключения, что делать при неопределённости
- Inputs -- минимальный контекст + данные
- Examples -- 1-3 примера если формат важен
- Verification -- рубрика/чеклист для поимки ошибок
- Iteration -- запросить уточняющие вопросы при низкой уверенности
4-блочный макет промпта¶
## INSTRUCTIONS
{{что делать}}
## INPUTS
{{данные, документ, контекст}}
## CONSTRAINTS
{{scope, исключения, uncertainty rule}}
## OUTPUT FORMAT
{{контракт / схема}}
Output Contract¶
{
"summary": "2-3 sentences",
"key_points": ["..."],
"assumptions": ["..."],
"risks": ["..."],
"next_steps": ["..."]
}
Self-Check Evaluator¶
Before finalizing, verify:
- Output matches the requested format exactly
- All success criteria are satisfied
- Claims not supported by inputs marked as [UNCERTAIN]
- Next steps are specific and actionable
Score the draft (0-5): Correctness, Completeness, Clarity, Actionability
If any score < 4, revise and rescore.
Iterative Refinement¶
def iterative_refine(prompt, max_iterations=3):
response = llm.generate(prompt)
for i in range(max_iterations):
critique = llm.generate(f"Critique:\n{response}")
response = llm.generate(f"Improve based on:\n{critique}\n\nOriginal: {response}")
return response
Заметки по моделям¶
| Модель | Что работает лучше |
|---|---|
| ChatGPT | Explicit formatting + constraints; structured outputs |
| Claude | Contract-style instructions, critique/evaluation steps |
| Gemini | Clear input labeling (multimodal), explicit verification |
Анти-паттерны¶
CoT overhead на простых задачах
Chain-of-Thought добавляет 2-5x токенов. На простых задачах (classification, fact retrieval) CoT не даёт прироста и только увеличивает cost/latency. Используй zero-shot для простых задач, CoT только для reasoning.
| Анти-паттерн | Проблема |
|---|---|
| Keyword dumping | Длинные списки инструкций без приоритетов |
| Hidden constraints | Ожидание формата/длины без явного указания |
| Context dumping | Большой input без "what matters most" |
| Conflicting goals | "Short" и "comprehensive" одновременно |
| One-shot shipping | Без self-check и итерации |
Инструменты¶
| Инструмент | Назначение |
|---|---|
| Promptfoo | Тестирование и сравнение промптов |
| LangSmith | Tracing и evaluation |
| DSPy | Декларативное промптирование (определяешь signature, DSPy оптимизирует) |
| Outlines | Structured generation с JSON Schema |
| Instructor | Pydantic models для LLM output |
| LMQL | Query language для constrained generation |
Метрики оценки промптов¶
Выбор техники (Decision Matrix)¶
| Задача | Техника | Стоимость |
|---|---|---|
| Простой Q&A | Zero-shot | 1x |
| Формат/паттерн | Few-shot | 2-3x |
| Математика/логика | CoT + Self-Consistency | 2-10x |
| Сложные решения | ToT | 5-20x |
| Композиционные задачи | Least-to-Most | 3-10x |
| Код | Few-shot CoT + Role | 3-5x |
| Creative writing | ToT + Role | 5-20x |
| Structured extraction | Schema + Few-shot | 2-3x |
| Оптимизация промптов | Meta-prompting | 2-4x |
Enterprise Adoption (2026)¶
| Техника | Adoption |
|---|---|
| Few-shot | 90%+ |
| CoT | 80%+ |
| Structured output | 70%+ |
| Self-Consistency | 30-50% |
| ToT | 10-20% |
Для интервью¶
Q: "Разница между zero-shot и few-shot?"¶
Zero-shot -- прямая инструкция без примеров, опирается на pretrained knowledge. Best for simple tasks. Few-shot -- 2-5 примеров перед запросом. Лучше для novel/complex tasks. Diminishing returns после 5.
Q: "Когда использовать Chain-of-Thought?"¶
Использовать: математика, multi-step logic, complex decisions, промежуточная верификация. Не использовать: простая классификация, fact retrieval, time-sensitive приложения (добавляет latency). CoT бесполезен для моделей <7B. Максимальный прирост на GSM8K: +41%.
Q: "Как работает Self-Consistency?"¶
Генерируешь 5-10 reasoning paths с разным sampling. Извлекаешь финальные ответы. Majority voting. Для p > 0.5 majority vote ВСЕГДА лучше single sample. Diminishing returns после 10-20 paths. Trade-off: 10x стоимость за +16% accuracy.
Q: "ToT vs CoT -- когда что?"¶
CoT -- линейные задачи (math word problems). ToT -- задачи с ветвлением (game strategy, debugging, decisions with tradeoffs). ToT стоит 5-20x дороже, даёт +30-150% на подходящих задачах.
Q: "Как изменился промптинг с reasoning models (o1/o3)?"¶
Раньше: ты пишешь reasoning steps (CoT). Теперь: модель генерирует hidden reasoning chain автоматически. Сдвиг: фокус на problem specification вместо reasoning guidance. Trade-off: меньше контроля над рассуждением, но выше качество на complex tasks.
Q: "DSPy vs традиционный промптинг?"¶
Traditional: ручной craft, итерация вручную. DSPy: декларативно -- определяешь signature, DSPy оптимизирует промпты автоматически. DSPy для: production systems, complex pipelines, teams. Traditional для: quick prototyping, simple tasks.
Q: "Как бороться с prompt injection?"¶
- Input validation и sanitization
- Role separation (system vs user prompts)
- Output filtering
- Structured formats (JSON schema enforcement)
- Content moderation layer
Частые ошибки¶
| Ошибка | Влияние | Исправление |
|---|---|---|
| Слишком много examples | Confusion, cost | Max 3-5 |
| Inconsistent format | Ненадёжный output | Стандартизировать |
| CoT для простых задач | Лишние токены | Zero-shot |
| Single path для complex | Низкая accuracy | Self-Consistency |
| CoT для моделей <7B | Не работает | Bigger model или few-shot |
See Also¶
- Reasoning Models -- o1/o3 и как они меняют промптинг
- CoT Techniques -- Chain-of-Thought подробнее
- Reasoning Scaling -- test-time compute scaling
- Structured Output -- JSON Schema enforcement, Outlines
- LLM Agents -- как промпты работают в агентных системах
Источники¶
- PromptingGuide.ai -- "Prompt Engineering Techniques"
- Lakera -- "The Ultimate Guide to Prompt Engineering in 2026"
- IBM -- "Prompt Engineering Techniques"
- K2View -- "Top 6 Techniques for 2026"
- Galileo AI -- "8 Chain-of-Thought Techniques To Fix AI Reasoning Failures"
- Digital Applied -- "Prompt Engineering: Advanced Techniques for 2026"
- Kovisys -- "Prompt Engineering 2026: 12 Advanced Techniques"
- Adaline Labs -- "Reasoning Prompt Engineering Techniques"
- PromptBuilder.cc -- "Prompt Engineering Best Practices"
- CodeSignal -- "Best Practices 2025"
- Claude Blog -- "Best Practices for Prompt Engineering"
- arXiv -- "Demystifying Chains, Trees, and Graphs of Thoughts"