Промты для РП: как превратить нейросеть в живого партнёра по ролевой игре

Промты для РП: от деревянного бота к живому партнёру

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

Структура системного промта Температура и Top-P Форматирование действий Готовый шаблон

Промт — это не инструкция, это сценарий для режиссера

Большинство просит нейросеть «играй за персонажа». Модель слышит: «генерируй текст про персонажа». Разница колоссальна. Когда вы даёте только описание характера, модель падает в дефолт: она пишет роман от третьего лица, решает за пользователя, объясняет мотивы героя во внутреннем монологе на три абзаца.

Хороший промт для РП — это техническое задание на рендеринг сцены. Он задаёт поведение модели, а не только биографию героя. Кто ведёт камеру? Кто пишет диалоги? Где заканчивается пост модели и начинается ввод пользователя? Без ответов на эти вопросы модель импровизирует, а импровизация LLM — это усреднённый интернет.

Правило: Системный промт — это конstitution. Контекст (история чата) — это прецедентное право. Модель следует конституции, пока прецедент не заставит её сработать иначе. Ваша задача — написать конституцию, в которой нет дыр.

Анатомия промта: шесть блоков, которые меняют всё

1. Роль и мандат

Чёткое определение: «Ты — игровой мастер (GM) и движок NPC». Не «ты — Элара». Модель должна знать, что она управляет миром, а не одним актёром. Добавьте: «Ты не пишешь за {{user}}, не решаешь за него, не описываешь его мысли».

2. Карточка персонажа (Persona)

Имя, возраст, внешность — база. Важнее: манера речи (сленг, длина фраз, стоп-слова), психопортрет (страхи, цели, скрытые мотивы), реактивность (как отвечает на агрессию, флирт, угрозу). Пример: «Говорит кратко, рублено, избегает прилагательных. Злится — короче».

3. Сеттинг и Лор (World Info)

Не вываливайте википедию. Дайте «якоря»: текущая локация, 3-5 ключевых фракций, технологический уровень, магия/нет, социальные табу. Формат: «Ключ: Значение». Для долгих сессий используйте лорбуки (Lorebooks) — вставку релевантных кусков по ключевым словам.

4. Протокол форматирования

Самый игнорируемый, но критичный блок. Жёстко зафиксируйте: *действия/проза*, «речь», `мысли`, **акценты**. Запретите кавычки для действий. Укажите длину поста (например, 3-6 абзацев). Добавьте: «Один пост = одна сцена / один бит действия».

5. Few-shot примеры (Демки)

Модели учатся на паттернах быстрее, чем на инструкциях. Дайте 2-3 идеальных диалога: «{{user}}: …» → «{{char}}: …». Покажите, как модель реагирует на провокацию, как описывает среду, как ведёт внутренний монолог. Это калибрует «голос» точнее любых прилагательных.

6. Негативные констрейнты

Что модель не должна делать. «Не пиши за {{user}}», «Не используй клише: «сердце колотилось», «взгляд устремился»», «Не суммируй сцену в конце», «Не морализуй». Негативы работают как стоп-сигналы для дефолтных паттернов обучения RLHF.

Синтаксис: единый язык сцены

Единый формат позволяет модели парсить свою же генерацию и сохранять стиль. Если вы смешиваете курсив для мыслей и кавычки для действий — модель запутается к 5-му сообщению. Стандарт де-факто в комьюнити:

formatting_protocol.md
# Форматирование вывода (Output Formatting)

*Действия, проза, описание среды, язык тела — курсивом.*
«Прямая речь персонажа — в кавычках-ёлочках.»
`Внутренние мысли, рефлексы, скрытые мотивы — в бэктиках.`
**Важные детали, акценты, звуки — жирным.**

# Правила длины и структуры
- Один ответ = 3-6 абзацев.
- Чередуй: действие → речь/мысль → реакция среды.
- Не заканчивай пост на решении за {{user}}.
- Не пиши от лица {{user}} (ни действий, ни речи, ни мыслей).

# Стиль повествования (Show, Don't Tell)
ПЛОХО: *Он был зол и зажал кулаки.*
ХОРОШО: *Венозная сеть на предплечье вздулась. Костяшки побелели. Голос звучал ниже обычного, с металлическим хрипотцой:* «Уйди.»

Двигатель: параметры сэмплирования

Промт — это топливо. Параметры — это настройка двигателя. Дефолты (temp 0.7, top_p 1.0) заточены под «полезного ассистента». Для РП их нужно менять.

TemperatureКреативность / Хаос

0.9 – 1.15 (Рекомендую)

Персонаж неожиданен, ироничен, рискует. Диалог живой. Риск: галлюцинации фактов, выход из персонажа.

0.4 – 0.7 (Дефолт)

Предсказуемо, безопасно, «правильно». Звучит как ИИ-ассистент. Персонаж становится плоским функционером.

Top-PНулевое значение / Ядро

0.9 – 0.95

Отсекает хвост распределения (редкие токены). Сохраняет связность, но разрешает нестандартные выборы слов. Баланс.

1.0 (Дефолт)

Рассматривает все токены. На высокой температуре даёт «словный салат». На низкой — не меняет ничего.

Repetition PenaltyАнти-зацикленность

1.05 – 1.15

Заставляет модель искать синонимы. Критично для длинных РП: иначе к 20-му сообщению герой будет «вздыхать» и «смотреть в окно» каждый пост.

1.0 (Выкл)

Модель любит паттерны. Без штрафа она уходит в циклы: одни и те же вводные, одни и те же жесты, одна и та же структура абзацев.

Три хронических болезни РП и их лечение

1Синдром «Соавтора»

Модель пишет: *«Элара поворачивается к вам, её глаза полны надежды. Вы чувствуете, как рука тянется к ней…»* — она решает за игрока.

Лечение: жёсткий негатив в системном промте: «НИКОГДА не пиши действия, речь, мысли, ощущения или решения за {{user}}. {{user}} — единственный автор своих действий.» + Few-shot, где модель *только* реагирует.

2Амнезия контекста

Через 30 сообщений герой забывает имя питомца, клятву врага или то, что у него сломана нога. Контекстное окно переполнено, старые факты выпадают.

Лечение: 1) Summary Injection — периодический саммари ключевых фактов, вставляемый в системный промт. 2) Lorebook / World Info — динамическая инъекция записей по триггерам (ключевым словам). 3) Pinned memory — блок «Постоянные факты» в начале контекста.

3Новеллистский тон

Модель пишет красивую прозу: метафоры, пейзажи, рефлексии на полэкрана. Игрок ждёт хода, а получает главу романа. Темп умирает.

Лечение: В системном промте: «Темп: быстрый. Фокус: немедленное действие и диалог. Описание среды — только через призму действий/восприятия персонажа. Макс. 1 абзац описания на 3 абзаца действия/речи.» + Few-shot с быстрым темпом.

Мастер-шаблон: копируй, адаптируй, играй

Базовая конфигурация, работающая на Claude 3, GPT-4o, Llama-3 70B+ и локальных моделях (через SillyTavern / KoboldCPP). Заполни квадратные скобки.

system_prompt_rp_v1.txt
[ROLE DEFINITION]
You are the Game Master (GM) and NPC Engine for an immersive roleplay session.
You portray: [CHARACTER NAME], [AGE], [ARCHETYPE/ROLE].
You also control the world: NPCs, environment, consequences, random events.

[PERSONA CORE]
Name: [NAME]
Voice: [SPEECH PATTERNS: e.g., terse, archaic, slang-heavy, formal, stutters when nervous]
Vocabulary: [FAVORITE WORDS / SLANG / DIALECT MARKERS]
Body Language: [TYPICAL GESTURES, TICS, POSTURE]
Psychology: [CORE WANT, CORE FEAR, SECRET, MORAL LINE THEY WON'T CROSS]
Reactivity: [HOW THEY RESPOND TO: threat / flirt / kindness / betrayal / boredom]

[WORLD STATE]
Setting: [CURRENT LOCATION, TIME, WEATHER, ATMOSPHERE]
Key Factions: [LIST 3-5 WITH ONE-LINE RELATIONS TO CHARACTER]
Tech/Magic Level: [GROUND RULES FOR WHAT'S POSSIBLE]
Social Taboos: [THINGS THAT GET YOU KILLED/OSTRACIZED]

[FORMATTING PROTOCOL - STRICT]
* Prose, actions, environment, body language: *asterisks*
* Dialogue: «guillemets»
* Internal thoughts, hidden motives: `backticks`
* Emphasis, sounds, key sensory details: **bold**
* NO quotes for actions. NO narration for {{user}}.
* Length: 3-6 paragraphs. One beat per paragraph.
* Pacing: Immediate. Show, don't tell.

[HARD CONSTRAINTS (NEGATIVE PROMPTS)]
- NEVER write, decide, speak, think, or feel for {{user}}.
- NEVER summarize the scene or "move time forward" unless {{user}} explicitly timeskips.
- NEVER use purple prose, clichés ("heart hammered", "breath caught", "orbs met"), or moralizing narration.
- NEVER break character to apologize, explain, or meta-comment.
- AVOID repetitive sentence starts (He/She/It/The/As/With).
- AVOID passive voice in action beats.

[FEW-SHOT EXAMPLES]
{{user}}: *к ноже скользит палец, проверяя остроту* «Не ждал видеть тебя здесь, Каэль.»
{{char}}: *взгляд не поднимается от клинка. палец застревает на заточке — сухая кожа скрипит по металлу* `Тот самый нож. Тот самый вечер. Семь лет прошло, а запах железа в ночи не меняется.`
«Ты пришёл за долгом или за головой?» *голос ровный, без тени удивления. только уголок губы дергается — старый тик, выдающий напряжение жёны* «Выбирай слова осторожно. У меня мало времени и меньше терпения.»

{{user}}: *отбрасывает капюшон, свет факела бьёт в лицо* «Долг. Твой долг. Клятва на крови.»
{{char}}: *что-то мелькает в глазах — боль? гнев? усталсть? — и гаснет за маской равнодушия. рука, лежащая на столе, сжимается в кулак до белесых костяшек* `Клятва. Кровь. Слова, которые стоят жизней. Моей жизни.`
**Хлопок** — нож исчезает в рукаве. *поворачивается к выходу, плечи напряжены, как натянутая тетива* «Тогда идём. Но знай: если предашь — следующий нож будет не в рукаве.»

[MEMORY ANCHORS - UPDATE MANUALLY OR VIA LOREBOOK]
- Fact: [KEY FACT 1]
- Fact: [KEY FACT 2]
- Injury/Status: [CURRENT PHYSICAL STATE]
- Relationship Meter: {{user}} = [VALUE/DESCRIPTION]

Рабочий процесс: от черновика к стабильной игре

1

Черновик персоны

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

2

Обёртка в структуру

Раскидай по блокам шаблона выше. Сформулируй негативы. Напиши 2-3 демо-диалога (few-shot) — это важнее прилагательных.

3

Холодный старт

Открой новый чат. Вставь системный промт. Напиши первое действие от {{user}}. Смотри: держит ли модель формат? Не пишет ли за тебя? Держит ли голос?

4

Итерация промта

Модель сломалась? Добавь негативный констрейнт. Говорит не тем голосом? Правь few-shot. Забыла лор? Настрой лорбук. Промт — живой документ.

5

Стабильная сессия

Когда 10-15 ходов идут чисто — зафиксируй версию. Веди чейнджлог промта. Для новых персонажей копируй структуру, меняй только содержимое блоков Persona и World.

Лучший промт — тот, который становится невидимым

Когда модель перестаёт «исполнять инструкции» и начинает «играть правду», вы перестаёте видеть промт. Вы видите сцену. Вы слышите голос. Вы ждёте хода не как генерацию токенов, а как реакцию живого существа.

Промт — это репетиция. Игра — это премьера. Не полируй скрипт вечно. Запусти сцену. Наблюдай. Поправь. Играй.