说句“给我建个房子“,AI 真的去砍树了:AIRI 的 Minecraft 游戏 Agent 本地部署完整指南
2026/9/4 11:02:42 网站建设 项目流程

说句"给我建个房子",AI 真的去砍树了:AIRI 的 Minecraft 游戏 Agent 本地部署完整指南

【免费下载链接】airi💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-sama's altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airi

你在聊天框里敲下"build me a house",屏幕另一头的角色真的转过身,走向最近的树,开始挥镐。砍完还会自己合成木板,然后搭起第一排墙。背后干活的,是开源项目 AIRI 的 Minecraft 游戏 Agent:它以玩家身份真正登录你的服务器,听懂自然语言指令,被打了还会本能反击。这篇文章讲清如何在本地把它跑起来,再顺着一条指令的旅程,拆开它"听、想、动"的完整链路。

AIRI 的 Minecraft 机器人到底是什么

AIRI 是一个自托管的 AI 虚拟伙伴项目(自称 "Grok Companion"),有网页版,也有 macOS / Windows 桌面端,支持实时语音聊天。Minecraft 集成模块放在 integrations/minecraft/ 目录,相当于给这个伙伴在游戏世界里装了一副"身体"。

它和"调个 API 拿结果"的方案不同:基于 mineflayer 协议库(Node.js 实现的 Minecraft 协议)以普通玩家账号登录你的服务器,在世界里真实存活——看到的东西、受到的伤害、做出的动作,全发生在真实协议层。同时它通过 WebSocket 与 AIRI 主体保持双向通道,把游戏状态和剧情摘要同步给桌面端角色,让两边的"她"始终在一个频道上。

和同类"AI 玩 Minecraft"演示相比,它的差异点可以压缩成四条:

  • 🗣️ 理解自然语言:不是固定指令表,"帮我收点木头"这种说法就能听懂
  • 🧠 LLM 驱动决策:兼容任意 OpenAI 协议的接口地址,模型可换
  • 🍖 生存反射不经过 LLM:血少自动吃、被打自动还手,零 token 消耗
  • 🔌 与 AIRI 主体双向互通:游戏内事件能作为头条推回桌面端角色

模块的核心是一套四层认知引擎,命名借自认知科学:感知、反射、意识、行动,每层只管一件事,靠事件总线松耦合。

本地跑通机器人:四步走完

前置条件:Node.js 环境、pnpm,以及一个你能访问的 Minecraft 服务器(Java 版 1.20 最佳,最省事的方式是本地起一个)。

  1. 📦 克隆仓库:git clone https://gitcode.com/GitHub_Trending/ai/airi,然后cd airi
  2. 📚 安装工作区依赖:pnpm i
  3. 📝 复制环境变量模板:cp integrations/minecraft/.env integrations/minecraft/.env.local,再按下面表格填写
  4. 🚀 启动:pnpm -F @proj-airi/minecraft-bot dev

启动成功后,机器人会同时连上 AIRI 服务与 Minecraft 服务器两端。

环境变量配置表

所有变量由 composables/config.ts 里的 Zod Schema 严格校验,写错会在启动时报错并指出具体字段。常用项如下:

变量作用默认值
OPENAI_API_KEY/OPENAI_API_BASEURLLLM 密钥与接口地址,兼容任意 OpenAI 协议服务无,必填
OPENAI_MODEL/OPENAI_REASONING_MODEL对话模型 / 推理模型deepseek-chat/deepseek-reasoner
BOT_USERNAME/BOT_HOSTNAME/BOT_PORT游戏内昵称、服务器地址、端口airi-bot/localhost/25565
BOT_AUTH认证方式:offline/mojang/microsoft未设置(等同离线)
AIRI_WS_BASEURLAIRI 服务端 WebSocket 地址ws://localhost:6121/ws
AIRI_CLIENT_NAME向 AIRI 上报时使用的客户端名minecraft-bot
ENABLE_DEBUG_SERVER/ENABLE_MCP_SERVER/ENABLE_MINECRAFT_VIEWER三个调试开关均为false

两条安全提醒,官方 README 里写得很直白,这里原样保留:不要把这个机器人连到不受信任的公开服务器——它会执行 LLM 生成的动作脚本,恶意服务器可能诱导它做出损害你本地环境的行为;MCP Server、Debug Server、Prismarine Viewer 三个调试端点完全没有鉴权,暴露到公网等于交出远程控制,务必保持三个开关默认关闭。

一条指令的旅程:"建房子"是怎么被执行的

四层架构听着抽象,跟着"build me a house"这句话走一遍就清楚了。

感知层先听到:给事件"打标注"

一句话职责:把 mineflayer 的原始信号翻译成类型化的事件与信号,上层只消费信号。流水线是三段:事件定义绑定原始回调 → 事件注册表向总线发出raw:事件 → YAML 规则引擎评估后发出派生signal:信号。

最有意思的设计是规则用声明式 YAML 写,而不是硬编码逻辑。看 danger/damage.yaml:它规定"500ms 窗口内受到任意伤害"就产生一条高显著性信号,伤害量、来源、距离由模板变量自动填进元数据。规则按 attention(注意)、danger(危险)、social(社交)三类组织,想加一种新的感知,丢一个 YAML 文件进去就行。

反射层先动手再想:肌肉记忆式的生存本能

反射层用有限状态机实现——可以把它理解成身体的"肌肉记忆":不经过 LLM,靠条件反射快速响应。建房子期间它全程站在旁边待命,但一旦发生状况,它比谁都快:血量 ≤6 且饥饿值 <18 时,auto-eat.ts 立刻吃下手里最好的食物。有个细节我觉得很聪明——饥饿度 ≥18 时身体本来就在自然回血,这时吃东西纯属浪费,所以被刻意排除。同类行为还有被攻击自动还手、逃离致命威胁,生存反射的优先级分被设为 1000,压过一切待机动作,因为活着比什么都重要。

另一个关键机制叫"抑制":反射层处理完一件事后,会向意识层发出 Inhibition 信号,相当于说"这事我接手了,你不用管",LLM 就不会为同一件事再被白白叫醒一次。

意识层执笔:LLM 写的是脚本,不是 JSON

感知层把"建房子"事件递上来后,brain.ts 里的 Brain 接管:它编排事件队列、管理 LLM 轮次生命周期,还守着安全与预算的护栏。

最出格的设计是 JavaScript Planner:LLM 不输出传统的工具调用 JSON,而是直接写一段可执行 JavaScript,在 isolated-vm 沙箱(一个把代码关进"隔离房间"里运行的环境)中执行,表达能力远超 Function Calling。系统提示词 prompts/brain-prompt.md 要求 Agent 在投入长任务前先核实关键假设——先看清,再动手,避免"想当然"操作。沙箱里还配了 Query DSL:只读的世界查询运行时,可以链式查询方块、实体、物品栏,甚至调query.map()生成一张 ASCII 俯视图,让 AI 用字符"看"到周围地形。

行动层只管做:最后一公里

行动层把"想"和"做"物理隔开:Task Executor 逐条执行规范化动作指令并发出生命周期事件,Action Registry 负责参数校验与工具分发,工具目录则绑定 src/skills/ 下的原子技能——挖矿(collect-block.ts)、伐木(gather-wood.ts)、合成(crafting.ts)、战斗(combat.ts)、寻路移动(movement.ts,基于 mineflayer-pathfinder 寻路插件)。砍树 → 合成木板 → 砌墙这个建造循环,全程由 Task Executor 驱动。

整条链路简化下来就是这样:

聊天"build a house" → 感知层给事件打标注 → 意识层 Brain 规划结构、生成沙箱脚本 → 行动层跑建造循环(伐木 → 合成 → 搭建)→ Brain 确认完成,用notifyAiri把"房子建好了"这条头条推给桌面端 AIRI。

三个观察窗口:让 AI 当众思考

debug 目录(src/debug/)内置了三个观察窗口,一一对应 .env 里的三个开关:

  • Debug DashboardENABLE_DEBUG_SERVER=true):打开本地网页,能实时看到认知状态、对话记录与动作执行,相当于全程围观的旁听席。
  • MCP REPLENABLE_MCP_SERVER=true):手动往 Brain 里注入一段 JavaScript 脚本,相当于亲自扮演"上帝之手",观察 Agent 接下来会做什么。
  • Prismarine ViewerENABLE_MINECRAFT_VIEWER=true):在浏览器里打开机器人的第一人称视角,它看到什么,你看到什么。

再啰嗦一遍:三个窗口都没有鉴权,只在可信的本地网络里开。仓库的codex-skills/minecraft-debug-mcp/目录还沉淀了一套 MCP 调试工作流文档,卡住的时候先翻它,省不少时间。

Mineflayer 方案的走向,以及你可以做什么

最后说点实话:官方 README 明确标注 Mineflayer 这条路线处于弃用过渡期,未来的主要 Minecraft 集成形态将是 Fabric Mod 运行时。所以如果你有长期项目规划,别把架构押注在这个运行时上。

但这不妨碍这套四层设计的参考价值:感知、反射、意识、行动各管一段,事件松耦合,新增能力靠"加文件"完成。对任何想做游戏 Agent 的人,"让 AI 有感官、有本能、有理性、有手脚"已经是一张现成的施工图纸。把仓库克隆下来,本地起个服务器,对它说句"build me a house"——比看一百张架构图都直观。

【免费下载链接】airi💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-sama's altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询