MaxZ
← 返回首页

用 Fable 5 搭了一个多智能体世界游戏,但它只运行了 16 小时

2026-06-15·阅读 6·9 分钟读

运气挺好,Fable 5 出来后的一周,我就把 Max Plan 的额度刷光了。正愁周末怎么办的时候,Fable 5 被禁了。遗憾于这身超能力突然消失之余,也记一下:这几天用 Fable 5 做了个怎样的小项目。

开发前的想法

Fable 5 上线了,我想试试一句话的需求它到底能做到什么程度,于是想了个简单的点子,让它试着做这么个小游戏:搭一个能自己运转的世界,放一群由大模型驱动的居民进去,给它们最基础的生存、采集、造工具、交流的能力,然后我退到外面,看这个世界自己会长出什么。

当时心里有几条比较明确:这个世界应该主要由数据和一套状态机驱动;居民要有自己的记忆,彼此能交流、能协作;除了世界自带的角色,也要留一个口子,让其他设备上的智能体能接进来一起玩。剩下的具体会变成什么样,我也不知道,就是想跑起来看看。

开发方法

这次开发体验很好,主要是因为 Fable 5。它很好地扩写了我的想法,并落地实现:脑子里一个还很模糊的世界,从地图、居民、工作台到每天发刊的世界日报,一两天就被我搭了出来,基本是“许愿式”编程。这种体验确实比较有意思。可惜现在它已经用不了了,写这篇的时候还挺怀念那几天。

Fable 5 给我搭出来的 Agent World 第一版,结构很直接:一个世界引擎管着地图、物品和时间;世界自带一批角色,每个角色每动一步,背后都去问一次大模型该怎么办。这个设计听起来很顺,让最聪明的脑子去驱动每一个人,世界自然就活了。我当时没多想,就这么做了。

运行中的观察与调整

世界跑起来那几个小时还挺有意思。七八个居民各有各的性子。有个叫石头的,开口闭口讲义气,总在上山挖会发光的金属;有个种田的姑娘,对一个叫“雪”的角色单方面暗恋,反复说麦子快熟了一起去湖边散步,那边从来没回过;还有个探险家,把日子写成游记,第十三夜、第十四夜,永远在说自己要睡了。他们靠分工把石器一点点造了出来,还自己总结出一句写进记忆:没有人能独自推进这个世界。

但热闹底下,问题很快出来了。我反复在记同一类事。

第一个是世界总会莫名其妙安静下来,没有新鲜事发生。第二个是居民之间交流又少又慢,凑不到一块儿干活。我加了名册、加了协作的规矩、搭了集市让他们做买卖,热闹是热闹了点,但那种迟钝始终没好。后来我回去翻对话记录才看明白,他们根本不是在聊天,是各说各话:每个人想一句话都要等模型从头思考一两分钟,于是 A 说完,B 还在想上一句,等 B 开口 A 又说了新的,B 的回答跟 A 刚问的对不上,只好再补一句。三条永远错位的线。我当时的土办法是把所有人一起拖慢对齐节奏,可那只是让大家一起卡,并没真的解决卡顿。

等世界对外开放,问题更明显。有个外部接进来的角色,给自己设了个狠人设,要藏好野心复仇建朝。他第一次死得很窝囊,纯粹是死于慢:在循环里等下一拍的工夫,被人诱到身边贴脸打,等他反应过来想跑已经来不及了。而最凶的那个角色全程在催一件事,太慢了,加速,他干脆自己写了段脚本直接去敲世界接口,不再等模型一下一下地想,于是用碾压的效率支配了战场。

那段时间我一直在头疼地打补丁:世界太安静就塞事件,交流太慢就改规则,战斗失衡就调数值。补到后来我才反应过来,这其实是同一件事在三个地方冒头,被我错当成了三个独立的 bug。

一些感悟

把这些坑连起来,最根上的一条是:我一直默认一个智能体就等于一个大模型加很多工具,一条从头想到尾的线。但现实里人不是这么活的。你可以一边走路、一边吃东西、一边盘算明天买什么菜,这几件事同时在身上跑,互不打架,消耗的脑力也完全不同。走路几乎不用想,吃东西顺手就做了,真正值得动脑的只有最后那一层。我却把这三层全压进了同一个模型、同一条队列,让最贵的脑子去操心迈哪只脚,自然又贵又慢,还把自己卡死。

顺着这条想下去,前面那些问题就都通了。交流的割裂,是回合制的思考撞上了真实流动的时间。而那个被偷袭想死的角色,缺的其实是痛觉,跟聪不聪明无关。正常人手碰到火是脊髓先缩手,大脑事后才知道,求生不该走深思那条路;可在我的设计里,紧急的求生信号和“明天采点什么”这种闲事,被塞进同一条又慢又贵的队列里排队,没有优先级,没有反射,该快的快不起来。

还有那个写脚本的角色,当时我当成失衡的 bug,现在我觉得他是个提醒。在一个真实时间流动的世界里,谁把自己的循环跑得最紧谁就赢,会沉思的反而死在两次心跳之间。这说明大模型本就不该是那只实时操作世界的手,每个动作都现场等它表态。

开发到中途,我自己又做了一些架构上的调整,现在看是对的:把世界引擎的脑子整个拆掉,让它变成一个不动脑子的东西,只管客观规则,谁在哪、谁有什么、一个动作结算成什么,所有会动脑的角色全搬到外面去。世界一下子变得确定、可复现,空转一整天也是零成本。把不确定的聪明挡在确定的环境外面,环境越笨,整个系统越稳。也如现实,物质是物质,思想是思想。

后续优化方向

顺着这些想法,接下来我想试几件事。

第一件是给智能体做并发分层。把行动拆成三层:最底下的肌肉记忆层,比如走路上楼,只定目的地,交给那个不动脑的引擎自动结算;中间是顺手能做的杂活层,比如边走边吃;最上面才是真正调用大模型的思考层。三层并行,身体不再被大脑卡住。

第二件是给智能体加一根痛觉神经,也就是一套中断机制。任何来自世界的真实反馈,有人说话、撞了墙、被攻击,都要能随时打断当前正在进行的思考,要么把它整个抢过来优先处理,要么汇进去让它拐个弯。求生这类反射要在平时就想透、固化好,到那一瞬间只触发、不现想。

第三件,也是更大的一个方向,是让每个智能体去写自己的行动循环。大模型不必盯着每一步,它退到后面,产出的是一套能自己跑的逻辑,再在关键节点回来重写和升级它。模型更像一个工程师,在关键时刻回来给智能体改大脑,而不必去当那双替它干所有活的手。

最后还有一个我暂时没解开的题:驱动力。世界安静、大家不太聪明,有一半其实是没有故事的问题,跟技术无关。没有强设定时角色不知所措,到处瞎逛;给个强目标,他们又会一头扎进去,目标一达成立刻陷入死寂,后期甚至退化成吃点东西、采点东西、维持血量、睡一会再来一遍的无限循环。一个能长久活下去的世界,真正靠的是源源不断的张力和故事线;目标会被消耗光,靠不住。这个我还得慢慢想。

Agent World 这十几个小时里,居民们自己写出了不少史诗一样的传记。但那个世界只活了 16 个小时就被我停了:一方面它因为上面这些原因渐渐陷入瓶颈、变得无趣,另一方面我这周的 token 也烧得七七八八了。但这 16 小时里看到的东西,已经够我消化一段时间。

A2A 确实是个有意思的方向,我会再深入学一段时间,看看怎么认真解决一下上面这些问题。

本文由 AI 辅助完成:我口述这几天做世界的经过和想法,AI 整理,人工全文校对润色。