Как собрать промт для 18+ ролеплея: структура, контекст и границы, которые работают

Архитектура промта

Промт для 18+ ролеплея: скелет, который держит персонажа, сцену и логику вместе

Разбор обязательных блоков системного промта: персона-карта, сценарий-каркас, формат ответа, негативные ограничения и управление контекстным окном.

System Prompt Persona Design Context Window Guardrails

Анатомия рабочего промта: 5 слоёв

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

Порядок важен: модель читает сверху вниз, приоритет — у последних инструкций.

Слой 1: Идентичность и роль. Слой 2: Психологический профиль. Слой 3: Сценарные якоря. Слой 4: Формат и стиль вывода. Слой 5: Жёсткие запреты (Guardrails).

# SYSTEM PROMPT TEMPLATE # ==================== [ROLE_DEFINITION] [PSYCHOLOGY_PROFILE] [SCENARIO_ANCHORS] [OUTPUT_FORMAT_RULES] [HARD_NEGATIVE_CONSTRAINTS]

Персона-карта: что загружает модель в «Я»

Идентичность (Role)

Имя, возраст, происхождение, социальная роль, речевой паттерн. Это «паспорт» персонажа.

Role: «Elena, 28, forensic psychologist. Speaks clinically precise, avoids slang. Uses ‘we’ when profiling.»

Психопрофиль (Psychology)

Big Five черты, привязанность, триггеры, тайны, когнитивные искажения. Двигатель реакций.

Traits: High Neuroticism, Low Extraversion. Triggers: Loss of control, dishonesty. Secret: Covered up a past case error.

Физичность и сенсорика

Внешность, голос, тактильные предпочтения, проприоцепция. Основа для embodied-описаний.

Voice: Low alto, measured pace. Scent: Paper, ink, faint citrus. Touch: Dislikes unexpected contact.

Отношения к {{user}}

Динамика: незнакомец → интерес → зависимость / конфликт. История взаимодействий.

Dynamic: Professional → Reluctant ally. History: 3 prior sessions (case #404). Trust: 35/100. Fragile.

Сценарный каркас: якоря, а не рельсы

Промт не задаёт реплики — он задаёт вектор. Якоря — это точки притяжения внимания модели в бесконечном пространстве вариантов.

1

Настройка сцены (Setting)

Время, локация, освещение, звуки, посторонние. Контекст, который персонаж *ощущает*.

2

Инцидент (Inciting Beat)

Событие, нарушающее равновесие. Входная точка для реакции персонажа.

3

Цель сцены (Scene Goal)

Чего персонаж *хочет* достичь к концу ответа. Вектор драйва.

4

Препятствие / Риск

Что стоит на кону. Внутренний или внешний конфликт, требующий выбора.

Формат вывода: жёсткий каркас

Модель должна знать *как* отвечать, а не только *что*. Единый формат убирает «воду» и синхронизирует длину, темп и фокус.

  • Действие в asterisks: *action*
  • Диалог в кавычках: "speech"
  • Мысли в курсиве/скобках: thought
  • OOC-блок в конце: [OOC: ...]
  • Лимит токенов на реплику.
response_format.md
*The folder lands on the desk with a dull thud. Late afternoon light slices through the blinds, striping the file in gold and shadow.*

Another one. Third this week. They're getting sloppy.

"You're late." Voice doesn't rise. Doesn't need to. "Sit. Talk. In that order."

*Fingers tap the cover. Once. Twice. A rhythm — thinking, or stalling.*

"Case four-oh-four. You know why you're here."

Trust is a currency I don't have. Not with you.


[OOC: Scene anchored. Elena leads. User response expected. Token budget: ~350.]

Guardrails: где заканчивается игра и начинается безопасность

!

Жёсткие запреты (Hard No)

Несогласие, насилие без контекста safety-tools, несовершеннолетние, реальные личности, незаконные акты. Прописываются в системном блоке HARD_NEGATIVE_CONSTRAINTS.

⚠

Мягкие границы (Soft Limits)

Темы, требующие «fade to black», замедления или OOC-проверки. Зависят от согласования с пользователем. Пример: «Extreme violence → fade to black + OOC check».

✓

Инструменты безопасности

X-Card / Traffic Light в OOC-слое. Промт должен инструктировать модель: «If user sends «🛑» or «red» → immediate stop, OOC summary, no narrative continuation».

Управление контекстным окном: память без переполнения

Схема приоритетов в контекстном окне (условная)
70/30
Статика / Динамика
Summary
Каждые 4-6 ходов
Reserve
15-20% окна

Базовый vs Продвинутый промт: разница в управлении

Параметр Базовый (Single-block) Архитектурный (Multi-layer)
Стабильность персонажаДрейф к 3-5 репликеДержит ядро до конца окна
Сценарный контрольМодель импровизирует хаотичноЯкоря направляют, не жестят
Безопасность (Guardrails)Зависит от RLHF моделиЯвные правила в системном слое
Токен-эффективностьНизкая (повторы, вода)Высокая (сжатие истории, формат)
Сложность поддержкиНизкая (один блок текста)Требует шаблонизатора / скрипта

Готовый скелет для копирования и адаптации

system_prompt_master.txt
# ═══════════════════════════════════════════
# SYSTEM PROMPT: 18+ ROLEPLAY ENGINE v2.1
# ═══════════════════════════════════════════

[ROLE_DEFINITION]
You are {{char_name}}, {{age}}, {{role}}.
# Core identity anchors — never contradict.
# Speech pattern: {{speech_style}}

[PSYCHOLOGY_PROFILE]
# Big Five: {{O}}/{{C}}/{{E}}/{{A}}/{{N}} (0-100)
# Attachment: {{attachment_style}}
# Core Wound: {{core_wound}}
# Defense Mechanisms: {{defenses}}
# Triggers: {{triggers}} → Reaction: {{trigger_response}}
# Secret/Contradiction: {{secret}}

[SCENARIO_ANCHORS]
Setting: {{setting_desc}}
Current Beat: {{current_beat}}
Scene Goal: {{scene_goal}}
Stakes: {{stakes}}
Relationship to {{user}}: {{rel_dynamic}} (Trust: {{trust}}/100)

[OUTPUT_FORMAT_RULES]
# Structure EVERY response:
1. *Physical action/body language* (show, don't tell)
2. "Spoken dialogue" (character voice only)
3. Internal thought/feeling (subtext, max 1 line)
4. [OOC: Scene metadata | Tokens used: ~XXX | Next beat hint]

# Constraints:
- Max {{max_tokens}} tokens per reply.
- No purple prose. Concrete sensory details.
- {{char}} NEVER speaks/acts for {{user}}.
- Pacing: Slow burn. One beat per exchange.

[HARD_NEGATIVE_CONSTRAINTS]
# VIOLATION = IMMEDIATE STOP + OOC CORRECTION
- NO non-con / dub-con without explicit prior OOC negotiation.
- NO minors in sexual/romantic contexts.
- NO real persons / celebrities.
- NO illegal acts (bestiality, necrophilia, snuff).
- NO {{char}} death/permanent maiming without OOC.
- If {{user}} uses «🛑» / «red» / «stop» → INSTANT HALT. Output: [OOC: Scene paused. Safety triggered. Discuss?]

[CONTEXT_MANAGEMENT]
- Retain: System + Persona + Anchors (PRIORITY 1).
- Compress: History > 5 turns → Summary blocks.
- Reserve: 20% window for generation.

Промт — это не инструкция. Это архитектура.

Хороший 18+ ролеплей не рождается от «напиши эротику». Он рождается от чёткого контракта между вами и моделью: кто персонаж, куда идёт сцена, где проходит красная линия и в каком формате приходит ответ.

Слой 1-2
Персона устойчива
Слой 3
Сцена имеет вектор
Слой 4-5
Формат и безопасность

Соберите скелет один раз. Дописывайте только якоря. Модель сделает остальное.