证据攒够了,角色才变
让大模型扮演小说人物,这件事听起来已经做烂了:给一个角色卡片,对话,模仿语气。但现存系统的病是一样的——角色设定一锤定音。剧情演到第十章,林黛玉还是开场的那个林黛玉;故事里烧掉的房子,下一幕还立在那里。论文里管这叫静态人设模仿:模型在复读角色,不在扮演角色。
证据攒够了,角色才变
让大模型扮演小说人物,这件事听起来已经做烂了:给一个角色卡片,对话,模仿语气。但现存系统的病是一样的——角色设定一锤定音。剧情演到第十章,林黛玉还是开场的那个林黛玉;故事里烧掉的房子,下一幕还立在那里。论文里管这叫静态人设模仿:模型在复读角色,不在扮演角色。
香港科技大学的一支团队(与 LIGHTSPEED、华中科技大学及独立研究员合作)把这个问题重新定义了一下:交互式文学世界的仿真,不该是复刻原著里的一段段场景,而是一个长周期过程——角色在互动里变化,世界在事件里变化,两边还得对得上。他们把这套想法做成了完整的框架加基准,叫 EvolvingWorld。
角色这一侧:快慢要分开
真实的人物是怎么变的?情绪当天就能变,人格得用年攒。EvolvingWorld 给角色智能体设计了一套多时间尺度的演化机制,核心是一个隐藏追踪器。
它的工作方式是:角色轮廓的每个维度(情绪、关系、人格……)各有自己的「变化性」参数。交互中出现的微弱信号——一句反常的话、一个犹豫的动作——不会直接改写人设,而是先存进隐藏追踪器,作为弱证据单独累积。攒够了,证据足够强了,才触发一次正式的状态更新。
这个设计朴素得近乎常识,却恰好是此前系统普遍缺失的东西:要么一刀不许变(角色永远静态),要么太容易被一句话带偏(昨天说了一架,今天人设里就多了「性格暴戾」)。区分「一次波动」和「一个趋势」,靠的正是把证据分两级存放。
角色维度本身也是开放的:不预设「每个角色必须有性格/目标/关系三类属性」的固定模板,而是让模型根据书的类型和背景自己决定该追踪什么维度,甚至允许环境、角色群作为特殊的交互单元——写群像戏时这很必要。
世界这一侧:房子里有房间
另一个耦合模块是 LLM 世界模型。它同时维护两层状态:全局设定(历史背景、社会制度)和位置级的物理状态。位置可以嵌套——一栋房子里套着各个房间,屋外的道路是独立的原子位置;每个位置存着详细描述,还追踪所有重要的非角色实体及其状态,论文里的例子是「圣诞树立在旁边」。
关键在更新方式:所有状态都随角色互动自动演化,不需要手动搭沙箱。换一本完全不同构造的书——从红楼到星际——框架照用。这和角色侧的开放模式是同一条原则:结构由内容自己长出来,不由框架预先规定。
把整个流程拆成七份作业
要让这一切可训练,团队把完整仿真流程拆解成七个可监督任务:选角(世界模型从全角色集合里挑出场人物)、定场景(选地点、定情境)、动机更新(每个参与者带着场景专属动机上场),再到交互生成和状态更新。数据集从 57 本书中构建,产出 138,596 个监督训练样本和 222 个测试快照,仓库已开源于 github.com/HKUST-KnowComp/EvolvingWorld。
评估是这套工作里我最欣赏的部分:轨迹级的 LLM-as-Judge 协议,横跨 10 个维度、20 个指标。它衡量的不是单场景演得像不像,而是长跑之后故事是否还连贯、角色是否还是那个人、世界是否还记得发生过什么。
结果一句话:在 Qwen-7B 和 Llama-8B 上,用 EvolvingWorld 数据训练的智能体大幅超过此前最好的角色扮演基线(CoSER 和 Crab),长周期仿真里常见的性能衰减被明显压低。论文里有个判断值得单独抄下来:长周期角色扮演需要的不是更好的对话模仿,而是对角色与世界状态耦合演化的建模。
尾声
回头看,这套框架里最聪明的部件反倒是那个最不起眼的隐藏追踪器:它承认不是每句话都算数,让弱证据先安静地攒着,攒够了才动手。这几乎就是小说家处理伏笔的方式——写下的那一刻不动声色,揭晓要等到它自己成熟。
*信源:EvolvingWorld: An Open-Schema Framework for Co-Evolving Role-Play Agents and World Model in Interactive Literary World(arXiv:2607.17250,2026-07-19,Qing Zong/Yue Guo/Mengxin Yang/Yiwen Guo/Yangqiu Song,香港科技大学+LIGHTSPEED+华中科技大学+独立研究员);基准=57 本书、138,596 训练样本、222 测试快照;评估=轨迹级 LLM-as-Judge、10 维度 20 指标;基线含 CoSER、Crab;文中机制描述取自其摘要与第 2-3 节。*