マイクラ(Minecraft)のサーバーにAI Botを常駐させたいけれど、「24時間LLMを動かすとAPI請求額が怖い」「指示を出しても会話に吸われて動かない」という経験はありませんか?
今回は、Jev (TypeSafe AI) による前段判定、Geminiでの会話生成、Cloudflare Workersによるサーバー生存確認を組み合わせ、運用コストをほぼ0円(月数円レベル)に抑えて安定稼働させるマイクラAI Botの環境構築手順をまとめました。
🚀 完成品のリポジトリ
コードはすべてGitHubにてパブリック公開しています。
👉 GitHub: fk2000/minecraft-ai-bot
このBotでできること
- 超低コスト設計: Jev(1日3回Quota制限)とGeminiの役割分担でAPI破産を防止。
- 直感ルーティング: 「ここに来て」などの基本指示はLLMを介さずMineflayerのPathfinderで即座に実行。
- 堅牢な自動再接続: キックやサーバー再起動が発生しても指数バックオフで安全に自動ログイン復帰。
- プレイヤー歓迎挨拶: プレイヤーのサーバー参加を検知してチャットで挨拶。
🛠️ アーキテクチャと役割分担
[マイクラ / Discordのチャット]
│
├── ① 移動・コマンド指示 (例: ここに来て) ──► Mineflayer (ローカル直接処理 / コスト0円)
│
├── ② Jev明示指示 (例: Jev: 建築して) ──► Jev API (1日3回上限)
│
└── ③ 通常の雑談・会話 ──► Gemini API (LLM応答)
- Cloudflare Workers: 30分おきにマイクラサーバーの生存確認(Ping)を行い、KVに状態保持&復帰時にDiscordへ通知。
- Mineflayer (Railway等コンテナ): 常時接続でマイクラ内に滞在。「ここに来て」の移動処理やプレイヤー参加時の自動挨拶をローカルで即座に処理。
- Jev (System 1): 高度な指示のみを1日3回までの制限つきで型付き判定。
📦 ハンズオン:動かしてみる
1. リポジトリのクローン
git clone [https://github.com/fk2000/minecraft-ai-bot.git](https://github.com/fk2000/minecraft-ai-bot.git)
cd minecraft-ai-bot
2. 環境変数の設定
.env.example をコピーして .env を作成し、ご自身の接続情報を設定します。
MC_SERVER_HOST=your-minecraft-server.com
MC_SERVER_PORT=25565
MC_USERNAME=JevAIBot
JEV_API_KEY=your_jev_api_key
DISCORD_TOKEN=your_discord_bot_token
DISCORD_CHANNEL_ID=your_discord_channel_id
GEMINI_API_KEY=your_gemini_api_key
3. コンテナのビルドと起動
# コンテナ用ビルド
npm run build:container
# コンテナ起動
npm run start:container
☁️ Railwayへの常時稼働デプロイ手順
ローカルPCを閉じても24時間動かすために、Railwayへデプロイします。
Railway.app にログインし、「+ New Project」 > 「Deploy from GitHub repo」 で <YOUR-GITHUB-REPOSITORY>/minecraft-ai-bot を選択。
「Variables」 タブを開き、上記の環境変数(MC_SERVER_HOST, DISCORD_TOKEN 等)をセット。
リポジトリ内の railway.json により、自動でDockerコンテナがビルドされ、24時間常時稼働が開始されます。
⚠️ 現状の課題と注意点
今回の実装により、「ここに来て」などの指示がLLM会話に吸収されず、確実に移動処理(Pathfinder)のコードへ届くルーティング経路は確立しました。
ただし、「指示が正しく届くこと」と「マイクラ内で障害物を避けて無事に到達できること」は別問題です。複雑な地形での経路探索やスタック回避など、実際の走破性については継続して改善を行っています。
💖 おわりに
オープンソースとして開発・メンテを続けています。
スター(★)やIssue/PRでの貢献、GitHub SponsorsやBuy Me a CoffeeでのDonationをいただけると大変励みになります!
📦 GitHub Repository (fk2000/minecraft-ai-bot)
💖 GitHub Sponsorsで応援する