0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mineflayer × Cloudflare Workers × Geminiでつくる超低コストマイクラAI Bot

0
Posted at

マイクラ(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応答)
  1. Cloudflare Workers: 30分おきにマイクラサーバーの生存確認(Ping)を行い、KVに状態保持&復帰時にDiscordへ通知。
  2. Mineflayer (Railway等コンテナ): 常時接続でマイクラ内に滞在。「ここに来て」の移動処理やプレイヤー参加時の自動挨拶をローカルで即座に処理。
  3. 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で応援する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?