看AIRI自己玩Minecraft:开源AI游戏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
想让一个AI 游戏 Agent像真人一样进入《Minecraft》世界里砍树、挖矿、合成工具,甚至在被袭击时本能地反击?开源项目AIRI就做到了。AIRI 是一个自托管、完全由你拥有的 AI 虚拟伙伴(自称"Grok Companion"),支持实时语音聊天、网页 / macOS / Windows 多端运行,而它的 Minecraft 集成模块(位于 integrations/minecraft/)内置了一套受认知科学启发的四层认知架构,让 AI 从"感知"到"行动"完整闭环。这篇文章带你从零搭建本地服务器,并逐层拆解这套 AI 游戏 Agent 的设计秘密。
一分钟认识 AIRI 的 Minecraft Agent
AIRI 的 Minecraft 机器人并不是简单地调用 API,而是基于 mineflayer 协议库(Node.js 实现)真正"登录"你的 Minecraft 服务器,以一个可感知的角色身份存活。它的核心能力包括:
- 🗣️理解自然语言指令:对机器人说"帮我建一座房子",它会规划、采集木材、合成木板、搭建墙体
- 🧠LLM 驱动决策:默认使用 DeepSeek 等 OpenAI 兼容模型(可配置任意兼容 API)
- ⚡无需 LLM 的生存本能:血量过低自动吃东西、被攻击自动反击——零 token 消耗
- 🔌双向连接 AIRI 主体:通过 WebSocket 把游戏状态、剧情摘要上报给桌面端 AIRI 角色
服务入口在 integrations/minecraft/src/main.ts,它在启动时完成三件事:读取配置、连接 AIRI 服务器、创建受管理的 Mineflayer 机器人(自动重连、加载 6 个 mineflayer 插件)。
一键搭建:本地服务器运行步骤
前置准备
你需要一个可以访问的 Minecraft 服务器(Java 版 1.20 最佳),最简单的做法是本地启动:
# 1. 克隆仓库 git clone https://gitcode.com/GitHub_Trending/ai/airi cd airi # 2. 安装依赖(pnpm 工作区) pnpm i配置环境变量
复制模板并编辑.env.local(模板在 integrations/minecraft/.env):
cp integrations/minecraft/.env integrations/minecraft/.env.local关键配置项(均由 composables/config.ts 中的 Zod Schema 严格校验):
| 变量 | 说明 |
|---|---|
OPENAI_API_KEY/OPENAI_API_BASEURL | LLM 密钥与接口地址(兼容任意 OpenAI 协议服务) |
OPENAI_MODEL/OPENAI_REASONING_MODEL | 对话模型与推理模型(默认 deepseek-chat / deepseek-reasoner) |
BOT_USERNAME/BOT_HOSTNAME/BOT_PORT | 机器人名、服务器地址、端口(默认 25565) |
BOT_AUTH | 认证方式:offline/mojang/microsoft |
AIRI_WS_BASEURL | AIRI 服务端 WebSocket 地址(默认ws://localhost:6121/ws) |
ENABLE_MCP_SERVER等 | 调试开关,默认全部关闭 |
启动服务
pnpm -F @proj-airi/minecraft-bot dev启动后机器人会自动连接 AIRI 与 Minecraft 服务器双端。⚠️ 官方 README.md 特别强调安全事项:请勿连接不受信任的公开服务器——该 Agent 会执行 LLM 生成的 JavaScript 动作脚本,恶意服务器可能诱导机器人做出危险操作。另外,MCP Server、Debug Server、Prismarine Viewer 三个调试端点均无鉴权,切勿暴露到公网。
核心揭秘:四层认知架构
AIRI 的 Minecraft Agent 架构参考了认知科学,分为感知 → 反射 → 意识 → 行动四层,各层职责清晰、事件驱动、松耦合。
第 A 层:感知(Perception)—— 机器人的感官神经
源码位置:src/cognitive/perception/
感知层把 mineflayer 的原始信号(受伤、掉血、实体移动、聊天消息等)翻译成类型化的事件。它的流水线是:事件定义(events/definitions/*)→ 事件注册表发出raw:<模态>:<类型>事件 → YAML 规则引擎(rules/)评估并发出派生signal:*信号。
规则用声明式 YAML 编写,例如 danger/damage.yaml 定义了"500ms 窗口内受到任意伤害"即产生高显著性信号,附带伤害量、来源、距离等元数据。规则按attention(注意)、danger(危险)、social(社交)分类组织,新增感知能力只需加一个 YAML 文件。
第 B 层:反射(Reflex)—— 不花 token 的生存本能
源码位置:src/cognitive/reflex/
反射层基于有限状态机(FSM)实现"膝跳反应",典型行为包括:
- 🍖自动进食(behaviors/auto-eat.ts):血量 ≤6 且饥饿值 <18 时立刻吃最好吃的食物——注意细节:饱食度 ≥18 时身体已在自然回血,此时吃东西纯属浪费,所以被刻意排除
- 🛡️防御反击(
defend.ts):被攻击时自动反击 - 🏃逃离危险(
escape-hazard.ts):规避致命威胁
关键设计是抑制机制:反射层可以向意识层发送 Inhibition 信号,阻止 LLM 做出冗余决策。生存反射优先级最高(score=1000),覆盖一切待机行为——毕竟活着比做事重要。
第 C 层:意识(Conscious)—— LLM 推理大脑
源码位置:src/cognitive/conscious/
这是最"像人"的一层,由几个核心部件组成:
- Brain(brain.ts):事件队列编排、LLM 轮次生命周期、安全/预算守卫
- JavaScript Planner(
js-planner.ts):LLM 不直接输出"工具调用 JSON",而是输出可执行的 JavaScript 脚本,在 isolated-vm 沙箱中运行——灵活性远超传统 Function Calling - Query DSL(
query-dsl.ts):只读的世界查询运行时,Agent 可以链式查询方块、实体、物品栏,甚至用query.map()生成 ASCII 俯视图"看"周围地形 - Task State:任务取消令牌与生命周期管理
系统提示词见 prompts/brain-prompt.md,信息量极大,几个亮点设计:
- "值优先规则":先执行纯观察轮(不触发任何世界动作),下一轮才基于确认过的数据行动,避免"想当然"操作
- 沙盒全局变量:
self(自身血量/坐标)、mem(跨轮记忆)、llmLog(历史轮日志环形缓冲)、actionQueue(实时动作队列) - AIRI 通信通道:
notifyAiri()上报紧急事件、updateAiriContext()推送持久上下文,让游戏内 Agent 与桌面端 AIRI 角色形成"双线叙事"
第 D 层:行动(Action)—— 思考与执行分离
源码位置:src/cognitive/action/
行动层把"想"和"做"彻底隔离:
- Task Executor(
task-executor.ts):执行规范化动作指令,发出生命周期事件 - Action Registry(
action-registry.ts):参数校验 + 工具分发 - 工具目录(
llm-actions.ts):绑定到 mineflayer skills 的工具 Schema
原子技能实现在 src/skills/ 下:挖矿(collect-block.ts)、伐木(gather-wood.ts)、合成(crafting.ts)、战斗(combat.ts)、移动导航(movement.ts,内置 A* 寻路,会自动挖开挡路的方块——Agent 从地底爬出地表只需一次goToCoordinate调用)。
事件流实例:"建一座房子"
玩家: "build a house" ↓ [感知层] 检测聊天事件 ↓ [意识层] Brain + JS Planner 规划结构 ↓ [行动层] TaskExecutor 管理建造循环: ① 采集木材 → ② 合成木板 → ③ 搭建墙体 ↓ [意识层] Brain 确认完成,notifyAiri("房子建好了!")调试工具:亲眼见证 AI 的思考
AIRI 提供了强大的本地调试面板(src/debug/):
- Debug Dashboard(
ENABLE_DEBUG_SERVER=true):Web 界面实时查看认知状态、对话记录、动作执行 - MCP REPL(
ENABLE_MCP_SERVER=true):手动向 Brain 注入 JavaScript 脚本,模拟"神之手"观察 AI 行为 - Prismarine Viewer(
ENABLE_MINECRAFT_VIEWER=true):在浏览器中以第一人称观看机器人视角的世界
还有 codex-skills/minecraft-debug-mcp/ 中沉淀的调试技能文档,记录了一套完整的 MCP 调试工作流。
项目结构与延伸阅读
| 模块 | 路径 | 职责 |
|---|---|---|
| 认知引擎入口 | src/cognitive/index.ts | 四层组件的装配与生命周期 |
| 依赖注入容器 | src/cognitive/container.ts | Awilix DI 接线 |
| AIRI 桥接 | src/airi/airi-bridge.ts | 状态/指令双向同步 |
| 机器人运行时 | src/minecraft-bot-runtime.ts | 重连、热重配置 |
| 官方文档 | integrations/minecraft/README.md | 完整架构说明与部署指南 |
写在最后:需要说明的是,当前 Mineflayer 方案处于弃用过渡期,官方计划以 Fabric Mod 运行时作为未来的主要 Minecraft 集成形态(详见 README 的 Deprecation Notice)。但正因为架构分层清晰(感知/反射/意识/行动相互解耦),这套四层认知设计仍值得每个想构建 AI 游戏 Agent 的开发者参考——让 AI 有感官、有本能、有理性、有手脚,这正是 AIRI 向 Neuro-sama 高度发起冲击的技术底牌。
【免费下载链接】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),仅供参考