【免费下载链接】agentcraft
Manage your real AI agents, using Minecraft as your interface!
AgentCraft 是一款把「管理真实 AI 编程代理」搬进 Minecraft 的模组:你在游戏里输入目标,Claude 代理团队就会走进这座程序化生成的 HQ 办公室,坐到各自的工位开始写代码。本文将完整拆解它的两大核心机制——一条命令建起整座办公室的程序化 HQ 建造流程,以及让所有模块都能精准找到位置的锚点系统(Anchors),适合刚接触该项目的玩家和想了解其内部设计的开发者。
🏗️/agentcraft hq:一条命令,从草坡到工作室
AgentCraft 启动后不会让你在标题画面停留:客户端的 AutoWorld.java 会自动加载(或按「超平坦草原」模板创建)一个名为AgentCraft HQ的创意+和平世界,草皮固定在 y=64。
接着,HqFeature.java 在服务端启动时发现这是一个「还没有存档布局」的全新世界,就会自动执行默认建造器,让你第一次进游戏就走进已经盖好的 HQ。如果没触发,只需在聊天框输入:
/agentcraft hq /agentcraft hq force /agentcraft hq test| 命令 | 作用 |
|---|---|
/agentcraft hq | 用默认建造器(studio)重建 HQ |
/agentcraft hq force | 强制重建,连你手动改过的方块也还原 |
/agentcraft hq test | 切换到 25×25 的功能测试间建造器 |
出于安全考虑,该命令会重写大片地形并移动出生点,因此只允许在 HQ 世界执行,且永远拒绝在 Hardcore 世界运行;想在自己的存档里搭建,需要加参数-Dagentcraft.hq.anyworld=1启动。命令成功后,聊天栏会汇报:Built HQ 'studio': N anchors—— 这里的 N 就是下文的主角:锚点数量。
📐 studio 建造器:代码如何描述一栋楼
默认的studio建造器定义在 StudioHqBuilder.java,它描述的是一座「Warm Studio」:带陡峭板岩屋顶的长木结构大厅,前面是一个八角形 Goal Atrium 铜顶中庭(入口门厅),四周被林木丘陵环绕。它的布局思路很直观:
- 北墙:6 个工位隔间,屏幕朝南,椅子在屏幕前;
- 西端:图书室(library),东南:会议区,东端:测试台、合并站和终端;
- 南门外:八角中庭,任务墙在西侧、决策讲台与用户位点在东侧。
建造流程分为两层:
- 地形先行:HqLandscape.java 先生成起伏的草丘、小径、池塘与花圃。所有「随机」选择都来自坐标哈希,所以每次建出来一模一样;
- 建筑按图施工:所有方块先写进一份内存中的「目标状态表」,再整体应用到世界(见下一节)。
两个世界内景对比:外部是暮色中的红铜屋顶,内部则是代理们头顶名牌、屏幕滚日志的长厅。
📍 锚点系统:给整栋楼做一份「命名坐标表」
房子盖完只是开始。Agent 要走到自己的工位、相机要拍到任务墙、任务栏要绑定到具体的墙——所有模块都需要知道「某个东西在哪个坐标」。AgentCraft 的答案是 Anchors.java:一套命名的世界坐标,即锚点。
一个锚点 Anchor.java 包含x, y, z, yaw, pitch,但含义按类型而变:
| 锚点类型 | 示例 | 坐标含义 |
|---|---|---|
| 站位点 | desk_kit、library、lounge | 代理双脚站立处 + 面朝方向 |
| 屏幕/面板点 | monitor_kit、task_wall | 表面中心 + 正面朝向 |
| 相机点 | cam_overview | 摄像机眼睛位置 + 视角方向 |
| 关键位置 | entrance、spawn、goal_atrium | 特殊功能坐标 |
锚点的命名契约集中在 AnchorNames.java:每个角色按花名册得到desk_<id>/monitor_<id>;共享站点支持多槽位(library、library_2…library_N,代理自动分散坐开);相机点统一带cam_前缀。任何建造器必须写齐这些必需锚点,这正是「换一个建造器,游戏其他部分照常工作」的基础。
构建完成后,Anchors.publish()会把整份布局存成世界文件夹里的agentcraft-anchors.json并递增版本号;每次 HQ 世界启动时自动读回,重启游戏无需重建。想随时核对,输入/agentcraft anchors(注册于 AgentCraftCommands.java)即可列出全部锚点坐标。
⚙️ 确定性重建:为什么盖两次结果永远相同
程序化建造最难的不是「盖出来」,而是「再盖一次不毁掉你手动加的东西」。这套保证来自 Plan.java 的「目标状态差量」设计:
- 全覆盖目标表:HQ 占地盒(site box)内每个格子的期望状态都预先算好(没设的格子就是草地剖面),所以第二次重建几乎零改动,盒子外的世界永远不碰;
- 只写差异:与现状不同的格子才写入,且跳过物理、掉落与流体更新,重建速度极快;
- 连接块两遍写:楼梯、栅栏、玻璃、面板等连接类方块先跳过连接属性写入,全部就位后再按邻块重算连接,避免重建时「闪烁」;
- 记住玩家的改动:上次建造的计划存档为
agentcraft-hq-plan.dat(PlanStore.java)。若某格子既不符合旧计划也不符合新计划,说明是你自己改的——默认保留,只有force才强制还原; - 保留运行时状态:状态灯颜色、讲台开合、屏幕亮灭等由 Foreman 实时驱动的方块属性在重建时原样保留。
切换建造器(studio ↔ test)会因重写同一片地基而作废旧计划,保证记录始终可信。
🧭 锚点如何驱动整个游戏
锚点发布后,监听者被逐层唤醒,形成完整的「建筑 → 行为」链条:
- 寻路:GridPathfinder.java 的搜索范围被
bounds限制在 HQ 占地盒内;代理沿desk_<id>走到工位坐下开工; - 状态上报:协议里的
Agent.station(如library、mergestation)直接映射到共享站点锚点槽位(见 AnchorNames.java 的SHARED_STATIONS); - 出生点:
spawn锚点会被转换成setworldspawn命令,玩家出生即面向大厅; - QA 与截图:
cam_*锚点被测试脚本和相机路径(CameraPath.java)消费,仓库中那组 1920×1080 的官方截图正是由此拍出。
📂 关键文件导航
| 文件 | 职责 |
|---|---|
| HqFeature.java | /agentcraft hq命令、自动建造与安全限制 |
| HqBuilder.java | 建造器接口与force选项契约 |
| StudioHqBuilder.java | 默认 HQ「Warm Studio」实现 |
| HqLandscape.java | 草地、丘陵、路径与灯光(坐标哈希确定性) |
| Plan.java | 目标状态差量应用,幂等重建核心 |
| Anchors.java | 锚点发布、JSON 持久化与监听 |
| HqWorld.java | HQ 世界的身份识别与游戏规则(冻结时间/天气、禁刷怪等) |
| DEV.md | 开发者文档中的「Anchors and the test room」章节 |
小结
AgentCraft 用三个干净的分层回答了「程序化建筑怎么做」:建造器(代码描述建筑)、计划差量(幂等且尊重玩家改动)、锚点(命名坐标表,被寻路、渲染、协议与相机共同消费)。理解这条/agentcraft hq命令背后的链路后,无论是想扩展自己的建造器,还是为代理增加新的站点,你都知道该往哪里下手了。
【免费下载链接】agentcraft
Manage your real AI agents, using Minecraft as your interface!
相关推荐
Two.js 锚点体系深度解析:Two.Anchor 的构造、控制柄、命令与序列化
Two.js 锚点体系深度解析:Two.Anchor 的构造、控制柄、命令与序列化 本篇技术指南以 two.js 仓库内 wiki/docs/anchor/RE
图形学前端Habblaud 快速上手教程:Docker 一条命令部署,5 分钟让 AI 代理走进像素办公室
Habblaud 快速上手教程:Docker 一条命令部署,5 分钟让 AI 代理走进像素办公室 Habblaud 是一款把 AI 编程代理变成像素人物的可视化
命令行不再只服务程序员:Workspace CLI 把 AI 代理带进了办公室
命令行不再只服务程序员:Workspace CLI 把 AI 代理带进了办公室 先问一个特别真实的场景。 你正在写一份方案,写着写着突然卡住:上周开会时说的那个
人工智能AI 应用AI Agent代码智能体工具调用MCP Clients交互助手CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考