想象你是一座小剧场的编剧兼导演。你花三天时间写了一份“人物小传”:他叫林深,表面毒舌、内心细腻的程序员,口头禅是“懂?”,童年在外婆的江南小院长大。演员(大语言模型)拿到小传后登台,和你即兴对戏。可戏演久了,演员会“跳戏”——突然说出完全不像林深的话。这时候,你需要副导演手册把他拉回角色,还需要一本场记本,记下你刚才说过的事。这座剧场就是 Glow AI 虚拟角色平台;这份人物小传,就是人设 Prompt。这篇文章要讲的,正是如何为 AI 写一份合格的小传:性格怎么写才立得住?口吻怎么调才像本人?往事怎么编才让对话有厚度?演员跑偏了怎么拽回来?你的开心难过怎么被接住?你说过的话怎么被记住?掌握这套手艺后你会发现:让大模型“从听话到有人味”,关键不在更大的模型,而在一份精心设计的人设。

岗位关联

对 AI 从业者而言,人设 Prompt 工程是让大模型从“听话”升级到“有人味”的高杠杆技能。掌握角色一致性、情感计算与长期记忆的协同设计,是构建社交陪伴产品、智能体人格化与沉浸式交互的核心能力,也是大模型应用中投入产出比最高的方向之一。

目录
  1. 可视化演示
  2. 人设Prompt设计:先立人物小传骨架
  3. 性格特征构建:给角色拍性格证件照
  4. 说话风格定制:给自己配专属声线
  5. 背景故事设定:往事就是对话的素材库
  6. 角色一致性:让演员不跳戏
  7. 情感计算机制:先读懂空气再开口
  8. 长期记忆机制:场记本里的重点笔记
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示NER模型对文本中人名、机构、地名等实体的识别结果,通过颜色编码区分实体类型,支持按类型筛选高亮。

本节配有交互动效(进入视口后自动加载,约 3KB)。

命名实体识别 人名(PER):识别人物名称 机构(ORG):识别公司、组织名称 地名(LOC):识别地理位置 P(tag|w)=argmax P(w|tag)P(tag) 点击按钮按实体类型筛选高亮显示。

人设Prompt设计:先立人物小传骨架

写人物小传的第一步,不是堆砌华丽辞藻,而是先立骨架:这个人叫什么?底色是什么?说话什么调子?经历过什么?Glow 的“人设 Prompt”就相当于这份骨架。它是一段写给大模型看的“人物小传”,通常放在系统提示词里,像副导演手册一样,在每场戏开拍前告诉演员:你现在是林深,不是别人。

很多第一次接触 Glow 的同学以为人设就是一句“你是一个温柔的女生”。其实真正的产品级人设是一份结构化信息卡,业界常称“角色卡”(Character Card)。角色卡把散落的设定组织成固定的字段结构,让下游的对话系统、记忆模块、情感模块都能稳定地读取和引用。这就像编剧把人物小传按章节装订,场务、灯光、服装各取所需。

Glow 的人设 Prompt 高度依赖三个核心字段。第一是性格特征:决定角色“是什么样的人”,例如“表面毒舌、内心细腻”。第二是说话风格:决定角色“怎么说”,例如“句尾常带懂?”。第三是背景故事:决定角色“为什么是这样”,例如“童年在外婆的江南小院长大”。三者相互约束,构成一个最小完备的角色骨架。

骨架立住了,演员才算拿到“入场资格”。后面的每一章——性格、口吻、往事、一致性、情绪、记忆——都是在这个骨架上填肉。骨架如果歪了,后面雕得再细,角色也会在关键时刻“散架”。

人设=⟨性格标签,说话风格,背景故事⟩\displaystyle \text{人设} = \langle \text{性格标签}, \text{说话风格}, \text{背景故事} \rangle
人设就像一个三元组结构,三个字段共同定义角色身份。缺了任何一块,角色都会显得单薄或不可信。
  1. 人设变量表示完整的虚拟角色设定
    人设\text{人设}
  2. 性格标签决定角色“是什么样的人”,一组可观察的性格关键词
    性格标签\text{性格标签}
  3. 说话风格决定角色“怎么说”,包括口头禅、语气、词汇与句式偏好
    说话风格\text{说话风格}
  4. 背景故事决定角色“为什么这样”,身世与世界观素材
    背景故事\text{背景故事}
  5. 尖括号组合把三个部分绑定为一个结构化对象,供系统稳定读取
    ⟨⋅,⋅,⋅⟩\langle \cdot, \cdot, \cdot \rangle

性格特征构建:给角色拍性格证件照

给演员定性,不能只写“他是个好人”。导演手册会这样写:他听到朋友失恋,会先沉默十秒,然后递一罐冰啤酒,说一句“都过去了”。这就是行为化的性格描写。AI 角色同理,性格特征是人设 Prompt 中信息密度最高的部分,也是最容易写废的部分。

心理学把人格归纳为“大五人格”模型(Big Five),用五个连续维度刻画一个人:开放性、尽责性、外向性、宜人性、神经质。给虚拟角色做性格设定,可以借用这把“性格尺”,把抽象感觉落到相对可比较的坐标上,让“这个角色偏内向但责任心强”这样一句话变成一组可描述的向量。

除了五维坐标,Glow 的角色卡还要注意三点。其一,标签要“可观察”:“善良”不如“总把最后一块蛋糕让给别人”。其二,允许矛盾但自洽:“毒舌”与“细心”并不冲突——毒舌是表达方式,细心是底层关怀。其三,要有价值观锚点:角色坚信什么、忌讳什么,这决定它在关键话题上绝不妥协的底线。

五维坐标就像给角色拍了一张性格证件照。有了这张照片,后面的口吻、往事、反应策略都围绕它搭配,演员才不会演着演着变成另一个人。

人格=(O,C,E,A,N)\displaystyle \text{人格} = (O, C, E, A, N)
人格用五个维度的坐标来刻画,就像给角色拍一张“性格证件照”,让不同角色的差异一眼可见。
  1. 人格向量把一个人的性格近似为五维坐标
    人格=(O,C,E,A,N)\text{人格} = (O, C, E, A, N)
  2. 开放性 O是否好奇、爱尝鲜、想象力丰富
    O∈[0,1]O \in [0, 1]
  3. 尽责性 C是否自律、有始有终、注重条理
    C∈[0,1]C \in [0, 1]
  4. 外向性 E是否健谈、爱热闹、需要社交能量
    E∈[0,1]E \in [0, 1]
  5. 宜人性 A是否友善、信任他人、乐于合作
    A∈[0,1]A \in [0, 1]
  6. 神经质 N情绪是否容易波动、抗压能力高低
    N∈[0,1]N \in [0, 1]

说话风格定制:给自己配专属声线

台词腔调决定观众信不信这个角色。电影里,一个“这话我说不出口”的角色,观众一秒就能认出;一个每句话都带“懂?”的程序员,也立刻有了辨识度。Glow 里,说话风格就是角色的“声线”。

说话风格通常从四个维度锚定:口头禅、语气、词汇、句式。口头禅是最强记忆点,如“懂?”“罢了”;语气决定语速与温度,如“慢而克制”“轻快上扬”;词汇偏好是角色爱用的词域,比如程序员角色爱说“接口”“部署”;句式习惯是短句多还是长句多,喜欢反问还是感叹。

从技术视角看,这些风格约束会进入生成模型的概率分布。模型在每一步计算下一个词时,都会同时考虑历史上下文与人设风格,最终输出的句子像被一只“风格之手”校正过音准的歌。

风格约束就像声乐指导站在演员身边,每一句台词出口前都被轻轻掰回正确的调子。观众听到的不是一串孤立的词,而是一个活生生的人在说话。

P(wt∣w1:t−1,人设,风格)\displaystyle P(w_t \mid w_{1:t-1}, \text{人设}, \text{风格})
下一个词的选择,不是无约束的随机,而是在“人设 + 风格”双重条件下挑出来的。
  1. 目标词 $w_t$当前正要被模型挑选的下一个词或字符
    wtw_t
  2. 上文序列 $w_{1t-1}$:此前已经生成的全部词,构成对话上下文
    w1,w2,…,wt−1w_1, w_2, \ldots, w_{t-1}
  3. 人设条件角色设定信息参与条件概率,约束“我是谁”
    人设\text{人设}
  4. 风格条件口吻与词汇偏好约束,约束“我怎么说”
    风格\text{风格}
  5. 条件概率给定历史、人设、风格之下各词的分布
    P(wt∣上文,人设,风格)P(w_t \mid \text{上文}, \text{人设}, \text{风格})

背景故事设定:往事就是对话的素材库

人物前史决定了一个人为什么是今天的样子。一个在江南小院长大的人,说话自带水汽与慢半拍;一个经历过背叛的人,对“信任”二字格外敏感。背景故事,就是角色的“来路”。

Glow 的角色卡里,背景故事至少要覆盖四类素材:身世经历(关键成长节点)、关系网络(角色与用户及他人的关系)、世界观(角色相信的规则与底线)、秘密(不轻易说出但影响行为的信息)。这些素材不需要一次性全部暴露,而是像抽屉一样,在合适的话题下被逐一拉开。

背景故事更大的价值,是为对话提供“可调用的往事素材”。当用户说“我最近压力很大”,一个设定为“曾在 ICU 陪护过母亲”的角色,会自然地接住这句话,讲出有体温的经历。这比任何通用的安慰话术都更有感染力。

往事越丰富,演员即兴发挥时越有“心理依据”。Glow 的角色不是一张纸片,而是一个带着完整来路、能在对话里随时引用旧时光的人。

剧本={身世,关系,世界观,秘密}\displaystyle \text{剧本} = \{ \text{身世}, \text{关系}, \text{世界观}, \text{秘密} \}
剧本是一个素材库,里面的往事不是每句话都要讲,而是按需抽取、触景生情。
  1. 剧本角色可回溯的全部往事素材集合
    剧本\text{剧本}
  2. 身世出生、成长与重大转折事件,解释角色性格成因
    身世\text{身世}
  3. 关系角色与用户及其他角色的连接,决定亲疏分寸
    关系\text{关系}
  4. 世界观角色相信的规则与底线,决定关键话题立场
    世界观\text{世界观}
  5. 秘密不主动说但影响言行的重要信息
    秘密\text{秘密}
  6. 集合花括号四类素材组成按需抽取的素材库
    {身世,关系,世界观,秘密}\{ \text{身世}, \text{关系}, \text{世界观}, \text{秘密} \}

角色一致性:让演员不跳戏

演员演到 50 集突然换了一种性格,观众立刻弃剧。虚拟角色的“职业操守”,就是无论在多少轮对话之后,都还是观众认识的那个人。这,就是角色一致性。

多轮对话里,人设信息会被新内容不断冲淡——上下文窗口有限,新话题挤占老设定,角色一不留神就“跳戏”。Glow 的解法是系统地维护一致性:把“他是谁”压缩成一段人设摘要,每隔几轮重新注入;同时跟踪对话状态,检测回复是否偏离设定。

工程上,一致性维护有三个抓手。一是人设锚定:每轮或每 N 轮把摘要放进提示词,像舞台侧幕的提词板。二是状态追踪:记录当前情绪、话题、关系进展,让角色“知道现在演到哪一幕”。三是偏差检测:用规则或另一个轻量模型判断回复是否合乎人设,一旦偏离就记录并当场纠偏。

场记加副导演,双保险让演员两百集不跳戏。角色一致性不是靠演员“记性好”,而是靠舞台系统持续提醒——这就是 Prompt 工程的用武之地。

一致性评分=1−N偏离N总轮次\displaystyle \text{一致性评分} = 1 - \frac{N_{\text{偏离}}}{N_{\text{总轮次}}}
一致性评分越高,说明角色“跳戏”越少。它把玄学般的“演得像不像”变成了可监控的数字。
  1. 偏离次数 $N_{\text{偏离}}$回复内容明显不符合人设的轮次数
    N偏离N_{\text{偏离}}
  2. 总轮次 $N_{\text{总轮次}}$纳入评分的全部对话轮次数
    N总轮次N_{\text{总轮次}}
  3. 偏离率跳戏轮次占总轮次的比例
    N偏离N总轮次\frac{N_{\text{偏离}}}{N_{\text{总轮次}}}
  4. 一致性得分用 1 减去偏离率,越接近 1 越稳定
    1−N偏离N总轮次1 - \frac{N_{\text{偏离}}}{N_{\text{总轮次}}}

情感计算机制:先读懂空气再开口

好演员会接住对手的情绪。用户说“我今天好难过”,角色若回一句“好的呢”,瞬间出戏;若先沉默一拍再说“那我陪你坐一会儿”,观众立刻代入。Glow 的情感计算,做的就是这门“接戏”的手艺。

情感计算可以拆成两步:先识别,再回应。识别层从用户文本中判断情绪标签——开心、难过、生气、平静;回应层则是“用这个角色的方式”去接住情绪。同一个“难过”,温柔角色会安慰,毒舌角色可能用别扭的关心。

落地时,识别可以用情感词典,也可以用微调的分类模型,甚至直接让大模型输出情感标签。得到标签后,人设模块会把它作为新条件拼进 Prompt,让角色的回应既符合情绪又符合人设。

情感计算是虚拟角色的表演课:先读懂空气,再决定怎么说话。情绪识别的准确率不一定要 100%,但只要方向对了,用户体验就会从“和机器聊天”跃迁为“有人懂我”。

e^=arg⁡max⁡e∈EP(e∣x1,x2,…,xn)\displaystyle \hat{e} = \arg\max_{e \in E} P(e \mid x_1, x_2, \ldots, x_n)
这一步是在“候选情绪集合”里挑出一个概率最大的标签,作为用户当前情绪的判定结果。
  1. 情感标签集合 $E$预设的情绪类别,如开心、难过、生气、平静
    E={开心,难过,生气,平静}E = \{ \text{开心}, \text{难过}, \text{生气}, \text{平静} \}
  2. 输入文本 $x$用户当前发送的消息内容
    x1,x2,…,xnx_1, x_2, \ldots, x_n
  3. 条件概率 $P(e \mid x)$看到这段消息后,用户属于情绪 $e$ 的可能性
    P(e∣x1,x2,…,xn)P(e \mid x_1, x_2, \ldots, x_n)
  4. 最大后验选择在所有候选情绪中取概率最大的一个
    arg⁡max⁡e∈E\arg\max_{e \in E}
  5. 输出标签 $\hat{e}$最终判定出的情绪,送入回应层
    e^\hat{e}

长期记忆机制:场记本里的重点笔记

场记本上记着观众说过的话。两周前你随口说养了一只叫团子的橘猫,今天角色突然问“团子还挑食吗”——这种被记住的感觉,是陪伴感真正的来源。长期记忆机制,就是 AI 角色的“场记本”。

对话历史不可能全量塞进上下文窗口,所以 Glow 的记忆系统要分级管理:核心记忆(用户是谁、长期偏好)、事件记忆(发生过的重要事情,如“上周面试失利”)、工作记忆(当前对话的主题与情绪)。不同等级的记忆有不同的留存优先级。

写入侧,系统从对话里提取关键信息(用户昵称、重要事件、情绪节点)入库;读取侧,当新消息进入时,用语义相似度检索最相关的记忆,拼进 Prompt。此外还有遗忘机制:去重、过期降权、覆盖更新,避免记忆库越来越浑。

记忆不是录音机式的全量保存,而是场记在戏台边写的重点笔记。重点笔记让角色“越聊越懂你”,而不会变成一个什么都记不住、又什么都往外倒的话痨。

m∗=arg⁡max⁡m∈MSim(q,m)\displaystyle m^* = \arg\max_{m \in M} \text{Sim}(q, m)
这一步是在记忆库里挑出与当前话题最相关的一条记忆,把它“抬上舞台”参与回复生成。
  1. 记忆库 $M$按分级存放的长期记忆集合,类似分格的场记抽屉
    MM
  2. 单条记忆 $m$一条结构化信息,例如“用户养了橘猫叫团子”
    mm
  3. 查询 $q$由当前对话转化出的语义查询
    qq
  4. 相似度函数 Sim衡量一条记忆与查询在语义上的匹配程度
    Sim(q,m)\text{Sim}(q, m)
  5. 最佳记忆 $m^*$被选中并注入上下文的那一条记忆
    m∗=arg⁡max⁡m∈MSim(q,m)m^* = \arg\max_{m \in M} \text{Sim}(q, m)

AI 应用场景

社交陪伴 App 的虚拟恋人

阶段:人设构建 + 多轮对话生成

解决的问题:传统聊天机器人回复机械、千人一面,用户难以建立情感连接。Glow 用结构化人设 Prompt 让每个角色拥有独特性格与口吻,并通过一致性维护让用户感觉“对面真的是那个人”。

具体案例:用户为角色“林深”填写毒舌人设卡后,每次对话都自动注入人设摘要;用户深夜吐槽加班,模型先识别“疲惫+委屈”情绪,再按林深“嘴硬心软”的性格回应:“啧,又加班?罢了,给你讲个冷笑话。”用户连续一周互动后,角色在开场白里提到“你上周说项目周四上线”。

品牌虚拟 IP 客服

阶段:人设注入 + 情感识别 + 一致性维护

解决的问题:传统客服话术模板化、情绪感知弱。品牌用带人设的 AI 客服统一“店长人设”,既保持品牌调性又能感知客户情绪。

具体案例:某茶饮品牌把 AI 客服设定为“元气店员小桃”,固定口头禅“宝子~”。客户抱怨送餐慢时,系统先识别“生气”情绪,再让小桃回复“宝子别气,小桃这就去催单,送你一张券赔罪”。所有渠道的回复都走同一份人设卡,保证微信、APP、门店屏显风格一致。

游戏 NPC 的长期记忆

阶段:长期记忆 + 动态对话生成

解决的问题:传统游戏 NPC 对话固定、记不住玩家,沉浸感弱。为 NPC 配备记忆分级与检索后,玩家的过往行为能直接影响后续对话。

具体案例:开放世界 RPG 中,铁匠 NPC 记住玩家曾帮他找过女儿,之后每次见面都会主动问候并赠送折扣;玩家若曾偷过他的矿,NPC 语气会冷淡且拒绝交易。这种“被记住”的反馈极大增强了世界的可信度。

Python 演示

python74 行
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()
目的:用一个小型 PersonaEngine 演示 Glow 人设引擎的核心链路——识别用户情绪、调用长期记忆、按风格组织回复,并做人设一致性评分。
  1. class PersonaEngine:定义“人设引擎”类,相当于给 AI 演员配一位副导演,统一管理性格、风格与记忆。
  2. self.traits = traits保存性格特征关键词,这是人设三要素中的“是什么样的人”。
  3. self.memory_map = {}初始化长期记忆库,按用户分格存放,模拟场记本的“分页笔记”。
  4. if any(w in text for w in words):只要用户消息命中某个情绪词,就立刻返回对应情绪标签,模拟情绪识别。
  5. self.memory_map[user_id][key] = value把关键信息写入长期记忆,像场记在小本子上记下一笔。
  6. return [(k, v) for k, v in memories.items() if k in query]按需检索记忆:只有消息中提到记忆主题时才调用那条记忆。
  7. hit = sum(1 for t in self.traits if t in reply)统计回复中命中性格关键词的数量,作为一致性得分的一部分。
  8. if ratio < 0.3: self.off_count += 1一致性得分过低时记一次“跳戏”,对应偏差检测机制。
  9. self.remember(user_id, '上次情绪', emotion)在回复前先把情绪状态写入记忆,确保下一轮还能“接得上话”。

常见误区

误区很多新手认为事无巨细写 2000 字人设,角色就更立体、表现就更好,于是把设定堆得满满当当。

正解上下文窗口有限,关键人设信息会被冗长设定淹没,反而稀释核心性格。正确做法像编剧抓主干:性格、风格、背景各写 3-5 条核心点,把最重要的“身份锚”放在 Prompt 最前面,必要时每轮注入压缩版人设摘要。

为何常见:因为大家默认“信息越多模型越懂我”,忽略了长上下文中的注意力衰减现象。

误区写“她是一个非常善良温柔的女孩”,就以为模型能自动演出温柔。

正解抽象形容词缺乏可执行的行为定义,模型不知道“善良”具体该说什么话。应改写为可观察行为:“听到别人难过时会先递纸巾再安慰”“点菜时总让别人先选”。行为化描述让模型有据可依。

为何常见:人类用抽象词概括他人很自然,但大模型需要“场景-行为-语言”的映射。

误区角色突然说出不符人设的话,就归咎于“大模型太笨”,想换更大的模型解决。

正解多数跳戏是人设锚定策略缺失:上下文滚长了,早期人设信息被冲淡。解决方法是每轮或每几轮注入人设锚点摘要、做状态追踪与偏离检测,而不是盲目升级模型。

为何常见:因为跳戏看起来像“答错了”,人们自然归因于模型智力,而忽视了上下文工程。

误区把历史对话原封不动存进数据库,需要时全量喂给模型,觉得“记得越多越懂我”。

正解全量存储既超出上下文窗口,又会掺入大量噪声与重复。正确做法是分级(核心/事件/工作)、提取关键信息、按语义相似度检索调用,并设计去重与遗忘机制。

为何常见:直觉上“全存 = 全记得”,但检索质量与记忆密度比原始日志更关键。

误区在回复末尾加"😊""🥺"就是做了情感计算,觉得表情符号等于共情。

正解情感计算是先识别用户情绪,再依据角色人设决定如何回应。毒舌角色面对难过可能用“别扭的安慰”,温柔角色用“直接的拥抱式安慰”。表情只是最终表达的一小部分。

为何常见:因为产品的情绪感很容易被表情符号“直观代表”,掩盖了背后的识别与策略层。

面试题

Q1. Glow 中“人设 Prompt”最核心的作用是什么?

单选题 · easy

  • A.加快模型推理速度
  • B.塑造性格与对话边界← 正确答案
  • C.增加模型参数量
  • D.替代全部训练数据

答案:B。人设 Prompt 的核心职责是定义角色身份与行为边界,让模型以该性格和口吻回复。A 的推理速度由模型结构与硬件决定,C 的参数量是训练阶段的事,D 显然错误——Prompt 不可能替代训练数据。就像人物小传约束演员,人设 Prompt 约束的是生成行为的“路数”。

Q2. 下列哪项是“人设三要素”的典型组成?

单选题 · easy

  • A.性格特征、说话风格与背景故事← 正确答案
  • B.提示词长度、温度与模型版本
  • C.用户ID、时间戳与设备型号
  • D.编码器、解码器与注意力

答案:A。人设三要素是性格特征、说话风格、背景故事,共同构成最小完备的角色骨架。B 是生成参数,C 是系统上下文,D 是模型架构概念,都与“人设”无关。可以记成“是什么样的人、怎么说、为什么这样”。

Q3. 角色一致性维护中,“人设锚定”通常指什么?

单选题 · mid

  • A.每轮对话重新注入关键人设← 正确答案
  • B.将模型训练参数彻底固定
  • C.锁定用户全部历史聊天
  • D.直接关闭情感计算模块

答案:A。人设锚定的标准做法是把人设压缩为摘要,每隔几轮重新注入提示词,防止长对话冲淡早期设定。B 说的是训练参数,与推理期无关;C 涉及隐私且不必要;D 关掉情感计算反而会破坏人设表现。锚定如同舞台侧幕的提词板,时刻提醒演员“你是谁”。

Q4. 写性格特征时,下列哪种写法更利于模型稳定发挥?

单选题 · mid

  • A.她是一个内心非常善良的人
  • B.听到朋友难过会先递纸巾安慰← 正确答案
  • C.她的性格总体上来讲很好
  • D.她的个性特质非常优秀突出

答案:B。行为化描述给出可观察的“场景-反应”映射,模型有据可依;而“善良”“很好”这类抽象形容词缺乏操作定义,模型不知道具体该说什么话。B 把抽象品格翻译成具体行动,类似导演手册上的行为注释,效果最稳定。

Q5. 某虚拟角色回答了与自己设定矛盾的问题,最可能的原因是什么?

单选题 · hard

  • A.上下文过长淹没了人设信息← 正确答案
  • B.模型因为过热而崩溃死机
  • C.用户所处网络环境不稳定
  • D.情感标签种类设置不齐全

答案:A。长对话中,新内容不断挤占上下文窗口,早期人设信息被“冲淡”,这是跳戏最常见的原因,解法是定期注入人设锚点。B 是系统级故障,C 是网络问题,D 的情感标签主要影响共情,不直接导致人设矛盾。

Q6. 关于长期记忆机制,下列说法正确的是?

单选题 · mid

  • A.对话记录越多越好全部保留
  • B.需要分级提取并按需调用← 正确答案
  • C.长期记忆存于模型参数
  • D.长期记忆只对开发者可见

答案:B。长期记忆要分级管理、提取关键信息、按需检索调用,并配合遗忘机制。A 的全量保留会引入噪声还可能超出上下文窗口;C 错在长期记忆存于外部记忆库而非模型参数;D 错在记忆需要被对话系统实时调用,并非仅供开发者检查。

Q7. 情感计算在 Glow 中的作用是?

单选题 · easy

  • A.识别用户情绪并驱动共情表达← 正确答案
  • B.为用户头像自动更换颜色
  • C.计算服务器当前运行负载
  • D.决策模型需要多少训练轮数

答案:A。情感计算的链路是“识别用户情绪 → 结合人设决定回应方式”,是共情能力的技术基础。B 是 UI 行为,C 是运维指标,D 是训练策略,都与“角色情感表现”无关。先读懂空气再开口,说的就是这条链路。

Q8. 提升虚拟角色一致性的常见手段包括?

多选题 · mid

  • A.每轮对话注入人设摘要← 正确答案
  • B.对对话状态进行持续追踪← 正确答案
  • C.设置一致性检测与纠偏← 正确答案
  • D.删除用户的全部聊天记录

答案:ABC。每轮注入摘要(人设锚定)、状态追踪、偏离检测纠偏是业界公认的一致性三板斧。D 删除用户聊天记录会摧毁长期记忆与用户体验,绝非一致性手段。三者配合就像场记加副导演的双保险,让角色不跳戏。

Q9. 关于 Glow 长期记忆可能产生的问题,哪些说法正确?

多选题 · hard

  • A.长尾记忆可能因检索丢失← 正确答案
  • B.记忆过多会带来噪声甚至幻觉← 正确答案
  • C.长期记忆一旦写入永不变
  • D.需要遗忘机制维持记忆质量← 正确答案

答案:ABD。关键词匹配检索会漏掉长尾但重要的记忆;记忆过多会把噪声喂给模型甚至引发幻觉;遗忘机制(去重、降权、覆盖)正是维持记忆质量的必要设计。C 说“永不更新”与遗忘机制矛盾,是错误的。

Q10. 人设 Prompt 设计中,哪些做法有助于角色一致性?

多选题 · mid

  • A.采用结构化角色卡模板设置← 正确答案
  • B.设计矛盾但又能自洽的特征← 正确答案
  • C.每轮对话随机改写人设信息
  • D.用口头禅锚定角色说话风格← 正确答案

答案:ABD。结构化角色卡让设定字段清晰可读;矛盾但自洽的特征(如毒舌却细心)让角色更像真人;口头禅是说话风格最有效的锚点。C 每轮随机改写人设会直接破坏一致性,属于典型的反面操作。