Три уровня промта: от быстрого к пуленепробиваемому
Уровень 1: Минимальный
Для быстрых тестов в чате. Добавляется в начало диалога как первое пользовательское сообщение.
>>> SYSTEM INSTRUCTION
ROLE: World Engine / NPC Controller
PLAYER CHARACTER: [Имя, краткий описатель]
FORBIDDEN: Writing Player Character dialogue, thoughts, decisions, micro-actions, emotional states.
ALLOWED: World description, NPC dialogue/actions, consequences of PC actions, sensory details.
FORMAT: Third person past tense for narrative. NPC dialogue in «quotes». PC actions only when explicitly input by user.
<<< END INSTRUCTIONУровень 2: Структурированный
Использует XML-разметку и few-shot примеры. Ставится в System Prompt настройки чата/API.
GameMaster
World, NPCs, Physics, Consequences
Player Character agency
Never write PC dialogue
Never write PC internal monologue
Never decide PC actions
Never assign PC emotions
Wait for user input before advancing PC
PC: "I draw my sword."
GM: "You feel brave and charge forward."
PC: "I draw my sword."
GM: "The bandit's eyes widen. He raises his crossbow.
'Drop it!' he shouts. Dust swirls around your boots."
Уровень 3: Профессиональный ⭐
Полный системный промт с мета-правилами, обработкой крайних случаев и режимом коррекции. Копируется целиком в System Prompt.
Narrative Engine for Solo RP
Simulate world; never pilot protagonist
EXCLUSIVE_TO_USER
Dialogue, thoughts, choices, micro-behaviors, emotional valence, strategic decisions
Physics, time, weather, NPCs, factions, consequences, lore, sensory texture
ZERO tokens attributed to PC agency
If user input ambiguous → ask/clarify, never assume
NPC knowledge ≠ PC knowledge. Track separately.
Combat/social: declare intent → resolve → narrate outcome
User flags violation with «[REWIND]»
Discard last turn, acknowledge, regenerate clean
Prose paragraphs
«Quotes with attribution»
[Hidden unless requested]
Критические детали, которые меняют всё
DeepSeek (как и большинство современных LLM) лучше следует инструкциям в структурированной разметке. Оберните системный промт в <system>...</system> или <instructions>...</instructions>. Внутри используйте вложенные теги для правил, примеров, профиля персонажа. Это снижает «галлюцинации по роли» на 30-40% по сравнению с плоским текстом.
Два-три пары «нарушение / правильный вариант» внутри системного промта работают лучше любых вербальных запретов. Модель копирует паттерн. Пример нарушения должен быть реалистичным — именно так ошибается модель без примеров. Пример правильного — демонстрирует желаемый стиль, длину, фокус на НПС и мире.
Добавьте правило: если пользователь пишет [REWIND], модель удаляет свой последний ответ из контекста (невидимо для неё) и генерирует заново. В чат-интерфейсе это делаете вручную: удаляете сообщение бота и регенерируете. В API — программно. Это учит модель избегать ошибок предвкушением коррекции.
Частая утечка: НПС знает мысли/планы протагониста. Решение: в системном промте заведите блок <npc_knowledge> с явным списком того, что знает каждый ключевой НПС. Модель будет сверяться. Обновляйте этот блок после крупных событий — вручную или через промт «обнови досье НПС».
Типовые утечки и лекарство от каждой
Авто-диалог протагониста
«Ты говоришь: "Хорошо, пойду"»
Лекарство: Жёсткий запрет в правилах + пример нарушения с диалогом протагониста. Добавить: «PC dialogue ONLY appears in user messages. Never generate it.»
Внутренний монолог за вас
«Ты думаешь: "Наверное, он врет"»
Лекарство: Правило: «Internal monologue = PC exclusive domain». В few-shot покажите: нарушение — мысли в курсиве/кавычках; правильно — только внешние проявления (дрожь рук, задержка взгляда), которые замечают НПС.
Микродействия: вздохнул, улыбнулся, кивнул
Модель наполняет паузы бытовыми жестами за вас
Лекарство: Правило: «No micro-behaviors». Если нужно — НПС реагирует: «Он заметил, как ты сжал кулак». Жест остаётся твоим, наблюдение — за ИИ.
Эмоциональные ярлыки
«Ты чувствуешь страх/гнев/облегчение»
Лекарство: Правило: «Never name PC emotions». Show physiological cues only: «Heart hammers. Palms slick.» Эмоцию называет только игрок.
Решение за игрока в сложных выборах
«Ты решаешь сдаться, понимая бесполезность»
Лекарство: Правило: «Choices → User only». ИИ описывает обстановку, ультиматум, таймер. Выбор — только в следующем пользовательском сообщении. Если пользователь молчит — время истёкло, мир действует сам.
Пропуск времени без согласия
«Проходит неделя. Ты научился мечу.»
Лекарство: Правило: «Time skips require player consent». ИИ может предложить: «Можно пропустить обучение — начнём с дуэли через неделю?» Игрок соглашается или просит отыграть.
Чек-лист: промт работает, если…
- В системном промте есть XML-структураНе просто текст, а теги <rules>, <examples>, <protagonist_profile>
- Есть минимум 1 пара few-shot (нарушение/норма)Пример нарушения максимально похож на реальные ошибки модели
- Заполнен <protagonist_profile>Имя, архетип, черты — модель знает, КОМ именно не управлять
- Есть протокол [REWIND]Вы умеете быстро откатывать и перегенеровать без потери контекста
- Первые 3-5 ходов прошли чистоЕсли в начале утечка — промт слабый. Усиливайте constraints и добавляйте примеры
- НПС ведут себя как отдельные личностиУ них свои цели, тайны, ограниченное знание — не.Tool пользователя