城市模拟最容易造假的地方,是地图上明明有几十万人,真正会做决定的却只有几百个。人口数字只是分母,居民有没有工作、需求和习惯,才决定这座城市能不能自己运转。

地图上的人口,和会做决定的人口,不是一回事

很多城市游戏的人口面板都很好看:三十万、五十万,还在往上涨。但只要点开其中任何一个人,就会发现他没有工作,也没有钱包,更没有理由在某个下午走进某条街。他只是一段沿着预设路线走的动画,用来让街道看起来热闹。

这种做法在规模小的时候没有问题,因为玩家的注意力都在建筑上。麻烦出现在玩家开始做需要“人”来回应的决定时:修一条路,路上的车流该怎么变?关一家工厂,附近的居民该去哪里?把一个街区的租金定高一点,谁会离开、谁会留下?如果居民只是贴图,这些问题的答案只能由几条全局公式硬算,城市就变成一张会自动刷新数字的报表。

大发娱乐AI在大发娱乐城市AI这一部分的出发点,是把“人口”重新定义成“有状态、有约束、会随经历改变的决策单位”。这里说的居民不是一个个会聊天的NPC,而是一小组能被检查的变量,加上一套把变量变成行动的规则。下面用一个模拟示例居民,把这套东西从头走一遍。

一个居民醒来的时候,身上带着什么

假设城市里有一位叫周岚的居民(模拟示例,不对应任何真实人物):34岁,在城东的一家包装厂做班组长,和伴侣、一个孩子租住在城北的两居室里。系统给她的不是一段性格描述,而是下面这些字段。

状态变量 模拟示例取值它决定什么缺了会怎样
职业与岗位包装厂班组长,月薪档位中等 每天几点出门、去哪里、收入多少 失业和跳槽无从谈起,工厂关门对居民毫无后果
住房 城北租房,租金占收入约三成(假设值) 能承受的租金上限、搬家时的候选区域房价涨跌不会影响任何人的去留
家庭与负担 三口之家,需要接送孩子 时间约束、通勤容忍度、对学校位置的敏感度所有人的行为一模一样,只是收入不同
需求水平 体力、食物、休闲、社交各有一个会随时间回落的数值 下班后是回家、买菜还是去公园 居民只在“工作地”和“家”之间往返,商业永远没有客流
出行选择与记忆常走的三条路线,各有“上次耗时”和“可靠程度” 遇到拥堵时换不换路线 堵车只是数字,没有人因此改变习惯
偏好与习惯 常去的两家菜场,对价格比较敏感 消费去向的惯性和切换门槛 价格战和促销会得到过于整齐的反应

这张表里没有一项是“为了显得像人”而加的。每一项都对应城市里某个必须由居民来回应的系统:岗位对应劳动力市场,住房对应租售市场,需求对应商业,出行记忆对应交通。少一项,就有一个系统只能靠全局公式糊弄。

同一条街,三个居民看到的是三座不同的城市

异质性是这套设计里最不能省的部分。如果所有居民的通勤容忍度都是四十五分钟、租金上限都是收入的三成,那么地铁一开通,整个街区会在同一周整齐地涨价或者整齐地搬空,像一台被拨了开关的机器。真实城市里从来没有这么整齐的反应。

拿周岚所在的街区做一个假设场景:街区里有三类居民。第一类像周岚,时间紧、有孩子,对通勤时间敏感,对租金相对不敏感,因为搬家要换学校;第二类是刚工作不久的年轻人,租的是合租房,租金一涨就会在一两个月内搬走,但对通勤能忍;第三类是住了很多年的老居民,有自己的房子,对价格没有反应,对噪声和邻里变化很敏感。三类人面对同一条新公交线、同一次租金上调,做出的选择是不同的,而且改变的时间点也不同。

异质性来自几个可以直接设置的维度:收入档、年龄段、家庭结构、是否有车、对价格的敏感度、对时间的敏感度、对迁移的惰性。这些维度组合起来,就足够让一个街区在同一次冲击下出现分化,而不需要给每个人编一段独一无二的背景故事。给每个居民写背景故事是最贵也最不可检查的做法,而组合出来的分化是可以在统计上核对的。

习惯是怎样形成的,又要多大的冲击才会被打破

真实居民并不是每天重新算一遍最优解。周岚从家到包装厂有三条路线,她用了两个月的时间发现其中一条平均最快,此后就一直走它。哪怕某天另一条路其实快了三分钟,她也不会换,因为换路有认知成本,而且上一次尝试新路线时遇到过一次红灯长队,那次经历还留在记忆里。

要让模拟里的居民有这样的表现,需要三件事。第一,每条常用路线和每家常去的店保存一份“经验记录”,包括最近几次的实际体验和一个可靠度。第二,决策时优先沿用旧选择,只有当旧选择的体验连续几次低于预期,并且差距超过一个个人化的门槛,才触发重新评估。第三,重新评估之后,新选择要经过一段时间才会取代旧选择,而不是立刻全盘替换。

这带来一个很有用的副作用:城市的变化有了“滞后”。一条主干道修好以后,车流不会在第二天就重新分配,而是在几周里慢慢挪动,先是敏感的、灵活的居民,再是习惯型的居民。堵车的成因和居民换路线的过程,在堵车以后居民会不会自己换路线里有更细的拆解,这里只强调一点:没有惯性,就没有滞后;没有滞后,玩家就永远看不到自己决定的真实后果。

反过来,习惯也要能被打破。打破它的通常不是一次小波动,而是三类事件:连续的糟糕体验、生活状态的转折(换工作、有了孩子、搬家),以及价格或距离的大幅变化。这三类事件在系统里对应的是“重新评估触发器”,居民平时几乎不需要做决定,只有触发器亮起时才会真正“想一想”。

居民之间不必聊天,只要共用同一本账

说到AI居民,很多人第一反应是让他们互相对话。这是有道理的,因为对话确实是最直观的展示。但对一个城市模拟来说,居民之间真正重要的联系并不是聊天,而是竞争和共享同一批有限的资源:同一批岗位、同一批房源、同一条道路、同一批商店的库存。

比如周岚所在包装厂招工,岗位数量是有限的。她跳槽去了别处,原来的岗位空出来,另一位居民才有机会补上。她搬到城南,原来的两居室被挂出来,租金由需求决定,其他居民的住房选择随之变化。她每天上班走的那条路,同时也是三百个别的居民要走的路,车多了大家一起慢。这些联系都不需要任何一句对话,只需要居民读写同一份世界状态(World State)里的岗位表、房源表、路网负载和商店库存。

这也是大发娱乐AI避免把城市做成“一群会聊天的NPC”的原因。聊天式的Agent擅长制造戏剧性的片段,却很难保证账目守恒:一个岗位不会同时被两个人占据,一套房子不会同时住着两户人家,一份库存不会被卖出两次。把互动放在共享资源上,账就是自然守恒的,而聊天只是这些行为之上偶尔出现的表层。

大模型在这里的位置也因此变得清楚:它不需要每天为每位居民生成行为,而是用于那些真正需要“理解情境”的时刻,比如触发器亮起之后的重新评估、遇到没见过的事件时的判断,或者为一个新居民生成初始画像。日常的作息和路线选择,则交给规则和批量计算。这种分工的成本考虑,可以看4000个AI居民每天怎么行动里对批量推理的说明,也可以从事件驱动的Agent调用理解“什么时候才值得调用一次模型”。

居民一多,规则就不够用了吗

研究界对“让居民真正有认知”的兴趣很高,但也需要保持克制。Park等人在2023年的论文(arXiv上的Generative Agents)里,用记忆流、反思和规划三个部件驱动智能体,在一个名为Smallville的沙盒里让25个智能体自行作息、交谈,其中一个智能体被设定要举办情人节派对,邀请会在其他智能体之间自行传播。这个实验说明,带记忆的智能体确实能产生连贯的社会行为,但它的规模是25个,而不是一座城市。

另一方面,Santos等人在2026年的一篇评估论文里,用巴黎和上海一带的真实移动数据检验了两个基于大模型的城市模拟器,发现它们生成的行为在叙事上是“合理”的,但出行距离、停留时间等统计规律与真实数据存在明显差距。这个结果提醒的是:居民做出一个说得通的选择,和整个城市的行为分布接近真实,是两件不同的事。大发娱乐AI在设计里把它们分开对待,居民层面追求“有理由”,城市层面追求“可核对”,前者靠状态变量,后者靠下一节的指标。

判断一座模拟城市是不是真的在运转,可以看这五个指标

人口数字不会告诉你城市有没有在运转。下面五个检查项都可以在模拟里直接读出来,也都能在设计阶段拿来找问题。示例数字均为模拟假设,仅用来说明检查方式。

  1. 岗位与居民能对上账。假设一座三万居民的示例城市,就业人口和岗位总数应当基本吻合,失业率随岗位变化而波动。如果居民数大幅超过岗位数而失业率始终不动,说明岗位只是摆设。
  2. 通勤时间有分布,而不是一个数。同一个街区里,有人五分钟到公司,有人六十分钟。分布如果窄得像一条竖线,说明居民的选择是同一套公式的复印件。
  3. 价格冲击之后,反应有先后。把一个街区租金调高一成,先搬走的应当是对价格最敏感、搬家成本最低的人,习惯型居民会晚很多才动。如果所有人在同一个时间点一起走,惯性没有起作用。
  4. 消费在店铺之间有惯性。某家店涨价之后,客流应当是逐步流失,而不是瞬间归零;同时应当有一批老顾客愿意多忍一阵。
  5. 重复运行的结果是同一类,但不是同一个。用不同随机种子把同一座城市跑十次,总体趋势应当一致,细节各异。如果十次的结果完全一样,随机性和异质性被压平了;如果十次的结果完全不同,规则没有约束住系统。

这五项里没有一项要求居民“像真人一样聪明”。它们检查的是账目、分布、时滞和可重复性,也就是一座城市的骨架。骨架站得住,居民再叠加更细腻的行为才有意义。反过来,如果骨架有问题,再漂亮的对话也只是给一具空壳配音。

新增一个居民的成本,取决于你打算让他回答多少个问题

把人口做大,从技术上讲是最容易的。但每增加一个居民,就意味着多一份状态需要保存,多几条经验记录需要更新,多一次可能被触发的重新评估。所以,在大发娱乐的设计思路里,居民数量并不是最先要提高的指标,先要提高的是每个居民“能回答的问题”的数量:能不能回答自己为什么换工作,为什么搬家,为什么今天没走常走的那条路。只要这些问题都有可追溯的状态变量作答案,人口从几千扩到几万,就是同一套机制的复制,而不是新的赌博。

回到周岚。如果一位玩家在她住的街区修了一条新的地铁线,她会不会因此换掉常走的路线?她的伴侣会不会因为通勤缩短而接受更远的工作?房东会不会趁机涨租?这些问题的答案会一层一层传到住房、企业和财政,这是新地铁如何同时改变房价、企业和交通要讲的另一条因果链。而在那之前,先让每一个居民都有一份自己的账,是这条链能成立的前提。