玩家对酒馆老板说:“北边的粮仓昨晚烧了。”老板叹了口气,说这个冬天要难熬了。三分钟后玩家想买一袋面粉,价格一分没涨;走出门,街上的人依旧在闲逛,仿佛什么也没发生。老板刚才说的每一个字,都没有落进世界里。
这是许多“会聊天的NPC”的典型状态。PA真人AI大模型方向要讨论的,是这一步之后的事:怎样从“说得像”走到“做得到、记得住、改得动世界”。
对话只是接口
把大语言模型接到NPC身上,最先获得的是表达能力:语气、方言、性格、即兴回应。但表达能力回答的是“怎么说”,不回答“为什么这么做”“做了以后世界怎样”。聊天机器人的循环是读入上下文、输出文字;游戏的循环是读取世界状态、决策、执行动作、世界更新,再被别的系统读取。
硬接在一起的后果很熟悉:NPC承诺给你钥匙,背包里却没有;说自己在赶路,坐标从没移动。
NPC Agent:有目标、记忆、计划和行动
让NPC从“应答机”变成“智能体”,至少要补上四样东西。
- 目标:店主想在天黑前卖完存货,卫兵想抓住偷苹果的孩子。目标决定NPC在没有玩家搭话时还会做什么。
- 记忆:发生过什么、谁欠谁人情、玩家上次做了什么。斯坦福2023年的Generative Agents研究给出了一个经典架构:自然语言记忆流,加上定期“反思”得出高层结论,再由检索驱动规划;消融实验显示,观察、规划、反思三个部分对角色的可信度都有贡献。需要注意,那篇论文里的智能体规模是25个。
- 计划:把目标拆成一串可执行的步骤,并在环境变化时重排。
- 行动:真正调用游戏里存在的动作,比如移动、交易、喊话、锁门。
行动最容易被忽略,也最能区分聊天与智能。相关观点可参考NPC越来越会说话以后,为什么“会聊天”仍然不是智能角色的终点。而长期记忆本身足以单独成篇,见AI桌游主持人长期跑团的记忆问题。
工具调用:通过受控接口改变世界
工具调用的意思是:模型不能直接改写世界,它只能提交一份“想做什么”的请求,由游戏侧的接口接收、校验、执行。请求会被拒绝,比如“把粮价改成1”超出了店主的权限,或者“召唤十个守卫”超出事件预算。
{
"tool": "adjust_price",
"args": { "item": "flour", "delta_pct": 12, "reason": "granary_fire" },
"actor": "npc_innkeeper_03"
}
// 规则引擎校验:权限、区间(示例:单次涨幅不超过20%)、冷却
// 通过后写入世界状态,并广播 price_changed 事件
这种结构在商业实践里也能看到。据NVIDIA技术博客,KRAFTON为《PUBG》的可协作角色PUBG Ally采用分层设计:行为树负责移动、瞄准、战斗,按游戏tick运行;语言模型负责推理与说话。角色通过“观察工具”读取实时对局状态,并把工具返回的结果当作“唯一真相”。这样战斗动作不必等模型思考,模型也不会凭想象编造对局信息。
PA真人的设计思路与此一致:模型负责“提议”,规则层负责“提交”,见PA真人AI大模型怎样同时管理NPC、玩家、地图和世界状态中的“唯一事实源”。
“世界模型”的两种含义
游戏圈里“世界模型”一词至少指两件事,混用会造成很多误会。
第一种是游戏内部的世界状态模拟:一个结构化的、可查询的、有规则约束的世界,包含实体、位置、物品、关系、任务和事件日志。NPC与玩家共同读写它,它是“世界为什么是这样”的答案。大语言模型只读取其中一个视图,提出行动建议。
第二种是生成式世界模型:根据历史画面和玩家操作,直接预测下一帧。GameNGen(2024年)用扩散模型在单块TPU上以约每秒20帧模拟DOOM;Decart与Etched的Oasis(2024年)生成类似Minecraft的画面,官方自己指出长时程记忆很短;微软研究院的Muse(2025年)基于《Bleeding Edge》的人类对局数据训练,强调一致性、多样性和持久性;DeepMind的Genie 3(2025年)可以由文字生成实时可导航的世界,720p、每秒24帧,一致性可保持数分钟,官方承认连续交互仍是分钟级。
两类模型各有位置,不能互相替代。生成式的擅长“看起来像”,但视觉记忆有限,状态难以精确维持;内部世界状态擅长“账对得上”,却没有画面。对需要数小时游玩的游戏,更现实的方向是让结构化状态承担持久与规则,生成模型承担表现。
一条完整链路:酒馆NPC得知粮仓被烧
回到开头。以下是一次示例流程,所有数值都是示例参数。
- 感知:玩家告诉老板“粮仓烧了”。系统不直接信任这句话,而是在世界状态里查询:粮仓实体的状态确实为“焚毁”,事件时间为昨晚。
- 记忆写入:生成一条事件记忆——“粮仓焚毁,来源:玩家”,重要度评分8/10(示例),并关联实体“北仓库”“老板”“玩家”。
- 目标重排:老板原来的目标是“卖完存货”,现在新增“保住库存、控制损耗”,优先级提升。
- 计划:生成三步计划:提高面粉与麦酒的价格,停止赊账,向北门卫兵打听起火原因。
- 工具调用:调用调价接口,涨幅12%(示例),通过区间校验;调用“暂停赊账”标记;调用“前往北门”移动指令。
- 世界状态变化:价格表更新,老板离开柜台,酒馆进入“无人看店”状态,相应写入事件日志。
- 其他NPC反应:邻近商人读取到“面粉价格上涨”的事件,触发各自的囤货目标;北门卫兵被询问后,把“可疑纵火者”的传闻写进自己的记忆,并可能传给其他卫兵。
整条链路里,语言模型出现了三次:理解玩家的话、拆解计划、润色台词,决定“能不能发生”的始终是规则层。
三类系统的对比
| 维度 | 聊天机器人 | NPC Agent | 游戏世界模型 |
|---|---|---|---|
| 核心输出 | 文字回复 | 动作与文字 | 持续更新的世界状态 |
| 是否有目标 | 没有,被动应答 | 有,可自主行动 | 不适用,服务于全体角色 |
| 记忆 | 依赖上下文长度 | 记忆流、事件与关系 | 状态账本与事件日志 |
| 能否改变世界 | 不能 | 通过工具调用间接改变 | 本身就是世界的记录 |
| 评测难度 | 对话质量 | 行为可信度,难自动化 | 一致性与可回放性 |
延迟、成本与评测,仍然没有好办法的部分
延迟是第一道门槛。战斗、移动这类决策以帧为单位,不能等大模型。分层结构(实时靠行为树与规则,规划和对话交给模型,允许异步)是目前比较稳的解法。具体如何按任务分配不同大小的模型,属于游戏AI为什么越来越需要模型路由的话题。
成本是第二道:每个NPC每次决策都调用大模型,规模一大就难以承受,小模型本地化与缓存是常见方向。
评测则最棘手。非确定性系统无法用固定脚本断言对错,KRAFTON自己也坦承玩家体验最重要却最难评估,靠的是自动评测、线上A/B与大量真实玩家反馈。叙事一致性方面,2026年的NCP-Bench基准显示,主流模型在玩家刻意捣乱的互动叙事里,事实矛盾率仍在约四成到近七成之间(该基准下、单一来源),因此外部状态账本几乎是必需品。
PA真人游戏大模型研究组目前的看法,是与其问模型能不能扮演NPC,不如先划清规则层与模型各自的决定权。更多思路可在PA真人AI大模型栏目中找到,趋势层面的梳理则见AI游戏正在从智能NPC走向可以持续运行的动态世界模型。