3,583 papers
arXiv:2608.15654 75 16 авг. 2026 г. FREE

WMOD + WMEM: разделяй план, сцену и память, чтобы длинная история с LLM не рассыпалась

КЛЮЧЕВАЯ СУТЬ
Более мощная модель не делает историю точнее или интереснее — она просто дольше не затыкается и продолжает генерировать текст. Метод позволяет вести историю на 30-40 шагов без путаницы в фактах: кто кому что обещал, кто где находится, кто с кем враждует. Работа режется на три отдельных вызова модели: план сцены, сама сцена, фиксация изменений мира. Модель не тащит весь сюжет разом — она решает три простые локальные задачи вместо одной неподъёмной.
Адаптировать под запрос

TL;DR

Исследователи тестировали, как разные способы организации работы LLM влияют на качество долгих интерактивных историй — там, где каждый шаг меняет мир, и это важно помнить дальше. Механика в основе: перед тем как писать очередную сцену, отдельным шагом просят модель составить короткий план (до 12 пунктов), а после сцены — отдельным шагом фиксируют, что изменилось в мире (факты, отношения, состояния персонажей), и эту "картотеку" передают в следующий шаг.

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

Суть метода — не просить одну модель тащить всю историю разом, а разбить работу на три отдельных шага: (1) план сцены на несколько ходов вперёд, (2) сама сцена-текст, (3) явная фиксация изменений канона после сцены. Дополнительно можно решить, как модель обрабатывает действия персонажей: один рассказчик решает всё сам, один агент придумывает действия сразу для всех NPC, или у каждого NPC свой отдельный "голос" — это даёт рычаг между насыщенностью и предсказуемостью.


🔬

Схема метода

ШАГ 1 (опционально, план): 
Взять попытку игрока + текущее состояние мира 
→ Составить план сцены из ≤12 связанных пунктов (что должно произойти)

ШАГ 2 (основной, всегда): 
Написать сцену-продолжение по плану 
→ Текст сцены + варианты действий для игрока

ШАГ 3 (опционально, память): 
Сравнить новую сцену с прежним состоянием мира 
→ Список изменений: новые факты, изменившиеся отношения, состояния персонажей
→ Обновить "картотеку" мира для следующего шага

Отдельно — кто решает, что делают NPC (не связано с шагами 1-3, это про "актёров"): - Вариант A: один рассказчик сам придумывает действия всех NPC - Вариант B: один агент придумывает действия сразу для всех NPC - Вариант C: у каждого NPC свой отдельный проход через модель — свой "голос"

Каждый шаг можно выполнять либо в одном длинном промпте, либо как отдельные запросы — в исследовании это были отдельные вызовы модели.


🚀

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

Задача: Вы ведёте интерактивный сериал в Telegram — подписчики голосуют, что делает герой в каждой главе. История растягивается на 30-40 глав. Проблема: к 20-й главе вы (и модель) забываете, кто кому что обещал, кто с кем враждует, у кого какая травма.

Промпт (шаг 1 — план):

Ты — сценарист интерактивной истории. Вот текущая картотека мира:
{картотека: персонажи, отношения, факты, где кто находится}

Подписчики выбрали действие героя: {выбранное действие}

Составь план следующей главы: до 8 пунктов, что должно произойти. 
Учитывай текущие отношения и факты. Не придумывай новых персонажей.

Промпт (шаг 2 — сцена):

Напиши главу истории по этому плану:
{план из шага 1}

Стиль: {твой стиль — например, мрачный нео-нуар, как "Пиковая дама"}
Заверши двумя вариантами действия для голосования подписчиков.

Промпт (шаг 3 — память):

Сравни новую главу с прежней картотекой мира:
{прежняя картотека}
{новая глава}

Выпиши только ИЗМЕНЕНИЯ: новые факты, изменившиеся отношения, 
новые обещания, смену локаций. Не пересказывай главу.
Верни обновлённую картотеку целиком.

Результат: после трёх шагов у вас на руках — сцена для публикации и обновлённая картотека мира (короткий список фактов), которую вы вставляете в следующий цикл вместо того, чтобы надеяться, что модель сама помнит 20 глав назад. К главе 30 у вас будет живой "документ памяти", а не каша в голове модели.


🧠

Почему это работает

Модель, которая пишет длинный текст за один проход, держит в фокусе только то, что явно есть перед глазами в контексте. Она не умеет сама лезть назад и сверяться с фактом, установленным 40 сообщений назад — она попросту не "помнит" в человеческом смысле, она предсказывает следующий текст, опираясь на то, что видит сейчас.

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

Метод берёт одну сложную задачу ("веди историю 30 глав без противоречий") и режет её на три простые, для каждой из которых у модели есть шанс справиться. А "картотеку" фактов передают явно, текстом, а не надеются, что модель сама её удержит в голове.

Рычаги управления: - Число пунктов в плане (до 12 в оригинале) — уменьши для коротких динамичных сцен, увеличь для развёрнутых глав - Отдельный агент на каждого персонажа (вариант C) — сюжет живее и непредсказуемее, но выше риск противоречий. Используй, когда насыщенность важнее точности - Один рассказчик решает всё (вариант A) — надёжнее для канона, но скучнее. Используй для сюжетов, где важна точность (детектив, где улики должны сходиться) - Частота обновления картотеки — обновляй после каждой сцены с сюжетным поворотом, реже — после проходных сцен, чтобы не раздувать текст


📋

Шаблон промпта

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

КАРТОТЕКА МИРА:
{персонажи, их отношения, локации, ключевые обещания и факты}

ПОСЛЕДНЕЕ ДЕЙСТВИЕ ИГРОКА: {действие}

Шаг 1 — План: составь план следующей сцены из {число} пунктов. 
Опирайся только на факты из картотеки, не придумывай новых персонажей.

Шаг 2 — Сцена: напиши сцену по плану. Стиль: {стиль}. 
Заверши {число} вариантами действия для игрока.

Шаг 3 — Обновление: сравни написанную сцену с картотекой выше. 
Выпиши только изменения (новые факты, отношения, локации). 
Верни обновлённую картотеку целиком для следующего шага.

Подставь: {персонажи...} — твоя картотека мира (обновляется каждый раз), {действие} — что выбрал игрок/подписчики, {число} — количество пунктов плана и вариантов действия, {стиль} — тон истории.

🚀 Быстрый старт — вставь в чат:

Вот шаблон для ведения долгой интерактивной истории через LLM. 
Адаптируй под мою задачу: {твоя задача — например, "текстовая RPG-кампания 
для друзей" или "интерактивный сериал в Telegram"}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит про стиль истории, начальных персонажей и их отношения, формат голосования — потому что без этого не получится собрать первую "картотеку мира", с которой начнётся цикл план→сцена→обновление.


⚠️

Ограничения

⚠️ Размер модели не спасает: даже самые мощные модели не становятся точнее в фактах и не пишут интереснее — они просто дольше не "спотыкаются" и продолжают генерировать текст.

⚠️ Структура не гарантирует согласованность: добавление плана и памяти может обогатить сюжет, но не всегда улучшает точность в фактах — а иногда даже укорачивает историю, потому что модель раньше решает, что сюжет "закончен".

⚠️ Насыщенность и точность конфликтуют: нельзя получить максимум того и другого одновременно — придётся выбирать баланс под свою задачу (детектив требует точности, приключение — насыщенности).

⚠️ Метод требует ручной дисциплины: тебе придётся самому вести и передавать картотеку фактов между сообщениями (в отдельном файле или заметке) — модель сама этого делать не будет, если ты не встроишь это в цикл.


🔗

Ресурсы

WSE-bench (When Stories Evolve Benchmark). Авторы: Yuqi Chen, Sixuan Li, Yunfeng Cai, Xueai Li, Ka Man Yan, Ying Li. University of Hong Kong, Peking University, Tsinghua University, Beijing Institute of Mathematical Sciences and Applications (BIMSA).


📋 Дайджест исследования

Ключевая суть

Более мощная модель не делает историю точнее или интереснее — она просто дольше не затыкается и продолжает генерировать текст. Метод позволяет вести историю на 30-40 шагов без путаницы в фактах: кто кому что обещал, кто где находится, кто с кем враждует. Работа режется на три отдельных вызова модели: план сцены, сама сцена, фиксация изменений мира. Модель не тащит весь сюжет разом — она решает три простые локальные задачи вместо одной неподъёмной.

Принцип работы

Модель не помнит в человеческом смысле — она предсказывает следующий текст на основе того, что видит перед собой прямо сейчас. Дай ей всё сразу (план + текст + память) — она держит в фокусе только явное. Раздели на три шага — для каждого шанс справиться выше. Картотека фактов передаётся текстом между шагами — а не хранится где-то в голове модели.

Почему работает

Причина проста: за один вызов модель отлично справляется с узкой задачей — составить план из 8 пунктов, написать сцену по готовому плану, сравнить два текста и найти разницу. Но требовать разом планировать, писать красиво и не путать факты — это три разные задачи в одной голове. Точность фактов и насыщенность сюжета тянут в разные стороны — увеличиваешь одно, теряешь другое, и это не плавный компромисс, а жёсткий выбор.

Когда применять

Long-form интерактивные истории → конкретно для RPG-кампаний, интерактивных сериалов, world-building проектов, особенно когда история растягивается за 15-20 глав и модель начинает путать отношения персонажей. Не подходит для коротких историй в 3-5 сообщений — там память модели и без картотеки не успевает съехать.

Мини-рецепт

1. Заведи картотеку: список персонажей, отношений, локаций и обещаний — простой текстовый файл или заметка.
2. Шаг план: перед каждой сценой попроси модель составить план из 6-8 пунктов, опираясь только на картотеку.
3. Шаг сцена: напиши сцену по готовому плану отдельным запросом — не смешивай с планированием.
4. Шаг память: сравни новую сцену со старой картотекой, выпиши только изменения, обнови картотеку целиком.
5. Выбери баланс: для детектива — один рассказчик решает всё (точность важнее), для приключения — отдельный голос каждому NPC (насыщенность важнее).

Примеры

[ПЛОХО] : Продолжи историю, помни всё что было раньше и не путай персонажей
[ХОРОШО] : Вот картотека мира: {Аня враждует с Марком с главы 3, у героя есть долг перед трактирщиком}. Составь план следующей главы из 6 пунктов, опираясь только на эти факты. Не придумывай новых персонажей.
Источник: When Stories Evolve: Benchmarking LLM Storytelling Across Agent Architectures in Open-Ended World Simulations (WSE-bench)
ArXiv ID: 2608.15654 | Сгенерировано: 2026-08-18 05:31

Проблемы LLM

ПроблемаСутьКак обойти
Модель теряет факты в длинном контекстеМодель не "помнит" события 20-30 шагов назад в человеческом смысле — она просто предсказывает текст по тому, что видит перед собой прямо сейчас. Через десятки шагов диалога или истории она путает кто кому что обещал, где кто находится, какие отношения между персонажами. Это ломается даже если ты всё делал правильно — контекст просто слишком длинныйВеди явную текстовую "картотеку фактов" отдельно от диалога: список персонажей, отношений, обещаний, локаций. После каждого шага проси модель явно зафиксировать изменения и обновить картотеку. Передавай эту картотеку заново в начале каждого следующего запроса — не надейся, что модель сама её удержит

Методы

МетодСуть
Три отдельных шага вместо одного большого запросаРаздели сложную задачу на простые локальные подзадачи: (1) составь короткий план из до 12 пунктов — что должно произойти дальше, (2) напиши сцену/текст по этому плану, (3) отдельным запросом сравни новый текст со старой картотекой фактов и выпиши только изменения. Каждый шаг — отдельный вызов модели. Почему работает: модель хорошо справляется с узкой конкретной задачей за один проход (спланировать, написать по плану, найти разницу между двумя текстами), но плохо справляется, когда всё это нужно делать одновременно и ещё удерживать в голове историю на 30 шагов. Когда применять: любой длинный проект с LLM, где важно не терять детали — ведение сюжета, RPG-кампания, консультационный проект, планирование. Когда не работает: короткие однократные задачи, где нет накопления состояния
Выбор архитектуры ролей для баланса живости и согласованностиРеши явно, кто решает за второстепенных персонажей: (A) один рассказчик придумывает действия всех сразу — надёжнее для канона, но скучнее; (B) один отдельный агент придумывает действия для всех персонажей одним проходом — промежуточный вариант; (C) каждый персонаж получает свой отдельный вызов модели, свой "голос" — сюжет живее и непредсказуемее, но выше риск противоречий. Почему работает: централизованное решение проще держать согласованным (меньше независимых источников решений), распределённое даёт больше разнообразия за счёт независимости голосов. Когда применять A: детектив, юридический кейс, всё где критична точность деталей. Когда применять C: приключение, драма, всё где важна живость и неожиданность сюжета
📖 Простыми словами

When Stories Evolve: BenchmarkingLLMStorytelling AcrossAgentArchitectures in Open-Ended World Simulations

arXiv: 2608.15654

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

Это как пытаться собрать гигантский пазл на 5000 деталей, имея перед глазами только пять соседних кусочков. Вы вроде бы стыкуете их правильно, но через час обнаруживаете, что на одной стороне стола у вас море, а на другой — лес, и они никак не сходятся посередине. Формально всё по правилам, но цельной картинки нет, потому что вы забыли, что начали собирать полчаса назад. Исследователи предложили перестать надеяться на авось и заставить модель вести бортовой журнал.

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

Хотя тестировали это на симуляциях миров и сторителлинге, принцип универсален для любой сложной работы с данными. Это сработает в автоматизации техподдержки, где нужно помнить историю тикета за месяц, или в юридических чат-ботах, которые анализируют цепочку правок в контракте. Вместо того чтобы скармливать модели всю простыню текста, ей дают структурированную выжимку фактов, превращая хаотичный поток слов в четкую базу знаний.

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

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с