AI Agent正经历一场关键蜕变——从单纯的对话工具,逐步进化为能够真正“入戏”的专业角色扮演者。腾讯游戏数据团队在DataFunSummit的一次分享中,深度剖析了角色扮演智能体的构建思路、技术挑战与落地路径,以下为精华内容梳理。

首先,我们来理解角色扮演智能体的定义。简单来说,就是让AI去“演绎”一个特定角色,并与环境或其他角色产生互动。这个角色可以是广为人知的经典人物,也可以是全新设定的虚拟角色。其核心逻辑并不复杂:在现有大模型的基础上,为智能体设定角色属性(如性格、说话风格、行为习惯),同时明确其承担的职责与任务(例如在游戏中陪玩或充当虚拟医生),然后让智能体严格遵循这一设定进行交互。
从应用场景来看,这一思路已在多个领域落地。医疗领域,可用多个智能体分别扮演医生、护士、检测员,协同辅助完成诊断;软件开发中,多个智能体各司其职,充当开发者、产品经理、项目经理,协作开发软件;大模型评测也可让智能体扮演裁判或心理咨询师;当然,最直观的仍是游戏——做成智能NPC或游戏助手。
当前,构建角色扮演智能体主要存在两条技术路线。第一条是单一模型加Prompt,核心是将角色描述写成详细的提示词,直接喂给大模型,让它按此上下文对话。第二条是基于Agent框架的工作流,运用意图理解、改写、检索等组件,强化角色的扮演能力。但初步搭建后,两条路线都会遇到一个共性问题:智能体的行为与预期差距较大,常出现行为不稳定或“出戏”的情况。
具体而言,构建角色扮演智能体需要攻克三大难关。第一关是提升角色忠实度——确保角色的言行与人设严丝合缝。角色设定往往复杂,除了年龄、性别等基本信息,还涉及时代背景和知识范围。古代设定不应知晓现代事物。但大模型的幻觉是顽疾,面对未知问题会自行编造答案,导致角色“穿帮”。第二关是构建长期记忆——这是让智能体行为趋近真人的关键,但大模型能处理的上下文长度有限,无法将所有历史交互塞入Prompt。第三关是如何评估——除了普通对话能力,还需考察其说话习惯、性格是否契合角色,纯靠人工测试既耗时又不全面。
接下来,我们逐一解析如何攻克这些难点。
如何提升角色忠实度?
目前至少有四种技术路径可供探索。
思路一:将Prompt设计得更加全面细致。 基本思路是把角色所有信息都写入Prompt,包括人物关系。例如,可用“喜爱度”和“熟悉度”两个指标描述关系,这两个值还可随事件或时间动态调整。但存在一个问题:角色信息是动态的,静态Prompt在某些场景下会误导模型。举例说明:构建一个扮演哈利波特的智能体,在与赫敏对话时,赫敏提议找罗恩喝一杯,若Prompt只写“三人关系好”,模型会回答“同意”。但在原著中,哈利与罗恩刚闹别扭,此时他应想与赫敏独处,不愿见罗恩。解决方案是在Prompt中引入“喜爱度”和“熟悉度”,甚至可按章节构建不同Prompt,因为不同章节的人物状态和关系不同。但成本确实较高。
思路二:构建示例对话库。 这次不把所有信息提前塞入Prompt,而是准备一个话术库。对话过程中,根据用户发言,从库中检索相关示例对话,放入当前Prompt作为参考。这种方法更灵活,Prompt长度也可控。对话库可由人工编写,也可从文学作品、影视脚本中自动抽取角色对话,减少人工工作量。
思路三:直接训练模型。 通过模型训练从根本上增强扮演能力。例如CharacterGLM的做法:先为一批角色构建Profile,再为每个Profile构建对话数据,最后用这些数据对大语言模型进行进一步训练。数据构造主要有四种方式:人工扮演(两人分别扮演用户和角色对话)、大模型直接合成、从文学作品抽取、人工与原型机交互模拟(先搭建不完善的智能体,人工与其对话,生成不合格回复时人工修复)。
思路四:场景重构。 核心思想是让模型真正“成为”这个角色,方式就是让它像人一样经历角色的生活。具体做法是直接构建角色可能面临的各种生活场景,生成反应和对话数据,然后用这些数据训练模型。同时还可构建“保护性”场景——在这些场景下角色会被问到未经历过的事,并给出“不知道”或“没听过”的拒答式反应,帮助模型识别自己的知识边界。代价也很明显:单个角色效果很好,但每个角色需单独训练,成本高,泛化性较差。
如何提升长期记忆能力?
当前主流方案是基于检索增强的长期记忆。核心逻辑是:将用户与角色的对话历史结构化存储到记忆库中,处理后续发言时,基于用户发言检索相关记忆信息,补充到大模型,使模型能重复利用过去记忆。
长期记忆的构建涉及三个关键环节:存储、检索和管理。
存储策略。 关键在于如何将低密度的原始对话转化为高密度的结构化信息。这里有两个思路。一个是层次化记忆(MemoryBank),将对话历史先总结成事件级摘要,记录每天发生的事及关联,再基于这些总结出对用户的认知——性格、爱好、重大事件等,形成持续更新的用户画像。另一个是三元组记忆(MemLLM),将普通对话文本抽成信息密度更高的三元组(实体-关系-实体),由关系表、实体表和三元组表构成,介于知识图谱与纯文本之间,构建维护成本低于图谱,检索效率高于纯文本。
检索策略。 它与存储策略直接挂钩。除了基础的向量检索和关键词检索,还可结合存储结构做定制。例如混合指标检索(Generative Agents的做法),在检索时同时考虑记忆的最近访问情况、重要性与当前发言的相关性。还有自适应检索——人在聊天时并非每次发言都翻老底,只在需要时才回忆。因此模型可自主决定检索时机,例如通过模型微调引入一个特殊token,生成过程中发现需要检索就输出该token,停止生成,检索完再继续。
管理策略。 记忆会随时间不断累积,若不管理,会出现记忆冲突、冗余或检索效率下降。常见手段包括合并相似记忆、解决冲突、遗忘不重要记忆。第一种方法是基于记忆强度管理(MemoryBank),模拟艾宾浩斯遗忘曲线,每条记忆都有一个随时间指数衰减的强度参数,被检索过就重置变强。检索时优先找强度高的,强度低的低概率被召回,实现“伪遗忘”。第二种方法是基于相似度管理(Lyfe Agents),先将信息做阶段性临时存储(如存一天),一天结束后通过语义聚类归类总结,转成新的长期记忆,存入时基于向量相似度检查是否与已有记忆相似,相似则替换或融合。
如何系统评测角色扮演能力?
系统评测需要一个完善的指标体系。不同研究提出的指标虽各有侧重,但核心都是在基础对话能力之上,重点考察“角色一致性”和“类人性”。角色一致性强调言行是否与属性、知识和性格一致;类人性则关注是否像真人一样有记忆能力、行为方式像人、具有性格吸引力。CharacterBench和CharacterEval各自提出了具体的评测维度。
评测方法大致分为静态和动态两类。
静态评测。 核心是构建评测数据(对话脚本和评测问题),然后进行主观或客观评测。数据构建方式与模型训练数据合成类似,包括人工扮演、文学作品抽取、人与原型智能体交互、多智能体交互等。主客观评测方面,主观评测主要依靠人工或裁判模型打分,为避免单个裁判模型的偏差,可用多个裁判模型同时打分,计算平均分、做相互校验。客观评测则以选择题等形式进行,结果更精准。不同维度适合不同方法:吸引力、趣味性等偏主观的,用主观评测;知识问答、长期记忆等可量化的,用客观评测。
动态评测。 静态方法需提前构造数据和问题,很难穷尽角色的所有行为。动态评测关注角色在不同环境下的行为,评估更全面。第一种方法是动态选择环境生成评测数据(PersonaGym),随机选一个环境(学校、办公室、餐厅等),生成该环境下可能发生的事件和对话,构造问题,然后由人工或大模型判断角色行为是否符合人设和场景。第二种方法是观察智能体在沙盒中的行为(CharacterBox),构建文字游戏般的沙盒环境,让角色之间实际交互,每次交互都会更新角色信息和外部环境,形成循环,由外部模型持续监控和评价。这两种方法都对评分手段的可靠性和效率有更高要求。
未来展望
以上是当前相对成熟的技术。最后提两个长期看可能带来重大影响的方向。
第一是记忆形态的拓展。目前长期记忆以文本为主,未来可能发展出更多形式来模拟人脑记忆。例如AI-native Memory,用专门的记忆模型完成存储和检索,与主模型分离,更贴合大模型时代。还有Memory3,提出了隐式记忆、显式记忆和外部记忆构成的层次化结构,通过引入稀疏化的显式记忆降低读写成本,提升利用效率。
第二是知识编辑。角色智能体与通用智能体的一个关键区别在于,角色有时需要“不知道”某些模型本来知道的知识——比如扮演古人就不能知道现代知识。但基于梯度更新的模型训练很难实现精确的知识操控。知识编辑技术(如MEND)提供了一种思路:直接定向更新模型中的特定知识,实现对知识边界的精确控制。如果这条路走通,那么角色扮演的“出戏”问题,很可能会迎来一次真正的质变。
