Описание мода
Мод для Minecraft, который предназначен для добавления «второго игрока» в игру, который будет действительно интеллектуальным.
Когда-либо чувствовали одиночество, играя в Minecraft в одиночку? Этот мод призван решить проблему одиночества, не только для этого конкретного случая, но и (надеюсь, в будущем) для игры на multiplayer серверах.
Обратите внимание, что это не какой-то коммерциализированный AI продукт. Этот проект — просто решение проблемы, с которой сталкивались и продолжают сталкиваться многие игроки Minecraft.
Что делает этот мод?
Этот мод на данный момент добавляет второго спавнящегося игрока (или бота) через мод Carpet mod, и вы можете общаться с ним через большую языковую модель (LLM) через Ollama полностью оффлайн на вашем ПК. На данный момент также интегрировано обучение с подкреплением, чтобы бот мог взаимодействовать с окружающей средой и учиться на ней в контексте «рефлекторных действий».
Этот мод опирается на внутренний код мода Carpet mod, пожалуйста, отметьте репозиторий мода звёздочкой: https://github.com/gnembon/fabric-carpet (Отдаём должное, где это заслужено)
Этот мод также использует проект ollama4j. https://github.com/amithkoujalgi/ollama4j
Changelog v1.0.5.1-release+1.20.6-bugfix-2
- Исправлено множество ошибок, которые были упущены на предыдущем этапе тестирования.
Changelog v1.0.5.1-release+1.20.6-bugfix
Было осознано, что многие обязательства, объявленные в предыдущем анонсе, были слишком амбициозны для реализации в одном обновлении. Для обеспечения плавной разработки этот релиз является первой частью двухчастного обновления.
Это обновление сосредоточено на переработке основных систем и улучшении принятия решений ИИ, закладывая основу для следующей волны функций.
Также поддержка версий ниже 1.20.6 была прекращена из-за изменений кодовой базы, которые я не в состоянии самостоятельно мигрировать. Однако другие могут портировать на более низкие версии.
Что нового в 1.0.5.1
Переработанная NLP система
- Полностью переработанная система обработки естественного языка (NLP) — больше никаких «Я не смог вас понять.»
- Это новая и экспериментальная система, которую я проектировал и тщательно тестировал в течение последнего месяца.
- Результаты обнадёживают, но ещё не соответствуют моим личным стандартам — ожидайте дальнейших улучшений в будущих обновлениях.
Переписанная RAG & Database система (с веб-поиском)
- Новая система Retrieval-Augmented Generation (RAG), интегрированная с базой данных и веб-поиском.
- ИИ теперь предоставляет точную фактическую информацию о Minecraft, drastically reducing hallucinations.
- Поддерживаемые поисковые провайдеры:
- Gemini API
- Serper API
- Brave Search API (в разработке, будет добавлено в следующий патч)
Meta-Decision слой
- Добавлена система цепочек задач:
- Вы даёте инструкцию высокого уровня → бот автоматически разбивает её на smaller tasks → выполняет шаг за шагом.
Текущие поддерживаемые задачи:
- Перейти в локацию
- Перейти в локацию и добыть ресурсы
- Обнаруживать nearby blocks & entities
- Сообщать статистику (здоровье, кислород, голод и т.д.)
API интеграции
AI Player теперь поддерживает нескольких провайдеров LLM (настраивается через API keys):
- OpenAI
- Anthropic Claude
- Google Gemini
- xAI Grok
Инструмент веб-поиска
Если вы выберете Gemini Search в качестве инструмента веб-поиска для LLM, он автоматически использует API key, установленный для вашего провайдера LLM в файле settings.json5.
Для поиска https://serper.dev/, получите api key на serper.dev, затем перейдите в папку config в игре, откройте ai_search_config.json
и вставьте ключ:
(Примечание: Я не смог протестировать всё это самостоятельно, кроме Gemini API, поскольку API keys стоят денег, но интеграции готовы.)
Исправления ошибок
- Исправлена ошибка, при которой аргументы JVM не считывались.
- Удалена owo-lib. AI-Player теперь использует собственную систему конфигурации.
- Исправлены проблемы с сохранением API keys.
- Добавлена новая система обнаружения лаунчеров. Поскольку лаунчер Modrinth конфликтовал собственной системой переменных пути, поэтому QTable не загружалась. Поддерживаются: Vanilla MC Launcher, Modrinth App, MultiMC, Prism Launcher, Curseforge launcher, ATLauncher, и даже неизвестные лаунчеры, которые по умолчанию будут неподдерживаемыми, при условии, что они следуют схеме путей ванильного лаунчера MC.
- Переработан UI Config Manager с отзывчивым интерфейсом и опцией поиска для провайдеров с большим количеством моделей (как gemini).
Заметки о разработке
- Хотя это обновление может показаться небольшим на поверхности, проектирование систем, написание кода и отладка заняли огромное количество времени.
- В дополнение к этому, я взял больше фриланс-контрактов и мне нужно сосредоточиться на дипломном проекте.
- Обновления будут продолжаться — просто в более медленном темпе.
Скоро во второй части
Вот что запланировано для следующего патча:
Улучшения боя и выживания
- Бот использует оружие (включая дальнобойное) для отражения мобов.
- Обновления reflex module.
- Более естественные взаимодействия с миром (например, сон ночью).
Улучшенный Path Tracer
- Более умная навигация по воде и сложной местности.
Система самостоятельной постановки целей
- Бот самостоятельно ставит себе цели, как настоящий игрок.
- Будет инициировать разговоры с игроками и перемещаться автономно.
Система настроения (фаза проектирования)
- Добавляет эмоциональный контекст и varied behavior.
Интеграция Player2
- Пользующаяся большим спросом — это будет первой крупной функцией второго обновления.
Предстоящие изменения (некоторые из них могут появиться во втором патче).
- Переход на Deep-Q learning вместо traditonal q-learning (TLDR: использование нейронной сети вместо таблицы)
- Создание пользовательского кода движения для бота для precise movement вместо server sided movement code carpet.
- Реализация human consciousness level reasoning??? (в некоторой степени, возможно) (БОЛЬШОЕ ВОЗМОЖНО)
Пример видео работы мода (на версии 1.0.3-alpha-1)
Видео changelog (на текущей версии 1.0.3-alpha-2)
better and faster reflex actions, reduced training time.
Youtube tutorial скоро
Руководство по установке и настройке
Шаг 1: Установите Java 21
Для этого проекта требуется Java 21.
Скачайте Java 21 с BellSoft JDK 21 LTS.
В Windows: нажмите Download MSI и завершите установку.
В Linux: установите через ваш пакетный менеджер, например:
sudo apt install openjdk-21-jdk
Шаг 2: Установите Ollama
Перейдите на
Скачайте в соответствии с вашей операционной системой.
После установки запустите ollama с вашего рабочего стола. Это запустит сервер ollama.
Его можно найти в системном трее
Шаг 3: Настройте модели Ollama
Откройте вашу командную строку (CMD/Терминал) и выполните:
ollama pull nomic-embed-text # Модель для эмбеддингов (требуется)
ollama pull qwen3:8b # Предпочтительная языковая модель (использовалась при тестировании)
Для предыдущих пользователей:
ollama rm gemma2 # Удалите старую модель, если установлена
ollama rm llama2 # Удалите старую модель, если установлена
ollama rm llama3.2 # Удалите старую модель, если установлена
Если вы уже запускали мод ранее, удалите старый конфиг:
.minecraft/config/settings.json5
✅ Убедитесь, что сервер Ollama запущен перед запуском игры.
Шаг 4: Скачайте зависимости
Убедитесь, что все необходимые зависимости (включая Carpet mod) установлены.
Шаг 5: Настройка аргументов JVM
Перед запуском игры вы должны предоставить следующий аргумент JVM:
-Daiplayer.llmMode=<provider>
Примеры:
- Локальный Ollama (по умолчанию):
-Daiplayer.llmMode=ollama
- OpenAI:
-Daiplayer.llmMode=openai
- Anthropic Claude:
-Daiplayer.llmMode=claude
- Google Gemini:
-Daiplayer.llmMode=gemini
- xAI Grok:
-Daiplayer.llmMode=grok
Шаг 6: Настройка API ключей
Внутри Config Manager теперь есть dedicated section для ввода API ключей для всех поддерживаемых провайдеров.
- Для локальных моделей вы можете выбрать предпочтительную Ollama LLM.
- Для hosted провайдеров введите ваши API keys соответствующим образом.
⚠️ Примечание: Ollama должен быть всегда запущен, поскольку модель для эмбеддингов (nomic-embed-text) локальна и требуется.
Шаг 7: Запуск игры
- Запустите Minecraft.
- Перед загрузкой мира (если вы в одиночной игре), когда экран загрузки мира достигнет 100%, может возникнуть небольшая задержка (или нет) из-за загрузки NLP модели в игре.
- Перед загрузкой мира, пожалуйста, подождите, пока вы не увидите все папки в структуре с файлами, как здесь:
- Эти файлы предназначены для одноразовой загрузки, только для первого использования этой версии.
- Оказавшись в игре, если вы использовали провайдера, отличного от ollama, в аргументе JVM, используйте config manager для выбора желаемого LLM/провайдера и установите их API keys.
- Введите следующую команду, чтобы заспавнить вашего бота:
/bot spawn <yourBotName> <training|play>
training
→ Спавнит бота в режиме обучения (не подключается к LLM).play
→ Нормальный режим с полным функционалом ИИ.
Важные примечания
- Лучше создать отдельный модпак для этого мода, поскольку Ollama должна работать в фоновом режиме, когда вы играете.
- Сама Ollama использует минимальную память, поэтому это не должно значительно влиять на производительность.
Инструмент веб-поиска
Если вы выберете Gemini Search в качестве инструмента веб-поиска для LLM, он автоматически использует API key, установленный для вашего провайдера LLM в файле settings.json5.
Для поиска https://serper.dev/, получите api key на serper.dev, затем перейдите в папку config в игре, откройте ai_search_config.json
и вставьте ключ:
Команды мода
/bot spawn <bot> <mode: training or play>
, если вы введёте что-то ещё в параметре mode, вы получите сообщение в чате с правильным использованием этой команды
/bot use-key <W,S, A, D, LSHIFT, SPRINT, UNSNEAK, UNSPRINT> <bot>
/bot release-all-keys <bot> <botName>
/bot look <north, south, east, west>
/bot detectDangerZone
// Обнаруживает nearby lava pools и cliffs
/bot getHotBarItems
// возвращает список предметов в его горячей панели
/bot getSelectedItem
// получает currently selected item
/bot getHungerLevel
// получает его уровень голода
/bot getOxygenLevel
// получает уровень кислорода бота
/bot equipArmor
// заставляет бота надеть лучшую броню в его инвентаре
/bot removeArmor
// снимает броню с бота.