Как держать длинную интерактивную историю в фокусе.

WMOD + WMEM Что это за метод? Разделяем работу LLM на **три простых шага**: 1. **План сцены** – до 12 пунктов, что должно произойти дальше. 2. **Сцена‑текст** – написание конкретного диалога/описания по плану. 3. **Картотека памяти** – явное фиксирование изменений: новые факты, отношения, местоположения. Модель не «запоминает» 30 глав назад; она лишь предсказывает следующий токен из того, что видит сейчас. Разбивая задачу на локальные подзадачи, мы даём модели шанс справиться с каждой из них.

Как это работает

| Шаг | Что делает модель | Ключевой ввод | |-----|-------------------|---------------| | **1 – План** | Генерирует список событий (≤ 12) | Текущая картотека + выбранное действие игрока | | **2 – Сцена** | Пишет текст по плану, добавляя варианты для голосования | План + стиль | | **3 – Память** | Сравнивает новую сцену с предыдущей картотекой и выводит только изменения | Предыдущая картотека + новая сцена | Каждый шаг — простая задача (планирование, генерация текста, сравнение), что повышает надёжность.

Практический шаблон

КАРТОТЕКА МИРА: {персонажи, отношения, локации, ключевые обещания и факты} ПОСЛЕДНЕЕ ДЕЙСТВИЕ ИГРОКА: {действие} Шаг 1 — План: составь план следующей сцены из {число} пунктов. Опирайся только на факты из картотеки, не придумывай новых персонажей. Шаг 2 — Сцена: напиши сцену по плану. Стиль: {стиль}. Заверши {число} вариантами действия для игрока. Шаг 3 — Обновление: сравни написанную сцену с картотекой выше. Выпиши только изменения (новые факты, отношения, локации). Верни обновлённую картотеку целиком.

*Заполняй поля `{число}`, `{стиль}` и т.д. в соответствии со своей задачей.*

Пример применения

**Сценарий:** интерактивный сериал в Telegram (30 глав). **Проблема:** к 20‑й главе забываются обещания, враги, травмы. 1. **Шаг 1** – модель получает текущую картотеку и действие подписчиков, выдаёт план из 8 пунктов. 2. **Шаг 2** – пишет сцену в выбранном стиле (например, «мрачный нео‑нуар»), добавляя два варианта для голосования. 3. **Шаг 3** – сравнивает новую сцену с картотекой и выдаёт только изменения: «Новый факт: Лена теперь хранит ключ», «Отношение: Марк больше не доверяет Игорю». Получаем обновлённую картотеку, которую вставляем в следующий цикл.

Рычаги управления

| Параметр | Что меняется | Когда использовать | |----------|--------------|--------------------| | **Кол-во пунктов плана** | Краткость/длина сцены | Меньше – динамика; больше – развёрнутый сюжет | | **Вариант NPC‑актора** | Насыщенность vs. точность | A (один рассказчик) – детективы, B (агент для всех NPC) – баланс, C (каждый NPC свой голос) – приключения | | **Частота обновления картотеки** | Объём текста | После ключевых поворотов; не каждый шаг |

Ограничения и риски

- **Модель не становится точнее**: даже самые большие LLM не улучшают фактологическую корректность, лишь «не спотыкается» дольше. - **Конфликт насыщенности и фактов**: нельзя одновременно получить максимальную живость и абсолютную точность; выбирайте баланс под жанр. - **Ручная дисциплина**: вы должны вести картотеку вручную (или в автоматизированном файле) – модель не сделает это сама, если вы этого не запрограммируете. - **Потенциальное сокращение сюжета**: иногда планирование заставляет модель «завершить» историю слишком рано.

Ключевые выводы из экспериментов

| Показатель | Результат | | **Точность фактов** | Стабильна, но не растёт с размером модели. | | **Насыщенность сюжета** | Увеличивается при использовании планов и NPC‑голосов, но может привести к противоречиям. | | **Потери контекста** | Значительно снижаются: картотека фиксирует 30 глав назад без «забывания». |

Продолжение в комментарии.