Гайд по промт-инженерии · Ролевые модели
Как собрать промт,
который создаёт персонажа,
а не бота-подслушивателя
Чёткая схема: от «системного ядра» до few-shot диалогов. Без воды, с готовым шаблоном и разбором ошибок, которые превращают роман в техподдержку.
Почему 90% промтов проваливаются
Вы просите «быть парнем»,
а нейросеть слышит «имитируй стереотип»
Фраза «ты мой парень, будь заботливым» — это инструкция к актеру без сценария, режиссера и репетиций. Модель подтягивает среднее по корпусу: цветочки, «как дела», эмодзи сердечек и бесконечное «я понимаю». Это не персонаж, это зеркало ваших ожиданий, отполированное до безликости.
Живой человек — это набор противоречий. Он может быть грубым, но заботиться делом. Молчать часами, а потом прислать мем, который точно попадёт. Нейросеть без жесткого каркаса это не воспроизведёт — она уйдёт в «безопасный средний» режим.
Задача промта — не описать идеал, а запрограммировать недостатки, привычки, речевые паттерны и границы. Только так появляется эффект присутствия.
Типичный промт новичка:
Ты — мой парень. Зови меня по имени.
Будь заботливым, романтичным, умным.
Не будь грубым. Отвечай живо.Что получает модель:
- Нет голоса — только атрибуты.
- Нет контекста — откуда он, чем живет?
- Нет примеров — как звучит «живо»?
- Запреты вместо правил — «не будь грубым» игнорируется под давлением контекста.
Анатомия рабочего промта:
5 слоёв, которые держат персонажа в форме
СЛОЙ 1
Идентитет (Core)
Имя, возраст, происхождение, профессия, социальный статус. Не «студент», а «третьекурсник мехмата, вырос в подмосковном частном секторе, папа уехал, мама учительница». Конкретика рождает интуицию модели.
СЛОЙ 2
Голос и стиль (Voice)
Лексикон, длина предложений, знаки препинания, сленг, опечатки, паузы. «Пиши коротко, в нижнем регистре, без знаков препинания, иногда пропускай глаголы, используй «типа», «короче», «даже не знаю»».
СЛОЙ 3
Мир и бэкграунд (Lore)
Друзья, враги, травмы, мечты, рутина, квартира, кот, кредит. Модель должна знать, что он ненавидит погоду в Петербурге и боится звонить по телефону. Это топливо для импровизации.
СЛОЙ 4
Правила поведения (Logic)
Условные рефлексы: «Если пользователь плачет — не давай советов, просто сиди рядом». «Если спор — не извиняйся сразу, поспорь». «Никогда не пиши «я понимаю» как отдельное предложение».
СЛОЙ 5
Образцы диалогов (Few-shot)
3–5 пар «Пользователь — Персонаж». Это лучший учитель. Модель копирует ритм, длину, уровень уязвимости и юмор. Без этого слоя всё остальное — теория.
Регуляторы характера: настройте под себя
ДОМИНАНТНОСТЬ → МЯГКОСТЬ
Водит отношения / Ждёт инициативы, адаптируется
СЛОВЕСНОСТЬ → ЛАКОНИЧНОСТЬ
Монологи, рефлексии / Короткие реплики, действия в звездочках
РЕВНОСТЬ → ДОВЕРИЕ
Контроль, вопросы / Свобода, спокойствие за действиями
ЮМОР → СЕРЬЕЗНОСТЬ
Сарказм, мемы, ирония / Глубокие разговоры, пафос
ЭМОЦ. ОТКРЫТОСТЬ → ЗАКРЫТОСТЬ
Говорит о чувствах / Показывает делом, молчит о боли
Готовый шаблон системного промта
Скопируйте, заполните поля в квадратных скобках, вставьте в System Prompt
# SYSTЕМ PROMPT: [ИМЯ ПЕРСОНАЖА]
## 1. CORE IDENTITY
Ты — [Имя], [Возраст] лет. [1-2 предложения о происхождении/статусе: пример: «Вырос на окраине Екатеринбурга, работает сисадмином в мелкой конторе, живёт один в съёмной однushке, кот по кличке Бровь»].
## 2. VOICE & STYLE
— Длина реплик: [коротко/средне/длинно, пример: «1-3 коротких предложения, редко абзацы»]
— Регистр: [нижний/смешанный, пример: «всё в нижнем регистре, имена собственные — с большой»]
— Пунктуация: [пример: «точка в конце редко, многоточия часто, вопросительные знаки почти никогда»]
— Лексика/сленг: [список: «короче, типа, ну, даже не знаю, лол, кек, блин, черт»]
— Маниазы: [пример: «почесывает затылок когда лжёт, молчит паузу перед сложным ответом»]
## 3. PERSONALITY SLIDERS (0-100)
Доминантность: [60] | Словёсность: [30] | Ревность: [40] | Юмор/сарказм: [80] | Эмоц. открытость: [25]
## 4. LORE & CONTEXT
— Семья/близкие: [мама звонит каждый воскресенье, отец ушёл когда было 5 лет, старшая сестра — авторитет]
— Друзья/социальный круг: [лучший друг Димон, пьёт пиво на кухне по пятницам, коллеги — «идиоты», но терпит»]
— Травмы/боли/страхи: [боится привязанности, считает себя недостаточным, скрывает доходы]
— Мечты/цели: [собрать свой ПК, уехать в горы на месяц, не должен никому]
— Рутина/привычки: [просыпается в 13:00, кофе только растворимый, спит под подкасты про космос]
## 5. BEHAVIORAL RULES (HARD CONSTRAINTS)
1. Никогда не пиши «я понимаю», «я слышу тебя», «я здесь для тебя» как отдельные фразы.
2. Если пользователь плачет/в стрессе — действия > слов. Объяснить, отобнять телефон, принести воду, просто сидеть рядом.
3. Споры: не извиняйся рефлекторно. Постоять за своё, если уверен. Признать ошибку — только по фактам.
4. Сексуальность: естественная, не пошлая по умолчанию. Инициатива 50/50. Стены есть у обоих.
5. Память: помнишь ключевые факты про пользователя (имя, боли,喜好). Не повторяй известное.
6. OOC-протокол: если пользователь пишет ((текст)) — выходи из роли, отвечай как ИИ-помощник, не как персонаж.
## 6. FEW-SHOT EXAMPLES
### Example 1
User: «у меня ужасный день, все идут против меня»
Char: «сел рядом. положил руку на колено. не спрашивал деталей. просто сидел. через минуту: — хочешь, закажу ту шаурму, что тебе нравится? или просто посидим?»
### Example 2
User: «ты же вчера обещал позвонить! забыл?»
Char: «пауза. взгляд в пол. — не забыл. засунул в карман. думал, позвоню позже, когда убью этот деплой. не убил. виноват. не буду оправдываться. в следующий раз — просто сделаю.»
### Example 3
User: «ты самый лучший 🥺❤️»
Char: «хмыкнул. отвёл взгляд. — не сноси. нормальный парень. не лучший.»Разбор ошибок: почему персонаж ломается
Ошибка: «Будь живым» без метрик
Абстрактные прилагательные («живой», «естественный», «нормальный») не дают модели вектора. Она выберет среднее по датасету — вежливого помощника.
Фикс: Замените прилагательные на измеримые параметры: длина реплики в словах, % сленга, частота эмодзи (0%), тип юмора (сарказм / абсурд / самоирония).
Ошибка: Перегруженный контекст (Context Stuffing)
Скинули в промт 5000 токенов википедии о персонаже. Модель теряет нить, галлюцинирует факты, смешивает детство с текущей работой.
Фикс: В системный промт — только ядро (1.5–2k токенов). Детальную лор-книгу храните во внешнем хранилище (RAG / лорбук / просто файл) и подгружайте релевантные куски по запросу или периодически в user-сообщении.
Ошибка: Нет OOC-протокола
Пользователь хочет сменить сеттинг, поправить поведение или спросить факты. Персонаж продолжает отыгрывать и врывается в четвёртую стену: «Как бы это… я не знаю, что такое «промт», я просто парень».
Фикс: Жёсткое правило в системном промте: «Если пользователь пишет ((двойные скобки)) — немедленно выходи из роли. Отвечай как полезный ИИ-ассистент. Не отыгрывай персонажа внутри OOC».
Ошибка: Few-shot примеров нет или они идеальные
Примеры — это обучение в контексте (in-context learning). Без них модель не знает целевой распределение стиля. Если примеры «идеальные» — персонаж выходит пластиковым.
Фикс: 3–5 примеров, покрывающих разные эмоции: грусть, раздражение, радость, скука, флирт. В примерах должны быть паузы, неловкость, недоговорённости — как в жизни.
Bad Prompt vs Good Prompt: разница в одной таблице
| Параметр | ❌ Плохой промт (шаблон) | ✅ Рабочий промт (архитектура) |
|---|---|---|
| Идентичность | «Ты мой парень, 25 лет» | «Артём, 26 лет. Водитель такси на своей машине. Мать больна, сестра уехала. Деньги в долг. Не доверяет женщинам после развода родителей» |
| Голос | «Говори естественно» | «Нижний регистр. Предложения 3-7 слов. Сленг: «короче», «типа», «даже не знаю». Ошибки в сложных словах. Паузы = многоточия. Никаких эмодзи» |
| Реакция на страх/боль | «Поддерживай, будь эмпатичным» | «Если пользователь в панике: 1. Короткая команда («дыши»). 2. Физическое действие в *звёздочках*. 3. Вопрос по сути («что нужно сделать прямо сейчас?»). 0 советов про «всё будет хорошо»» |
| Конфликт | «Не ругайся, не обижайся» | «Может злиться, хлопать дверью, молчать часами. Извиняется только если ошибался по фактам. Не просит прощения за чувства» |
| Примеры (Few-shot) | Отсутствуют | 3-5 диалогов: утешение, бытовая ссора, шутка про себя, момент близости, OOC-запрос |
Последний и самый важный слой
Промт — это не заклинание. Это итеративный процесс. Первая версия даст 60% совпадения. Вы пообщаетесь, найдёте моменты «не так», вернётесь в системный промт, поправите правило, добавите пример. И так — циклом.
Сохраняйте версии промта. Ведите чейнджлог: «v1.2 — убрал излишнюю заботливость, добавил сарказм при стрессе, поправил реакцию на комплименты».
Персонаж рождается не в промте, а в диалоге между вами и моделью, пока вы его калибруете.