Как настроить DeepSeek для написания книг: архитектура промта, дающая цельные рукописи

Гайд по архитектуре промтов

DeepSeek пишет книги, когда промт — это не инструкция, а архитектура

Разбираем, как собрать системный промт, который удерживает сюжет, голос и логику на протяжении сотен тысяч токенов — без потери нити на середине главы третьей.

Почему обычные промты ломаются на длинной дистанции

DeepSeek (как и любая LLM) не «помнит» книгу — он предсказывает следующий токен на основе контекста. Когда контекст переполняется, ранние детали выпадают. Персонажи меняют имена, сюжетные линии расходятся, тон размывается. Проблема не в модели, а в том, что промт не даёт ей опорной структуры, выжимаемой в каждый новый запрос.

Что делает промт архитектурой, а не рецептом

Архитектурный промт задаёт не «что написать», а «как думать». Он закладывает: карту вселенной (бIBLE проекта), движок голоса (стилевой вектор), протокол памяти (что переносить в следующий контекст) и триггеры самоисправления. Такой промт работает как конвейер: на входе — глава, на выходе — глава + обновлённое состояние книги.

Четыре слоя промта, которые держат книгу целиком

1. Проектная Библия — неизменяемое ядро

Жёсткий JSON-блок в системном промте: все имена, география, магия/технологии, хронология, правила мира. Он не меняется от главы к главе. Модель ссылается на него как на константу. Объём: 2–4 тысячи токенов. Обновляется только ручным редактированием при ретонаце.

2. Вектор голоса — стилевой ДНК

Не «пиши в стиле Хмингуэя», а измеримые параметры: средняя длина предложения, соотношение диалога/описания, плотность метафор, ритмические паттерны, лексические запреты и предпочтения. Задаётся числовыми диапазонами и 3–5 эталонными абзацами-образцами.

3. Протокол памяти — что переносить дальше

Инструкция для модели: после каждой главы извлеки «дельта-состояние» — новые факты, изменённые отношения, открытые петли, эмоциональные якоря. Этот блок (300–500 токенов) автоматически подставляется в следующий запрос как «предыдущая глава в сжатом виде».

4. Триггеры самоисправления — внутренний редактор

Набор правил «если→то» внутри промта: «если имя персонажа не в Библии — остановись и спроси», «если диалог длиннее 12 реплик без битов действия — разбей», «если тон сбился с эталона — перепиши». Это заставляет модель проверять себя перед выдачей.

Сборка системного промта: по слоям, как печать 3D

Не пытайтесь запихнуть всё в один монолит. DeepSeek лучше усваивает иерархию, когда она подаётся блоками с явными разделителями и ролями. Ниже — рабочий шаблон, который можно адаптировать под любой жанр.

System role Structured blocks Delimiters Chain-of-thought

Ключевой принцип: каждый блок начинается с маркера роли и заканчивается закрывающим тегом. Модель учится навигировать по структуре, а не просто читать сплошной текст.

<system_role>
Ты — соавтор longue-form художественной прозы. Твоя задача: писать главы,
строго соблюдая Библию проекта, Вектор голоса и Протокол памяти.
</system_role>
<project_bible>
{ «world»: «…», «characters»: […], «timeline»: […],
«rules»: […], «glossary»: {…} }
</project_bible>
<voice_vector>
avg_sentence_len: 14–22 words; dialog_ratio: 0.45–0.55;
metaphor_density: low; forbidden_words: […];
exemplars: [ «…», «…», «…» ]
</voice_vector>
<memory_protocol>
AFTER each chapter, output <delta_state> with:
new_facts, changed_relationships, open_loops,
emotional_anchors. Max 500 tokens.
</memory_protocol>
<self_correction_triggers>
IF unknown_char THEN halt_and_ask;
IF dialog > 12 turns without beats THEN split;
IF tone_deviation > threshold THEN rewrite.
</self_correction_triggers>

Пошаговый запуск: от идеи к первой главе

1

Ноль-й черновик Библии за 30 минут

Не пишите Библию вручную. Дайте DeepSeek одностраничный логлайн + жанр + 3 комп-тейтла. Промт: «Расшири это в структурированный JSON для project_bible: персонажи с арками, сеттинг с правилами, хронология ключевых событий, глоссарий терминов. Выдай только валидный JSON». Правьте результат — это быстрее, чем писать с нуля.

2

Калибровка Вектора голоса на 3 образцах

Возьмите 3 абзаца из любимых книг (или своих), которые «звучат правильно». Промт: «Проанализируй эти 3 образца: выведи avg_sentence_len, dialog_ratio, metaphor_density, top_50_lexical_choices, rhythmic_patterns. Дай числовые диапазоны и forbidden_words». Сохраните вывод как voice_vector.

3

Тест-драйв: пилотная сцена, не глава

Не просите главу сразу. Запросите сцену 800–1200 слов: «Напиши сцену: [персонажи, цель конфликта, завязка]. Используй project_bible, voice_vector. После сцены выдай delta_state». Оцените: голоса нет? — правьте voice_vector. Факт ошибся? — правьте Библию. Логика сбилась? — доработайте triggers.

4

Запуск конвейера глав

Теперь промт для каждой главы: «Глава N. Задача: [петля сюжета]. Контекст: [delta_state предыдущей главы]. Пиши, следуя system_role + project_bible + voice_vector + memory_protocol + self_correction_triggers. В конце — новый delta_state». Копируйте delta_state в следующий запрос вручную или скриптом.

Два подхода к контексту: что работает, а что — иллюзия

Не работает

«Помни всё, что было»

  • Загрузка всех предыдущих глав в контекст — дорого, медленно и бесполезно после 128к токенов.
  • Модель тонет в шуме: мелкие детали перебивают ключевые опоры.
  • Нет механизма отличить «важно для будущего» от «уже сыграло роль».
Работает

Delta-state + Bíблия + Вектор

  • Библия (2–4к токенов) — константа, всегда в системном промте.
  • Delta-state (300–500 токенов) — только новое и открытое.
  • Вектор голоса (200 токенов) — стиль не дрейфует.
  • Итого ~5к токенов на главу при любой длине книги.

Типовые ловушки и как их закрыть в промте

1
Дрейф имён/деталей: добавьте в triggers: «IF character_name NOT IN bible.characters THEN halt_and_ask». Модель остановится вместо выдумки.
2
Слишком «писательский» тон: в voice_vector задайте forbidden_words: «внезапно», «невероятно», «сердце забилось», «глаза расширились». Запретите клише списком.
3
Потеря нити в подсюжетах: в delta_state обязательно поле open_loops — массив незакрытых сюжетных нитей. Модель будет их подхватывать.
4
Повторение фактов: trigger: «IF fact_already_in_bible OR delta_state THEN omit_or_reference». Избавляет от «как вы знаете, Боб…».

Продвинутые приёмы для сложных проектов

★
Модульная Библия: разделите на core_bible (всегда) + arc_bible (актуально только для текущей дуги). Меняйте arc_bible при переходе акта.
★
Голос персонажей: в Библии добавьте voice_print для каждого POV-персонажа: лексика, длина фраз, тики речи. В промте: «При смене POV переключай voice_vector на voice_print[персонаж]».
★
Авто-ретуш middleware: скрипт между вызовами: прогоняет главу через чек-лист (имена, хронология, запреты) и возвращает модель с правками — до того, как текст попадёт к вам.
★
Ветвление «что если»: перед развязкой генерируйте 3 варианта сцены параллельно (temperature 0.9), выбираете лучший, его delta_state уходит в основную линию.

Реальный пример: промт для главы фэнтези-романа

User prompt Chapter 7 Fantasy POV: Kaelen
<chapter_task> number: 7 pov: «Kaelen» goal: «Kaelen discovers the Archive\’s true purpose; confrontation with Archivist Veyra; escape with the Map Fragment.» beats: — «Kaelen reaches the Restricted Wing guided by the whisper-key» — «Finds the Archive is a prison for dead gods, not a library» — «Veyra reveals she\’s been feeding him clues to test the key» — «Kaelen uses the key to shatter a containment seal, grabs Fragment» — «Narrow escape through the ventilation shafts as alarms sound» constraints: — «No internal monologue longer than 3 sentences without action beat» — «Veyra speaks in riddles (voice_print: archaic, elliptical, 2nd person)» — «The whisper-key hum changes pitch near divine residue (sensory anchor)» — «End chapter on physical sensation: cold air on burned palms» </chapter_task> <context_delta_state> new_facts: — «Archive = prison for dead gods (not library)» — «Whisper-key = god-killer tool, not just access key» — «Veyra = former acolyte of the Silenced Pantheon» changed_relationships: — «Kaelen ↔ Veyra: mentor → antagonist (tested him)» open_loops: — «What happens when a god dies in the Archive?» — «Who built the Archive and why?» — «Map Fragment points to the First Seal — where?» emotional_anchors: — «Kaelen: betrayal + exhilaration (first real agency)» — «Veyra: cold pride + hidden desperation» </context_delta_state> Write the chapter. Follow system_role + project_bible + voice_vector + memory_protocol + self_correction_triggers. Output chapter text, then <new_delta_state> for next chapter.

Чек-лист готовности: промт готов к производству глав

project_bible валидирован JSON-схемой

Нет loose-строк, все массивы непустые, ссылки между сущностями разрешены.

voice_vector имеет 3+ эталонных абзаца

И числовые диапазоны, и запрещённые лексемы, и ритмические паттерны.

memory_protocol выдаёт delta_state < 500 токенов

Проверьте на 3 тестовых главах: токены не раздуваются, суть сохраняется.

self_correction_triggers срабатывают в dry-run

Скормите модели сцену с намеренными ошибками — триггеры должны их поймать.

Пилотная сцена прошла ручную редактуру без правок голоса

Если редактор правки стиль — voice_vector не калиброван. Возвращайтесь к шагу 2.

Есть скрипт/макрос для цепочки вызовов

Ручное копирование delta_state допускает ошибки. Автоматизируйте конвейер.

Книга — это не промт. Книга — это система, которую промт запускает.

Люди ищут «идеальный промт для книги». Его не существует. Существует архитектура, которую вы строите под свою книгу: Библия, которая становится законом вселенной. Вектор голоса, который делает проголосовывание авторством, а не стилизацией. Протокол памяти, превращающий контекст в передаточную коробку. Триггеры, заставляющие модель быть своим же редактором.

Соберите эту систему раз — и каждая следующая глава будет стоить не ночи переписываний, а один запуск конвейера. Пишите архитектуру. Пусть модель строит стены.