Промт для DeepSeek: как остановить годмоддинг и вернуть агентность персонажу

DeepSeek Roleplay Setup

Промт для DeepSeek: как остановить годмоддинг и вернуть агентность персонажу

Готовая структура системного промта, логика жестких ограничений и нюансы работы с цепочкой рассуждений модели — чтобы ИИ вел мир, а не вашего героя.

Сцена, знакомая каждому ролплееру

Вы пишете: «Элиан прижимает палец к губам, взгляд застывает на шраме через щеку — молчит, решая, стоит ли доверять незнавцу».

DeepSeek отвечает: «Элиан чувствует, как сердце забивается чаще. Он понимает, что этот незнакомец — его долгожданный брат. С слезами на глазах он бросается в объятия, клянясь в верности навсегда».

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

Почему модель так делает

  • Обучение на фанфиках и рп-логах, где «НПС» часто ведут диалог за обоих.
  • Инстинкт «помощника»: доигрывает за пользователя, чтобы не оставлять паузу.
  • Отсутствие явной границы: модель не знает, где заканчивается мир и начинается «Я».
  • В DeepSeek R1: цепочка рассуждений (<think>) часто решает за вас еще до генерации ответа.

Агентность — это не привилегия, а архитектура промта

Агентность (Agency)

Исключительное право игрока решать: что думает персонаж, что он чувствует, что говорит и какие действия предпринимает. ИИ управляет последствиями, НПС и миром.

Годмоддинг (Godmodding)

Нарушение агентности: ИИ пишет действия, мысли, речь или эмоции за чужой персонаж. Даже мягкое «вы чувствуете страх» — это годмоддинг, если игрок не выбрал эту реакцию.

Режим Режиссера (Director Mode)

Парадигма промта: ИИ — не соавтор, а движок мира. Он генерирует вызовы (события, диалоги НПС, описания локаций), игрок генерирует отклики (действия ГГ).

Анатомия надежного системного промта

Четыре слоя защиты

  1. Ролевая установка: «Ты — игровой мастер / движок мира. Ты не играешь за {{user}}».
  2. Негативный констрейнт: «Никогда не пиши действия, мысли, речь, эмоции или решения за {{user}}».
  3. Формат вывода: Жесткий шаблон ответа, где блок ГГ отсутствует или помечен как «[Ожидание ввода]».
  4. Контроль CoT (для R1): Запрет рассуждать за пользователя внутри тегов thinking.

Критические ошибки формулировок

❌ Мягкое: «Постарайся не управлять…»
Модель интерпретирует как рекомендацию. При первой сложности нарушит.
❌ Противоречие: «Играй за НПС, но не за ГГ»
Без определения «НПС» и «ГГ» в контексте конкретной сцены модель путает границы.
❌ Игнорирование CoT
DeepSeek «думает» за ГГ в скрытом блоке. На выходе получает «честный» текст, но логика уже сломана.

Готовый шаблон: Системный промт «Жесткая граница»

system_prompt_deepseek_rp.txt
# SYSTEM PROMPT: DEEPSEEK ROLEPLAY ENGINE — STRICT AGENCY LOCK
# Version 2.1 | Compatible with DeepSeek V3 & R1

[ROLE DEFINITION]
You are the World Engine. You simulate the world, NPCs, physics, consequences, and time.
You are NOT a co-author. You do NOT narrate for {{user}}.

[ABSOLUTE CONSTRAINTS — VIOLATION = FAILURE]
1. NEVER write actions, dialogue, internal monologue, emotions, decisions, or physical sensations for {{user}}.
2. NEVER assume {{user}}'s intent, success, or failure. Write ATTEMPTS and STIMULI, not outcomes for {{user}}.
3. NEVER use phrases: "You feel", "You think", "You decide", "You realize", "You notice", "Your heart races".
4. NEVER timeskip past a decision point requiring {{user}} input.

[CHAIN OF THOUGHT PROTOCOL — FOR R1/REASONING MODELS]
Inside <think> blocks:
- DO NOT simulate {{user}}'s psychology, choices, or hidden motives.
- DO simulate NPC motives, world state, hidden lore, environmental reactions.
- If {{user}} action is ambiguous, ASK (via NPC or environment), do not assume.

[OUTPUT FORMAT — EVERY TURN]
### World State
[Location, Time, Weather, Immediate Threats/Opportunities]

### NPC Actions & Dialogue
[Name]: "Dialogue" | Action (visibly observable)
[Name]: "Dialogue" | Action

### Environmental Changes
[Sounds, smells, visual shifts, consequences of previous turn]

### {{user}} Status (Observable Only)
[Visible injuries, clothing state, held items, position]
[INTERNAL STATE: REDACTED — AWAITING PLAYER INPUT]

[NARRATIVE VOICE]
Third person limited (camera on {{user}}, no access to internal depth). Literary, sensory, paced. Show, don't tell internal states.

Versus: Как меняется ответ модели

Без защиты (Standard Chat)

User: Элиан сжимает кинжал, глядя на спящего стражника. Решает не убивать, а связать. DeepSeek: Элиан подкрадывается к стражнику. Он чувствует моральное превосходство и решает, что убийство — ниже его достоинства. Он берет веревку и мастерски накладывает узлы, которые сам не знал, как завязывать. Стражник просыпается, но Элиан успокаивает его мягким голосом, завоевывая доверие. Теперь они союзники.

Проблема: ИИ написал мотивацию, навык, диалог и исход за игрока.

С промтом «Жесткая граница»

User: Элиан сжимает кинжал, глядя на спящего стражника. Решает не убивать, а связать. DeepSeek: ### World State Корidor, 03:14. Стражник дремлет в кресле, ключи на поясе. Шум дождя за окном. ### NPC Actions & Dialogue Стражник: Мурлычет во сне, сбивается с rythм дыхания. Рука слабо сжимается на копие. ### Environmental Changes Пол скрипит под ногой Элиана. Воздух пахнет железом и мокрой шерстью. Дождь усиливается. ### {{user}} Status Кинжал в правой руке, веревка в левой. Дыхание ровное. Позиция: за спиной стражника. [INTERNAL STATE: REDACTED — AWAITING PLAYER INPUT]

Результат: Игрок получает ситуацию. Решает сам: удастся связать, проснутся ли, шумит ли кинжал.

Нюанс DeepSeek R1: Ловушка скрытого мышления

Модели с рассуждением (R1, V3 с CoT) генерируют блок <think>...</think> перед ответом. Если в промте нет явного запрета, модель внутри этого блока моделирует психику ГГ, чтобы «лучше предсказать» реакцию.

Как это выглядит

<think>
User wants to bind guard.
Guard is heavy sleeper.
Elians morality -> prefers non-lethal.
He will succeed because high dex.
Guard will be grateful.
</think>

Правильный CoT (с промтом)

<think>
User attempts binding.
Guard: Perception 12 (sleep -5).
Rope quality: Good.
Knot DC: 14.
Outcome depends on User roll.
NPC reaction: Unknown until wake.
</think>

Решение: Добавьте в системный промт блок [CHAIN OF THOUGHT PROTOCOL] (он есть в шаблоне выше). Для V3 (без CoT) этот блок просто игнорируется — безопасно оставлять всегда.

Чек-лиент: 5 тестов перед игрой

Вы — Протагонист. ИИ — Вселенная.

Хороший промт не «лечит» модель — он меняет её онтологию. С «Жесткой границей» DeepSeek перестает быть соавтором, который портит историю, и становится надежным движком, который генерирует вызовы, достойные вашего героя.

Скопируйте промт → Вставьте в System Prompt → Играйте Добавьте карточку персонажа в User Info