想象你是一座小剧场的编剧兼导演。你花三天时间写了一份“人物小传”:他叫林深,表面毒舌、内心细腻的程序员,口头禅是“懂?”,童年在外婆的江南小院长大。演员(大语言模型)拿到小传后登台,和你即兴对戏。可戏演久了,演员会“跳戏”——突然说出完全不像林深的话。这时候,你需要副导演手册把他拉回角色,还需要一本场记本,记下你刚才说过的事。这座剧场就是 Glow AI 虚拟角色平台;这份人物小传,就是人设 Prompt。这篇文章要讲的,正是如何为 AI 写一份合格的小传:性格怎么写才立得住?口吻怎么调才像本人?往事怎么编才让对话有厚度?演员跑偏了怎么拽回来?你的开心难过怎么被接住?你说过的话怎么被记住?掌握这套手艺后你会发现:让大模型“从听话到有人味”,关键不在更大的模型,而在一份精心设计的人设。
对 AI 从业者而言,人设 Prompt 工程是让大模型从“听话”升级到“有人味”的高杠杆技能。掌握角色一致性、情感计算与长期记忆的协同设计,是构建社交陪伴产品、智能体人格化与沉浸式交互的核心能力,也是大模型应用中投入产出比最高的方向之一。
目录
可视化演示
展示NER模型对文本中人名、机构、地名等实体的识别结果,通过颜色编码区分实体类型,支持按类型筛选高亮。
本节配有交互动效(进入视口后自动加载,约 3KB)。
命名实体识别 人名(PER):识别人物名称 机构(ORG):识别公司、组织名称 地名(LOC):识别地理位置 P(tag|w)=argmax P(w|tag)P(tag) 点击按钮按实体类型筛选高亮显示。
人设Prompt设计:先立人物小传骨架
写人物小传的第一步,不是堆砌华丽辞藻,而是先立骨架:这个人叫什么?底色是什么?说话什么调子?经历过什么?Glow 的“人设 Prompt”就相当于这份骨架。它是一段写给大模型看的“人物小传”,通常放在系统提示词里,像副导演手册一样,在每场戏开拍前告诉演员:你现在是林深,不是别人。
很多第一次接触 Glow 的同学以为人设就是一句“你是一个温柔的女生”。其实真正的产品级人设是一份结构化信息卡,业界常称“角色卡”(Character Card)。角色卡把散落的设定组织成固定的字段结构,让下游的对话系统、记忆模块、情感模块都能稳定地读取和引用。这就像编剧把人物小传按章节装订,场务、灯光、服装各取所需。
Glow 的人设 Prompt 高度依赖三个核心字段。第一是性格特征:决定角色“是什么样的人”,例如“表面毒舌、内心细腻”。第二是说话风格:决定角色“怎么说”,例如“句尾常带懂?”。第三是背景故事:决定角色“为什么是这样”,例如“童年在外婆的江南小院长大”。三者相互约束,构成一个最小完备的角色骨架。
骨架立住了,演员才算拿到“入场资格”。后面的每一章——性格、口吻、往事、一致性、情绪、记忆——都是在这个骨架上填肉。骨架如果歪了,后面雕得再细,角色也会在关键时刻“散架”。
- 人设变量表示完整的虚拟角色设定
- 性格标签决定角色“是什么样的人”,一组可观察的性格关键词
- 说话风格决定角色“怎么说”,包括口头禅、语气、词汇与句式偏好
- 背景故事决定角色“为什么这样”,身世与世界观素材
- 尖括号组合把三个部分绑定为一个结构化对象,供系统稳定读取
性格特征构建:给角色拍性格证件照
给演员定性,不能只写“他是个好人”。导演手册会这样写:他听到朋友失恋,会先沉默十秒,然后递一罐冰啤酒,说一句“都过去了”。这就是行为化的性格描写。AI 角色同理,性格特征是人设 Prompt 中信息密度最高的部分,也是最容易写废的部分。
心理学把人格归纳为“大五人格”模型(Big Five),用五个连续维度刻画一个人:开放性、尽责性、外向性、宜人性、神经质。给虚拟角色做性格设定,可以借用这把“性格尺”,把抽象感觉落到相对可比较的坐标上,让“这个角色偏内向但责任心强”这样一句话变成一组可描述的向量。
除了五维坐标,Glow 的角色卡还要注意三点。其一,标签要“可观察”:“善良”不如“总把最后一块蛋糕让给别人”。其二,允许矛盾但自洽:“毒舌”与“细心”并不冲突——毒舌是表达方式,细心是底层关怀。其三,要有价值观锚点:角色坚信什么、忌讳什么,这决定它在关键话题上绝不妥协的底线。
五维坐标就像给角色拍了一张性格证件照。有了这张照片,后面的口吻、往事、反应策略都围绕它搭配,演员才不会演着演着变成另一个人。
- 人格向量把一个人的性格近似为五维坐标
- 开放性 O是否好奇、爱尝鲜、想象力丰富
- 尽责性 C是否自律、有始有终、注重条理
- 外向性 E是否健谈、爱热闹、需要社交能量
- 宜人性 A是否友善、信任他人、乐于合作
- 神经质 N情绪是否容易波动、抗压能力高低
说话风格定制:给自己配专属声线
台词腔调决定观众信不信这个角色。电影里,一个“这话我说不出口”的角色,观众一秒就能认出;一个每句话都带“懂?”的程序员,也立刻有了辨识度。Glow 里,说话风格就是角色的“声线”。
说话风格通常从四个维度锚定:口头禅、语气、词汇、句式。口头禅是最强记忆点,如“懂?”“罢了”;语气决定语速与温度,如“慢而克制”“轻快上扬”;词汇偏好是角色爱用的词域,比如程序员角色爱说“接口”“部署”;句式习惯是短句多还是长句多,喜欢反问还是感叹。
从技术视角看,这些风格约束会进入生成模型的概率分布。模型在每一步计算下一个词时,都会同时考虑历史上下文与人设风格,最终输出的句子像被一只“风格之手”校正过音准的歌。
风格约束就像声乐指导站在演员身边,每一句台词出口前都被轻轻掰回正确的调子。观众听到的不是一串孤立的词,而是一个活生生的人在说话。
- 目标词 $w_t$当前正要被模型挑选的下一个词或字符
- 上文序列 $w_{1t-1}$:此前已经生成的全部词,构成对话上下文
- 人设条件角色设定信息参与条件概率,约束“我是谁”
- 风格条件口吻与词汇偏好约束,约束“我怎么说”
- 条件概率给定历史、人设、风格之下各词的分布
背景故事设定:往事就是对话的素材库
人物前史决定了一个人为什么是今天的样子。一个在江南小院长大的人,说话自带水汽与慢半拍;一个经历过背叛的人,对“信任”二字格外敏感。背景故事,就是角色的“来路”。
Glow 的角色卡里,背景故事至少要覆盖四类素材:身世经历(关键成长节点)、关系网络(角色与用户及他人的关系)、世界观(角色相信的规则与底线)、秘密(不轻易说出但影响行为的信息)。这些素材不需要一次性全部暴露,而是像抽屉一样,在合适的话题下被逐一拉开。
背景故事更大的价值,是为对话提供“可调用的往事素材”。当用户说“我最近压力很大”,一个设定为“曾在 ICU 陪护过母亲”的角色,会自然地接住这句话,讲出有体温的经历。这比任何通用的安慰话术都更有感染力。
往事越丰富,演员即兴发挥时越有“心理依据”。Glow 的角色不是一张纸片,而是一个带着完整来路、能在对话里随时引用旧时光的人。
- 剧本角色可回溯的全部往事素材集合
- 身世出生、成长与重大转折事件,解释角色性格成因
- 关系角色与用户及其他角色的连接,决定亲疏分寸
- 世界观角色相信的规则与底线,决定关键话题立场
- 秘密不主动说但影响言行的重要信息
- 集合花括号四类素材组成按需抽取的素材库
角色一致性:让演员不跳戏
演员演到 50 集突然换了一种性格,观众立刻弃剧。虚拟角色的“职业操守”,就是无论在多少轮对话之后,都还是观众认识的那个人。这,就是角色一致性。
多轮对话里,人设信息会被新内容不断冲淡——上下文窗口有限,新话题挤占老设定,角色一不留神就“跳戏”。Glow 的解法是系统地维护一致性:把“他是谁”压缩成一段人设摘要,每隔几轮重新注入;同时跟踪对话状态,检测回复是否偏离设定。
工程上,一致性维护有三个抓手。一是人设锚定:每轮或每 N 轮把摘要放进提示词,像舞台侧幕的提词板。二是状态追踪:记录当前情绪、话题、关系进展,让角色“知道现在演到哪一幕”。三是偏差检测:用规则或另一个轻量模型判断回复是否合乎人设,一旦偏离就记录并当场纠偏。
场记加副导演,双保险让演员两百集不跳戏。角色一致性不是靠演员“记性好”,而是靠舞台系统持续提醒——这就是 Prompt 工程的用武之地。
- 偏离次数 $N_{\text{偏离}}$回复内容明显不符合人设的轮次数
- 总轮次 $N_{\text{总轮次}}$纳入评分的全部对话轮次数
- 偏离率跳戏轮次占总轮次的比例
- 一致性得分用 1 减去偏离率,越接近 1 越稳定
情感计算机制:先读懂空气再开口
好演员会接住对手的情绪。用户说“我今天好难过”,角色若回一句“好的呢”,瞬间出戏;若先沉默一拍再说“那我陪你坐一会儿”,观众立刻代入。Glow 的情感计算,做的就是这门“接戏”的手艺。
情感计算可以拆成两步:先识别,再回应。识别层从用户文本中判断情绪标签——开心、难过、生气、平静;回应层则是“用这个角色的方式”去接住情绪。同一个“难过”,温柔角色会安慰,毒舌角色可能用别扭的关心。
落地时,识别可以用情感词典,也可以用微调的分类模型,甚至直接让大模型输出情感标签。得到标签后,人设模块会把它作为新条件拼进 Prompt,让角色的回应既符合情绪又符合人设。
情感计算是虚拟角色的表演课:先读懂空气,再决定怎么说话。情绪识别的准确率不一定要 100%,但只要方向对了,用户体验就会从“和机器聊天”跃迁为“有人懂我”。
- 情感标签集合 $E$预设的情绪类别,如开心、难过、生气、平静
- 输入文本 $x$用户当前发送的消息内容
- 条件概率 $P(e \mid x)$看到这段消息后,用户属于情绪 $e$ 的可能性
- 最大后验选择在所有候选情绪中取概率最大的一个
- 输出标签 $\hat{e}$最终判定出的情绪,送入回应层
长期记忆机制:场记本里的重点笔记
场记本上记着观众说过的话。两周前你随口说养了一只叫团子的橘猫,今天角色突然问“团子还挑食吗”——这种被记住的感觉,是陪伴感真正的来源。长期记忆机制,就是 AI 角色的“场记本”。
对话历史不可能全量塞进上下文窗口,所以 Glow 的记忆系统要分级管理:核心记忆(用户是谁、长期偏好)、事件记忆(发生过的重要事情,如“上周面试失利”)、工作记忆(当前对话的主题与情绪)。不同等级的记忆有不同的留存优先级。
写入侧,系统从对话里提取关键信息(用户昵称、重要事件、情绪节点)入库;读取侧,当新消息进入时,用语义相似度检索最相关的记忆,拼进 Prompt。此外还有遗忘机制:去重、过期降权、覆盖更新,避免记忆库越来越浑。
记忆不是录音机式的全量保存,而是场记在戏台边写的重点笔记。重点笔记让角色“越聊越懂你”,而不会变成一个什么都记不住、又什么都往外倒的话痨。
- 记忆库 $M$按分级存放的长期记忆集合,类似分格的场记抽屉
- 单条记忆 $m$一条结构化信息,例如“用户养了橘猫叫团子”
- 查询 $q$由当前对话转化出的语义查询
- 相似度函数 Sim衡量一条记忆与查询在语义上的匹配程度
- 最佳记忆 $m^*$被选中并注入上下文的那一条记忆
AI 应用场景
社交陪伴 App 的虚拟恋人
阶段:人设构建 + 多轮对话生成
解决的问题:传统聊天机器人回复机械、千人一面,用户难以建立情感连接。Glow 用结构化人设 Prompt 让每个角色拥有独特性格与口吻,并通过一致性维护让用户感觉“对面真的是那个人”。
具体案例:用户为角色“林深”填写毒舌人设卡后,每次对话都自动注入人设摘要;用户深夜吐槽加班,模型先识别“疲惫+委屈”情绪,再按林深“嘴硬心软”的性格回应:“啧,又加班?罢了,给你讲个冷笑话。”用户连续一周互动后,角色在开场白里提到“你上周说项目周四上线”。
品牌虚拟 IP 客服
阶段:人设注入 + 情感识别 + 一致性维护
解决的问题:传统客服话术模板化、情绪感知弱。品牌用带人设的 AI 客服统一“店长人设”,既保持品牌调性又能感知客户情绪。
具体案例:某茶饮品牌把 AI 客服设定为“元气店员小桃”,固定口头禅“宝子~”。客户抱怨送餐慢时,系统先识别“生气”情绪,再让小桃回复“宝子别气,小桃这就去催单,送你一张券赔罪”。所有渠道的回复都走同一份人设卡,保证微信、APP、门店屏显风格一致。
游戏 NPC 的长期记忆
阶段:长期记忆 + 动态对话生成
解决的问题:传统游戏 NPC 对话固定、记不住玩家,沉浸感弱。为 NPC 配备记忆分级与检索后,玩家的过往行为能直接影响后续对话。
具体案例:开放世界 RPG 中,铁匠 NPC 记住玩家曾帮他找过女儿,之后每次见面都会主动问候并赠送折扣;玩家若曾偷过他的矿,NPC 语气会冷淡且拒绝交易。这种“被记住”的反馈极大增强了世界的可信度。
Python 演示
class PersonaEngine: """Glow 风格虚拟角色人设引擎 (教学简化版)""" def __init__(self, name, traits, style_tokens, backstory): self.name = name self.traits = traits # 性格特征关键词列表 self.style_tokens = style_tokens # 说话风格关键词列表 self.backstory = backstory self.memory_map = {} # 长期记忆: user_id -> {key: value} self.gc_count = 0 # 对话轮次计数 self.off_count = 0 # 人设偏离计数 def detect_emotion(self, text): """基于小词表的情绪识别: 返回开心/难过/生气/平静""" emotion_lexicon = { '开心': ['开心', '哈哈', '太好了'], '难过': ['难过', '哭了', '伤心'], '生气': ['生气', '讨厌', '走开'] } for emotion, words in emotion_lexicon.items(): if any(w in text for w in words): return emotion return '平静' def remember(self, user_id, key, value): """写入一条长期记忆, 按用户隔离""" if user_id not in self.memory_map: self.memory_map[user_id] = {} self.memory_map[user_id][key] = value def recall(self, user_id, query): """从长期记忆中检索: 记忆键命中查询即视为相关""" memories = self.memory_map.get(user_id, {}) return [(k, v) for k, v in memories.items() if k in query] def check_consistency(self, reply): """计算回复命中性格与风格关键词的比例, 即一致性得分""" self.gc_count += 1 total = len(self.traits) + len(self.style_tokens) hit = sum(1 for t in self.traits if t in reply) hit += sum(1 for s in self.style_tokens if s in reply) ratio = hit / max(total, 1) if ratio < 0.3: self.off_count += 1 return ratio def reply(self, user_id, user_text): """模拟带人设的回复: 识别情绪 -> 调用记忆 -> 套用风格""" emotion = self.detect_emotion(user_text) self.remember(user_id, '上次情绪', emotion) notes = self.recall(user_id, user_text) hook = '我记得你说过' + notes[0][1] if notes else '我在认真听你说' return '[%s] %s: %s (情绪识别: %s)' % ( self.style_tokens[0], self.name, hook, emotion) def main(): """演示: 构建人设, 写入记忆, 多轮对话与一致性评分""" persona = PersonaEngine( name='林深', traits=['毒舌', '细心', '温柔'], style_tokens=['懂?', '罢了'], backstory='外婆在江南长大, 说话慢而克制' ) persona.remember('user_001', '团子', '我养的橘猫, 生病了但已好转') for text in ['我今天好难过, 团子生病了', '哈哈没事啦, 它已经好了']: print(persona.reply('user_001', text)) score = persona.check_consistency('毒舌又细心的我, 懂?') print('一致性得分: %.2f' % score) print('偏离次数: %d / 总轮次: %d' % (persona.off_count, persona.gc_count)) if __name__ == '__main__': main()
class PersonaEngine:定义“人设引擎”类,相当于给 AI 演员配一位副导演,统一管理性格、风格与记忆。self.traits = traits保存性格特征关键词,这是人设三要素中的“是什么样的人”。self.memory_map = {}初始化长期记忆库,按用户分格存放,模拟场记本的“分页笔记”。if any(w in text for w in words):只要用户消息命中某个情绪词,就立刻返回对应情绪标签,模拟情绪识别。self.memory_map[user_id][key] = value把关键信息写入长期记忆,像场记在小本子上记下一笔。return [(k, v) for k, v in memories.items() if k in query]按需检索记忆:只有消息中提到记忆主题时才调用那条记忆。hit = sum(1 for t in self.traits if t in reply)统计回复中命中性格关键词的数量,作为一致性得分的一部分。if ratio < 0.3: self.off_count += 1一致性得分过低时记一次“跳戏”,对应偏差检测机制。self.remember(user_id, '上次情绪', emotion)在回复前先把情绪状态写入记忆,确保下一轮还能“接得上话”。
常见误区
误区很多新手认为事无巨细写 2000 字人设,角色就更立体、表现就更好,于是把设定堆得满满当当。
正解上下文窗口有限,关键人设信息会被冗长设定淹没,反而稀释核心性格。正确做法像编剧抓主干:性格、风格、背景各写 3-5 条核心点,把最重要的“身份锚”放在 Prompt 最前面,必要时每轮注入压缩版人设摘要。
为何常见:因为大家默认“信息越多模型越懂我”,忽略了长上下文中的注意力衰减现象。
误区写“她是一个非常善良温柔的女孩”,就以为模型能自动演出温柔。
正解抽象形容词缺乏可执行的行为定义,模型不知道“善良”具体该说什么话。应改写为可观察行为:“听到别人难过时会先递纸巾再安慰”“点菜时总让别人先选”。行为化描述让模型有据可依。
为何常见:人类用抽象词概括他人很自然,但大模型需要“场景-行为-语言”的映射。
误区角色突然说出不符人设的话,就归咎于“大模型太笨”,想换更大的模型解决。
正解多数跳戏是人设锚定策略缺失:上下文滚长了,早期人设信息被冲淡。解决方法是每轮或每几轮注入人设锚点摘要、做状态追踪与偏离检测,而不是盲目升级模型。
为何常见:因为跳戏看起来像“答错了”,人们自然归因于模型智力,而忽视了上下文工程。
误区把历史对话原封不动存进数据库,需要时全量喂给模型,觉得“记得越多越懂我”。
正解全量存储既超出上下文窗口,又会掺入大量噪声与重复。正确做法是分级(核心/事件/工作)、提取关键信息、按语义相似度检索调用,并设计去重与遗忘机制。
为何常见:直觉上“全存 = 全记得”,但检索质量与记忆密度比原始日志更关键。
误区在回复末尾加"😊""🥺"就是做了情感计算,觉得表情符号等于共情。
正解情感计算是先识别用户情绪,再依据角色人设决定如何回应。毒舌角色面对难过可能用“别扭的安慰”,温柔角色用“直接的拥抱式安慰”。表情只是最终表达的一小部分。
为何常见:因为产品的情绪感很容易被表情符号“直观代表”,掩盖了背后的识别与策略层。
面试题
Q1. Glow 中“人设 Prompt”最核心的作用是什么?
- A.加快模型推理速度
- B.塑造性格与对话边界← 正确答案
- C.增加模型参数量
- D.替代全部训练数据
答案:B。人设 Prompt 的核心职责是定义角色身份与行为边界,让模型以该性格和口吻回复。A 的推理速度由模型结构与硬件决定,C 的参数量是训练阶段的事,D 显然错误——Prompt 不可能替代训练数据。就像人物小传约束演员,人设 Prompt 约束的是生成行为的“路数”。
Q2. 下列哪项是“人设三要素”的典型组成?
- A.性格特征、说话风格与背景故事← 正确答案
- B.提示词长度、温度与模型版本
- C.用户ID、时间戳与设备型号
- D.编码器、解码器与注意力
答案:A。人设三要素是性格特征、说话风格、背景故事,共同构成最小完备的角色骨架。B 是生成参数,C 是系统上下文,D 是模型架构概念,都与“人设”无关。可以记成“是什么样的人、怎么说、为什么这样”。
Q3. 角色一致性维护中,“人设锚定”通常指什么?
- A.每轮对话重新注入关键人设← 正确答案
- B.将模型训练参数彻底固定
- C.锁定用户全部历史聊天
- D.直接关闭情感计算模块
答案:A。人设锚定的标准做法是把人设压缩为摘要,每隔几轮重新注入提示词,防止长对话冲淡早期设定。B 说的是训练参数,与推理期无关;C 涉及隐私且不必要;D 关掉情感计算反而会破坏人设表现。锚定如同舞台侧幕的提词板,时刻提醒演员“你是谁”。
Q4. 写性格特征时,下列哪种写法更利于模型稳定发挥?
- A.她是一个内心非常善良的人
- B.听到朋友难过会先递纸巾安慰← 正确答案
- C.她的性格总体上来讲很好
- D.她的个性特质非常优秀突出
答案:B。行为化描述给出可观察的“场景-反应”映射,模型有据可依;而“善良”“很好”这类抽象形容词缺乏操作定义,模型不知道具体该说什么话。B 把抽象品格翻译成具体行动,类似导演手册上的行为注释,效果最稳定。
Q5. 某虚拟角色回答了与自己设定矛盾的问题,最可能的原因是什么?
- A.上下文过长淹没了人设信息← 正确答案
- B.模型因为过热而崩溃死机
- C.用户所处网络环境不稳定
- D.情感标签种类设置不齐全
答案:A。长对话中,新内容不断挤占上下文窗口,早期人设信息被“冲淡”,这是跳戏最常见的原因,解法是定期注入人设锚点。B 是系统级故障,C 是网络问题,D 的情感标签主要影响共情,不直接导致人设矛盾。
Q6. 关于长期记忆机制,下列说法正确的是?
- A.对话记录越多越好全部保留
- B.需要分级提取并按需调用← 正确答案
- C.长期记忆存于模型参数
- D.长期记忆只对开发者可见
答案:B。长期记忆要分级管理、提取关键信息、按需检索调用,并配合遗忘机制。A 的全量保留会引入噪声还可能超出上下文窗口;C 错在长期记忆存于外部记忆库而非模型参数;D 错在记忆需要被对话系统实时调用,并非仅供开发者检查。
Q7. 情感计算在 Glow 中的作用是?
- A.识别用户情绪并驱动共情表达← 正确答案
- B.为用户头像自动更换颜色
- C.计算服务器当前运行负载
- D.决策模型需要多少训练轮数
答案:A。情感计算的链路是“识别用户情绪 → 结合人设决定回应方式”,是共情能力的技术基础。B 是 UI 行为,C 是运维指标,D 是训练策略,都与“角色情感表现”无关。先读懂空气再开口,说的就是这条链路。
Q8. 提升虚拟角色一致性的常见手段包括?
- A.每轮对话注入人设摘要← 正确答案
- B.对对话状态进行持续追踪← 正确答案
- C.设置一致性检测与纠偏← 正确答案
- D.删除用户的全部聊天记录
答案:ABC。每轮注入摘要(人设锚定)、状态追踪、偏离检测纠偏是业界公认的一致性三板斧。D 删除用户聊天记录会摧毁长期记忆与用户体验,绝非一致性手段。三者配合就像场记加副导演的双保险,让角色不跳戏。
Q9. 关于 Glow 长期记忆可能产生的问题,哪些说法正确?
- A.长尾记忆可能因检索丢失← 正确答案
- B.记忆过多会带来噪声甚至幻觉← 正确答案
- C.长期记忆一旦写入永不变
- D.需要遗忘机制维持记忆质量← 正确答案
答案:ABD。关键词匹配检索会漏掉长尾但重要的记忆;记忆过多会把噪声喂给模型甚至引发幻觉;遗忘机制(去重、降权、覆盖)正是维持记忆质量的必要设计。C 说“永不更新”与遗忘机制矛盾,是错误的。
Q10. 人设 Prompt 设计中,哪些做法有助于角色一致性?
- A.采用结构化角色卡模板设置← 正确答案
- B.设计矛盾但又能自洽的特征← 正确答案
- C.每轮对话随机改写人设信息
- D.用口头禅锚定角色说话风格← 正确答案
答案:ABD。结构化角色卡让设定字段清晰可读;矛盾但自洽的特征(如毒舌却细心)让角色更像真人;口头禅是说话风格最有效的锚点。C 每轮随机改写人设会直接破坏一致性,属于典型的反面操作。