Mindcraft 快速上手指南:让 LLM 代理在 Minecraft 里干活
【免费下载链接】mindcraftMinecraft AI with LLMs+Mineflayer项目地址: https://gitcode.com/GitHub_Trending/mi/mindcraft
你有没有想过,让大语言模型不止"说",而是真的"做"?Mindcraft 就是干这个的开源项目:它基于 Mineflayer 库,把 GPT、Claude、Gemini 等模型接进 Minecraft,让 AI 代理拥有"身体"——会走路、挖矿、合成、建造,还能多个代理协作盖房子。项目支持 20 多种 LLM API,也提供自家微调的本地模型,用 Ollama 就能零成本跑起来。
🧱 为什么是 Minecraft:一个理想的 LLM 代理沙盒
Minecraft 世界是方块的、规则是确定的、状态是可查询的,而且怎么折腾都不会"弄坏"。想验证 LLM 的具身推理能力——感知环境、制定计划、执行动作、根据反馈修正——这里是最好的试验场。
Mindcraft 的核心机制是:LLM 生成动作指令(调用内置技能或写新代码),Mineflayer 机器人在游戏里执行,执行结果写回对话上下文,模型据此决定下一步。于是"感知—决策—行动"的闭环就跑起来了。
首次运行:从克隆仓库到进游戏只要五步
先确认三样东西:Minecraft Java 版(1.21.x,推荐 1.21.6)、Node.js 18 或 20 LTS(v24+ 会导致原生依赖出问题)、任意一家受支持厂商的 API 密钥(默认 OpenAI)。
- 克隆仓库并安装依赖,安装时会自动用 patch-package 给若干依赖打补丁
- 把 keys.example.json 复制为
keys.json,填入密钥(只需一个) - 用 Minecraft 开一个世界,"对局域网开放",端口设为
55916 - 在目录下启动,机器人会加入游戏,并自动打开网页 UI(localhost:8080)
git clone https://gitcode.com/GitHub_Trending/mi/mindcraft cd mindcraft npm install node main.js之后直接在 Minecraft 聊天栏里跟机器人对话即可,网页 UI 里也能看到它的状态和视角。
📝 两份关键配置:settings.js 与代理档案
全局配置集中在 settings.js,几个高频字段值得先认识:
host/port/auth:连接目标,局域网默认127.0.0.1:55916,离线模式;连公网服务器需microsoft认证base_profile:生存、助手、创造、神模式四种玩法基调allow_insecure_coding:是否允许 LLM 写代码并在本机执行,默认关闭allow_vision:是否让视觉模型解读游戏截图max_messages/num_examples:上下文窗口大小与示例数量
每个代理一份 JSON 档案,比如 andy.json 只写了两行——名字和模型。进阶玩法是给聊天、编码、视觉、嵌入、语音五类用途分别指定模型(model、code_model、vision_model、embedding、speak_model),模型还可以写成{api}/{model}形式走任意支持的平台。profiles/ 目录下有各厂商的现成档案可直接套用。
🧠 代码导读:代理的大脑与四肢在哪
- src/agent/agent.js:代理主类,串起对话、动作与记忆
- src/agent/conversation.js:消息处理与上下文裁剪
- src/agent/action_manager.js:动作调度与并发控制
- src/agent/library/skills.js:技能库,采集、合成、寻路、战斗等预制动作都在这
- src/models/:各 LLM 厂商的适配层,加新模型就是加一个文件
- src/mindcraft/mindserver.js:管理多代理、托管网页 UI 的服务端
改行为最简单的入口是技能库和档案里的 prompt、examples 字段,动核心逻辑前建议先读懂 agent.js 的主循环。
🏗️ 给代理一张图纸:内置任务系统
tasks/ 目录预置了建筑、烹饪、合成三类任务。以收集任务为例:
node main.js --task_path tasks/basic/single_agent.json --task_id gather_oak_logs任务 JSON 里定义了目标(goal)、初始背包(initial_inventory)、目标物品与数量(target、number_of_target)、超时时间和禁止的动作。建筑任务则直接丢给代理一张蓝图——dirt_shelter.json、小石屋、教堂等,还支持 2~5 个代理分工协作。这个项目本身也是多智能体研究平台,minecollab.md 里讲了如何自动启动世界、批量跑任务并回收数据。
🛡️ 开启代码执行前:安全边界与 Docker 部署
allow_insecure_coding: true意味着 LLM 可以写 JavaScript 并在你的电脑上运行——虽然有沙箱,但仍可能被注入攻击利用。官方态度很明确:开了这选项就永远不要连公共服务器。
想开代码执行,建议直接进容器:
docker-compose up --build容器内访问宿主机要改一个值:把settings.js的host设成host.docker.internal。Dockerfile 和 docker-compose.yml 都在仓库根目录,照抄即可。
🔍 连不上、说胡话:6 个常见坑的排查方向
- 机器人进不了游戏:确认局域网端口确实是 55916;生成慢的机器把
spawn_timeout调大 - 机器人自言自语刷屏:档案里的
name必须与 Minecraft 账号名逐字一致 - npm install 报错:macOS 上是原生模块编译问题,先看 FAQ.md;Node 版本降到 18/20
- 想连公网服务器:必须有正版 Microsoft 账号,
auth改为minecraft对应的microsoft - 多代理各说各话:配置多个档案后,需要用
/msg分别和每个机器人说话 - 动作没生效:检查
blocked_actions是否误禁了命令,或反作弊触发了block_place_delay相关限制
收尾:接下来可以往哪走
跑通单机对话之后,三条进阶路线任选:给五类用途各配一个模型榨干档案能力;在 skills.js 里加自定义技能;或者按 MineCollab 流程搭一套多代理协作环境,让它组队盖教堂。项目背后有正式论文支撑(多智能体具身推理框架),如果你想做的是研究而不只是玩,任务系统的数据回收能力会很有用。先把最小路径跑通,其余慢慢来。
【免费下载链接】mindcraftMinecraft AI with LLMs+Mineflayer项目地址: https://gitcode.com/GitHub_Trending/mi/mindcraft
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考