Почему 90% промтов дают мусор
DeepSeek — модель рассуждения. Она не «угадывает» намерение, а восстанавливает логику из того, что вы написали. Если в промте нет структуры, модель заполняет пробелы самой — и часто не так, как нужно вам.
Типичный слабый промт: «Напиши функцию для парсинга JSON». Нет роли, нет контекста входных данных, нет требований к обработке ошибок, нет формата ответа. Модель выдаст рабочий, но хрупкий код.
Правило: каждая мелочь, которую вы не указали — модель решит за вас. Цель промта — убрать свободу интерпретации там, где она вредна, и оставить её там, где нужен креатив.
Пять блоков — пять уровней контроля
Роль
Задаёт линзу восприятия. «Ты — старший бэкенд-инженер с 10-летним опытом на Go и распределённых системах» работает лучше «Ты — программист». Роль включает релевантные паттерны в весах модели.
Контекст
Входные данные: что на входе, как выглядит среда, какие зависимости. Для кода — версия языка, фреймворки, существующие интерфейсы. Для текста — аудитория, тон, канал публикации, длина.
Задача
Один глагол-императив. Не «помоги с…», а «Напиши», «Рефакторь», «Найди баг», «Сравни», «Объясни». Если действий несколько — разбивай на подзадачи или используй цепочку промтов.
Формат
Жёсткая спецификация выхода: «Только код, без комментариев», «JSON по схеме {…}», «Таблица с колонками A, B, C», «Маркдаун с заголовками H2/H3». Формат экономит время на постобработку.
Ограничения
Что запрещено: «Не используй regex», «Не более 50 строк», «Никаких внешних библиотек», «Не выдумывай факты». Отрицательные инструкции часто важнее положительных — они срезают ложные ветви генерации.
Продвинутые паттерны: заставляем модель думать
Цикл итерации: от черновика к продакшену
Черновик
Напишите промт по формуле. Не идеализируйте — цель: получить базовый ответ.
Оценка
Что не так: формат, глубина, стиль, галлюцинации, упущенный контекст.
Уточнение
Добавьте недостающее в следующий промт: «Исправь: добавь обработку X, убери Y, измени формат на Z».
Фиксация
Сохраните итоговый промт как шаблон. В следующий раз начните с него, а не с чистого листа.
Ловушки, в которые попадают даже опытные
Перегруз контекстом
Скидывание 5000 строк кода «для контекста» забивает окно внимания. Лучше: краткое описание архитектуры + релевантный фрагмент 50-100 строк. Используйте RAG или многошаговую подачу для больших кодовых баз.
Смешение задач
«Напиши код и напиши к нему документацию и сделай тесты и объясни архитектуру» — модель потеряет фокус. Разбивайте: отдельный промт на код, на тесты, на доки. Каждый — со своей ролью.
Игнорирование формата
Без явного формата модель выберет «средний по больнице» — часто маркдаун с лишними пояснениями. Укажите: «Только JSON», «Только код», «Без вводных фраз». Экономит часы парсинга.
Доверие без верификации
DeepSeek уверенно галлюцинирует несуществующие API, устаревшие методы, неверные сигнатуры. Правило: любой код — через компилятор/линтер, любые факты — через первоисточник. Модель — ускоритель, не оракул.
Скрытые предположения
«Сделай быстро» — что значит быстро? O(1)? <10ms? Без аллокаций? Модель подставит своё понимание. Заменяйте прилагательные на метрики: «latency p99 < 50ms», «0 аллокаций на hot path».
Отсутствие негативных примеров
Показать, чего НЕ надо делать, часто эффективнее положительных примеров. Добавьте блок «Anti-patterns: не делай так…» с 2-3 конкретными ошибками, которые модель любит повторять.
Сохраните структуру — используйте её каждый раз
Скопируйте чек-лист ниже. Вставьте в заметки, IDE snippet, системный промт. Следующий раз начните не с пустого экрана, а с каркаса, который работает.