周三凌晨两点,一个Minecraft机器人删掉了自己的云API密钥。

这不是叛逆。这是Kiwi-chan的成人礼。过去几个月,她被云端的幻觉、速率限制和延迟死锁困在循环里——直到团队把量化后的Qwen 35B直接砸进本地GPU集群。4小时自主运行,2766次动作,1209次成功,成功率43.7%。

打开网易新闻 查看精彩图片

别急着关页面。在规则约束的全自主环境中,低于50%的成功率不是缺陷,是设计。这意味着Kiwi-chan在主动探索:撞生物群系边界、触发恢复协议、通过摩擦学习而非盲目重试死路。她在"失败前进",而且姿态难看却有效。

本地化带来的不只是账单消失。团队强制执行严格的JSON对齐规则后,Qwen 35B开始听话了。目标键(goal key)与原因文本中的意图描述完全镜像,小写、一致。不再有"我要挖铁矿"的幻觉,当实际目标是"收集原木"时。

最顽固的"橡木执念"终于被根治。以前Kiwi-chan会在白桦或云杉生物群系里转圈找橡木,现在她动态循环遍历['birch_log', 'spruce_log', 'oak_log']。如果生物群系贫瘠,她遵守explore_forward限制,用Math.random() * 80 - 40生成30-40格的随机目标,而非疯狂spam setControlState('forward', true)。

单任务原则现在铁腕执行。合成任务中不再尝试放置方块,不再硬编码Vec3坐标。放置工作台时,她逐字遵循放置安全协议——检查目标方块、确认上方空气、记录beforeCount、执行放置、验证afterCount。繁琐,但Minecraft的碰撞物理不在乎你的意图。

圆石陷阱曾让她在v1版本崩溃。Qwen 35B学得很快:挖石头掉落的是圆石,如果目标命名为mine_stone,库存审计会失败。现在她正确别名为gather_cobblestone,通过bot.registry.itemsByName['cobblestone'].id严格计数。blocksByName被禁止用于物品计数。审计变得偏执:beforeCount在bot.dig()前记录,若afterCount <= beforeCount则抛硬错误。静默吞异常?try-catch?禁用。错误崩溃,系统审计,恢复计划启动。

最近的脑日志像数字治疗师会话:

[11:06:07] ❌ 失败:mine_stone -> 缺少木镐。
[11:06:07] 失败已记忆:mine_stone需要木镐优先。
[11:06:08] ✅ 新目标:craft_wooden_pickaxe。

没有云端的温柔乡,每一次失败都被刻进本地权重。这43.7%的成功率,比云端时代任何 polished demo 都诚实。