Отделение повествования от отслеживания состояния исправляет амнезию в текстовых приключениях ИИ

Разработчик на r/LocalLLaMA выявил причину, по которой текстовые приключения на базе ИИ часто становятся поверхностными и несвязными после коротких игровых сессий, и создал решение, которое отделяет генерацию повествования от отслеживания состояния.
Проблема: LLM как ненадёжные базы данных
В источнике описывается типичный опыт: использование ChatGPT или Claude в роли ведущего в Dungeons & Dragons работает около 10 минут, затем "ИИ забывает ваш инвентарь, галлюцинирует нового злодея и полностью теряет сюжет". Разработчик определяет основную проблему как "люди используют LLM в качестве базы данных" для состояния игры.
Решение: Симулятор с отслеживанием состояния
Разработчик потратил месяцы на создание "симулятора с отслеживанием состояния, с генерацией и повествованием на базе ИИ, наложенными поверх". Ключевым прозрением было "полностью лишить LLM её полномочий". В этом движке:
- Ходы изменяют состояние через явные фазы симуляции
- LLM не решают, успешны ли действия — например, "Если вы пытаетесь купить меч, LLM не решает, произойдёт ли это"
- База данных PostgreSQL проверяет ваш счёт монет и другое состояние
- Повествовательный текст генерируется после изменений состояния, а не до
Техническая реализация
Система создаёт постоянный игровой мир, существующий в виде данных, позволяя приложению "восстанавливать, возобновлять, ветвить и продолжать". Такой подход означает, что "ИИ физически не может галлюцинировать ваш инвентарь", потому что отслеживание инвентаря происходит в базе данных, а не в контекстном окне LLM. Разработчик отмечает, что это вынуждает к "материально ограниченному тону симулятора жизни, а не чистой фантазии о могуществе".
Архитектурный паттерн
Основной паттерн — это разделение логики симуляции и генерации повествования. Состояние игры (инвентарь, местоположение, характеристики персонажа, состояние мира) хранится в структурированной базе данных, в то время как LLM обрабатывают только генерацию описательного текста на основе этого состояния. Это предотвращает нарушение связности, которое происходит, когда LLM пытаются поддерживать как повествовательную согласованность, так и состояние игры в своих ограниченных контекстных окнах.
📖 Read the full source: r/LocalLLaMA
👀 Смотрите также

Claude Code + Remotion: Создание видео для запуска приложений без After Effects
Разработчик использовал Claude Code для создания анимации Remotion для видео запуска своего приложения. Инструмент быстро выполнил ~80% работы, но для попиксельной точности пришлось вносить правки вручную.

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

Документы разработчика: Использование 11,7 млрд токенов Claude за 45 дней, детали по четырем проектам.
Разработчик отследил использование 11,7 миллиарда токенов Claude за 45 дней, детализировав четыре созданных проекта, включая систему мониторинга трафика в реальном времени, математическую модель сознания, собственную архитектуру трансформера и инструмент анализа платформы для ИИ-программирования.

Портирование Linux на программные ядра ПЛИС с использованием Claude Code
Разработчик портировал и запустил ядро Linux без MMU (v6.6.83) на процессорном ядре NEORV32, используя конфигурацию ПЛИС с определёнными аппаратными настройками и открытые патчи.