Почему все существующие фронтенды для RP бесят
Вы хотите писать. Играть в ролевые игры с AI. Не отправлять каждый свой диалог в облако OpenAI. Не платить OpenRouter за каждый токен. Не возиться с кривыми плагинами SillyTavern, которые ломаются после каждого обновления.
Проблема в том, что все существующие инструменты созданы либо для хакеров, либо для чайников. Первые требуют знаний Python, вторые — терпения к багам. Aventura — это попытка сделать правильно. Opensource фронтенд на AGPL 3, который работает с вашими локальными моделями, помнит контекст на 128K токенов и автоматически создает лорбук. Без подписок. Без облаков. Без головной боли.
Если вы ждете красивого drag-and-drop интерфейса как в коммерческих продуктах, можете закрывать статью. Aventura — инструмент для тех, кто ценит контроль над данными больше, чем анимации кнопок.
Что Aventura умеет делать, а другие — нет
Здесь три киллер-фичи, ради которых стоит потратить час на настройку.
- Долгосрочная память (Long-Term Memory) — система, которая выжимает из контекстного окна модели максимум. Она не просто хранит последние 20 сообщений. Она анализирует диалог, выделяет ключевые факты о персонажах, местах, событиях и упаковывает это в сжатые summary. Эти summary потом подставляются в промпт, когда контекст переполняется. В итоге модель помнит, что произошло 50 сообщений назад, даже если технически это уже вылетело из контекста.
- Автоматический лорбук (Lorebook) — вместо того, чтобы вручную прописывать каждый факт о вашем мире, Aventura может анализировать ваши заметки, документы, даже переписки и автоматически создавать структурированный лорбук. Персонажи, локации, предметы — все попадает в базу знаний, которая активируется по ключевым словам во время диалога.
- Анти-слоп автоматизация (Anti-SLOP) — SLOP (Stupid Low-effort Output) это когда модель начинает генерить воду, повторяться, терять нить сюжета. Aventura отслеживает такие моменты и автоматически корректирует промпт, добавляя напоминания о целях, стиле, тоне. Это как авто-редактор, который сидит за плечом у модели и тычет ее палкой, когда она начинает буксовать.
Железо и софт: что нужно перед установкой
Aventura — это веб-приложение на Node.js. Оно не запускает модели само. Оно подключается к уже работающему AI-бэкенду. Поэтому вам нужны две вещи:
- Сервер с локальной моделью — Ollama, llama.cpp с серверным режимом, Text Generation WebUI, KoboldCpp. Что угодно, что предоставляет API совместимый с OpenAI или Kobold.
- Машина для запуска Aventura — это может быть тот же компьютер, где работает модель, или отдельный. Главное, чтобы они видели друг друга по сети.
| Компонент | Минимальные требования | Рекомендации |
|---|---|---|
| Процессор | Любой x86-64 или ARM | Ядер больше — лучше для параллельных запросов |
| Оперативная память | 8 ГБ | 16 ГБ+, особенно если модель грузится в RAM |
| GPU | Не обязателен | NVIDIA с 6+ ГБ VRAM для ускорения инференса |
| Место на диске | 2 ГБ для Aventura | + 10-40 ГБ для моделей (зависит от размера) |
Если вы планируете развернуть серьезную систему, посмотрите мою статью про построение локального AI-сервера. Там есть детали по выбору железа, Proxmox и Docker.
1Ставим Aventura: клонируем, настраиваем, запускаем
Тут все просто. Открываем терминал и выполняем четыре команды. Предполагаем, что у вас уже установлены Git и Node.js (версия 18 или выше).
Не используйте sudo для npm install. Если система требует прав администратора — значит, у вас криво настроены права на папки. Исправьте это, иначе потом будут проблемы с запуском.
Клонируем репозиторий, ставим зависимости, копируем конфиг-пример и запускаем. Сервер по умолчанию слушает на порту 3000. Открываем браузер, переходим на http://localhost:3000. Видим интерфейс.
Если видите ошибку про отсутствующий модуль — значит, пропустили шаг с установкой зависимостей. Вернитесь и выполните npm install без ошибок.
2Подключаем локальную модель: Ollama, llama.cpp и другие
Теперь нужно сказать Aventura, где искать вашу модель. Идем в настройки (Settings) → AI Configuration. Видим поле "API Endpoint".
Если вы используете Ollama, то адрес будет http://localhost:11434/v1. Для llama.cpp в серверном режиме — http://localhost:8080/v1. Для Text Generation WebUI — http://localhost:5000/v1. Главное — убедиться, что бэкенд запущен и отвечает по этому адресу.
В поле "API Key" оставляем пустым (для локальных бэкендов ключ обычно не требуется). Выбираем модель из списка (если список пуст — значит, Aventura не может подключиться к бэкенду).
Теперь тест: создаем нового персонажа, пишем первое сообщение. Если модель отвечает — все работает. Если нет — смотрите логи в консоли, где запущен Aventura, и в консоли бэкенда.
3Включаем долгосрочную память и лорбук
По умолчанию эти функции выключены. Идем в Settings → Memory & Context. Включаем Long-Term Memory. Настраиваем параметры:
- Summary Interval — через сколько сообщений создавать summary. Ставьте 10-15 для начала.
- Summary Model — можно использовать ту же модель, что и для диалога, или выделить отдельную, более легкую (для экономии ресурсов).
- Max Summary Length — не больше 500 токенов, иначе summary займет весь контекст.
Для автоматического лорбука загружаем текстовые файлы с описанием мира через раздел Lorebook → Import. Aventura проанализирует текст, выделит сущности. Потом в диалоге, когда упоминается что-то из лорбука, соответствующий фрагмент автоматически добавится в промпт.
Автоматический лорбук — штука мощная, но не идеальная. Иногда он цепляет нерелевантные фрагменты. Проверяйте, что попадает в промпт, особенно в первых сессиях. Потом можно вручную отредактировать записи в лорбуке.
4Настраиваем анти-слоп систему и промпты
Здесь без готовых решений. Нужно экспериментировать. Идем в Settings → Generation Parameters. Ищем раздел Anti-SLOP.
Включаем. Настраиваем триггеры — что считать слопом? Повторение одних и тех же фраз? Потеря связи с сюжетом? Слишком короткие ответы? Выбираете параметры, сохраняете.
Теперь о промптах. Aventura использует систему шаблонов (Jinja2). Можно редактировать системный промпт, промпт для памяти, для лорбука. Если вы не знакомы с Jinja2 — лучше не лезть. Используйте стандартные.
Где все ломается: типичные ошибки и как их чинить
Вы все сделали по инструкции, но модель молчит. Или выдает ошибку 500. Или память не работает. Вот самые частые проблемы.
| Ошибка | Причина | Решение |
|---|---|---|
| "Failed to connect to API" | Бэкенд не запущен или слушает на другом порту | Проверьте командой curl http://localhost:PORT/v1/models. Если не отвечает — перезапустите бэкенд. |
| Модель отвечает бессвязным текстом | Неправильный формат промпта или параметры генерации | Сбросьте параметры генерации на дефолтные. Убедитесь, что температура не стоит на 2.0. |
| Долгосрочная память не сохраняет факты | Summary Interval слишком большой или модель для summary не справляется | Уменьшите интервал до 5-10 сообщений. Попробуйте другую модель для summary. |
| Лорбук не активируется | Ключевые слова не совпадают или активация отключена | Проверьте настройки лорбука — должна быть включена автоматическая активация. Отредактируйте ключевые слова вручную. |
Если ничего не помогает — смотрите логи. В Aventura есть встроенный лог-просмотрщик. Или запускайте сервер с флагом отладки.
Важно: если вы используете llama.cpp, проверьте версию. В старых версиях есть критическая уязвимость RCE. Как проверить и обновить — читайте в статье про критическую дыру в llama.cpp.
Что дальше: интеграции и автоматизация
Aventura — не остров. Его можно подключить к другим инструментам.
- Obsidian — синхронизируйте лорбук с вашими заметками. Экспортируйте диалоги в Markdown для дальнейшей обработки. Подробности в статье про Obsidian + локальная LLM.
- Автоматизация через API — Aventura предоставляет REST API. Можно писать скрипты, которые создают персонажей, запускают диалоги, экспортируют историю.
- Мульти-модельные сессии — используйте одну модель для диалога, другую для summary, третью для анализа эмоций. Если ваш бэкенд поддерживает роутинг (как llama.cpp в Router Mode), это делается легко.
Самый неочевидный совет: не гонитесь за большими моделями. Для RP часто лучше подходят средние модели (13B-34B), но с качественным лорбуком и памятью. Они быстрее, дешевле в эксплуатации, и их ответы более предсказуемы. Экспериментируйте с настройками, а не с размером.
Aventura — инструмент для тех, кто хочет контролировать каждый аспект взаимодействия с AI. Он не сделает за вас всю работу. Но если вы готовы потратить время на настройку, вы получите систему, которая будет помнить ваших персонажей лучше, чем вы сами.