让 AI Agent 去 Minecraft 里盖房子,比让它写代码难太多了

1 小时 24 分钟前
 bmpidev2019

现在让 Agent 写业务代码、跑单测、修线上 Bug ,基本已经没什么新鲜感了。有编译器、类型检查和报错堆栈兜底,它自己多试几轮总能收敛。

最近几个月换了个更折磨它的场景:把 MinePilot 当实验田,试试看能不能让 Agent 在原生 Minecraft 里稳定造出十几万到三十几万方块、玩家真能走进去逛的大型建筑。

我原本以为跟以前做策略 DSL 一样,先给它造一套带编译校验的底座就够了(底层的体素编译引擎 CraftDAG 已经开源)。方块 ID 、门窗朝向、结构碰撞都能在编译期拦住。

结果一进真游戏,发现编译器只能保证“方块没报错”,完全管不了空间对不对:

1. 编译零报错,抬头一看洞顶漏了 69 列

让它造一座跨峡谷的山地建筑( 15.7 万方块),编译一次过,零碰撞。进瀑布洞穴抬头一看,头顶有 69 列根本没封顶,直接漏出外面的蓝天;所谓的“瀑布”其实是贴在半空的一层水帘,底下连承接的水池都没有。前前后后修了水体物理和局部遮挡,跑完 550 步 Survival 实机走查,在原版 Java 26.3 (无光影)里截出来是这样:

2. CLI 检查绿灯通过,但相机前 62.49% 全是石栏杆

做一座室内澡堂的二楼观景台,命令行渲染退出码是 0,相机也没卡进方块里(eyesInSolid: [])。但人眼高度正前方立着一排实心石栏杆,把 62.49% 的画面堵得严严实实,底下的池水 0.00% 可见。

更意外的是做对照实验时,让写代码的同一个 Agent 看着这张渲染图自检( Self-Critique ),它居然觉得完全没毛病;换成不参与建造的独立视觉评审模型盲审,才一眼揪出来把实心墙改成了透空栏杆。

3. 静态文件全绿,进游戏当场掉下 203 盏灯笼

做一座 33.4 万方块的夜景街区,离线 .schem 静态检查全都合法。结果导进原版客户端触发邻居方块更新,挂在杜鹃树叶和上半砖底下的 203 盏灯笼哗啦一下全崩成了满地掉落物。最后老老实实补了挂点合法性校验,才把 1633 盏灯稳稳挂住(同样是原版无光影实机截图):

4. 曲面雕塑和自然地形又是另一套坑

像自由女神像这种浑身曲面的地标,用搭房子的轴对齐体素硬拼会直接糊成马赛克,最后退回先写 Python/C 算三角网格 .obj、再做亚体素采样的路子(早期雕塑源还把冠冕上的 7 扇窗洞全弄丢了):

到现在也没完全搞定的是“自然地形 + 建筑穿插”。一座嵌在冰川裂隙里的天文台( 26.1 万方块),编译零差异、380 步静态路线也能走通,但因为冰川外形被切成了死板的挡土墙斜面,被独立视觉评审打回冻结( 74/100 HOLD ),目前还在推倒重改侵蚀内凹的几何表达,没过正式验收。

折腾下来最大的感受是:代码世界里单测绿了基本就八九不离十,但到了三维空间,编译器管的是“填进去的方块”,真正决定能不能看、能不能走的反而是没放方块的那片“负空间”、玩家第一人称的视线,以及必须和生成者拆开的独立视觉盲审。

把这几个月踩的坑、多模型接力对比( Claude / GPT / Gemini )和完整实验记录整理成了一篇长文:

https://www.bmpi.dev/dev/agent-3d-world-building/

340 次点击
所在节点    程序员
5 条回复
Rickkkkkkk
1 小时 11 分钟前
罚你用脑子重写这个文章。
Ley
57 分钟前
“才把 1633 盏灯稳稳挂住”
这里也能稳稳……
MuyuQ
39 分钟前
让我想到了这个视频, 前几天刚看到。https://www.bilibili.com/video/BV1444B6pE5p
你们实在是太强了。
感觉你的精度更高一些。
dimlau
29 分钟前
WilliamBlue
21 分钟前
要是真可以。就是具身智能了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1257186

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX