从情绪到人格的连续性 — 一份给 AI 角色设计的工程笔记
多数 NPC 和 chatbot 工作的起点是一个问题 — 怎么让对话听起来更自然。这是个对工具有用的问题,对角色没用。角色要回答的不是「我说得像不像」,而是「我反应得像不像」。反应不是凭空冒出来的 — 它坐在一条向下追溯到「需求」的链上,链上的每一层都可以单独建模。
## 三个根 / 四层派生需求
把人类所有需求剥到底,剩下的就三个:生存、繁衍、社群。吃、睡、安全 — 生存。性、择偶、育子 — 繁衍。被认可、地位、影响力 — 社群,而社群反过来让生存更便宜、让繁衍更可能。任何一个看起来「更高级」的需求都是这三个根之上长出来的派生分支。美、食、知识、权力、金钱、宗教、美学风格 — 没有一个是独立的根;它们是这三个根伸出来的触手,因为每一根在某个尺度上、某个场景下,提升过祖先的繁殖概率。
一棵实用的四层树:本能需求(吃、性、安全、睡眠、疼痛回避)→ 感官与社会需求(味觉、触感、情绪交流、被认可、影响力)→ 认知需求(探索、审美、爱、尊重、表达)→ 文化符号需求(金钱、权力、道德、宗教、社会身份)。越往上越显得「间接」,但每一层都还能找到回到三个根的路径。
## 情绪是奖惩机制的标记
身体不可能每秒钟都把「这件事是不是有利生存」重算一遍。所以进化把一个捷径写进了我们 — 当你做了利于需求的事,身体用正向情绪奖励你;当你做了损害需求的事,身体用负向情绪惩罚你。情绪不是认知之上的装饰层。它是被编译进身体的趋利避害。任何在祖先身上提高或降低过繁殖概率的事,今天的后代会直接感到「舒服」或者「难受」。
Figure 01
情绪 → 人格 连续性模型
一次外界事件,要穿过八层才能沉淀成人格。
01 · OUTSIDE
外界事件
一次输入
02 · BODY
感受 / 刺激
事件 → 身体
03 · REACTION
情绪
即时奖惩
04 · MEMORY
情绪记忆
长期沉淀
05 · COGNITION
信念
对世界的判断
06 · HABIT
性格
稳定的反应风格
07 · PERSON
人格
骨子里的倾向
08 · INSTINCT
进化本能
底层感受机制
Stability gradient
每一层都比前一层更稳定、更难改。一句 prompt 只能动到链最右边几格,最左边的事件流并没有换。
Feedback loop
本能与已沉淀的人格反过来塑造下一次「感受 / 刺激」的解读方向。
## 情绪沿两条轴变化 — 时间 与 对象
同一件事,身体把时间窗口放在哪儿,激发的情绪就不一样。*事中*是即时情绪(快乐、痛苦);*事前*是预期情绪(期待、担忧、恐惧);*事后*是滞后情绪(余韵、追悔、余悸)。这三种情绪在系统里被同时保留 — 这就是为什么同一段记忆能在很多年后还隐隐作痛,为什么一个还没验证的未来现在就能让人肩膀紧起来。
当事件的走向反转,会出现四种转折情绪 — 坏转好叫释然 / 幸福,好转坏叫失望 / 伤感,预期外的正向叫惊喜,预期外的负向叫惊吓。它们不是独立的原始情绪,是当大脑把预期和结果一比较,就从基础情绪集合里自动派生出来的。
还有一条轴是对象。同一个身体在四个方向上感受不同 — 对自己(愧疚 / 自豪)、对他人(感激 / 愤怒)、对所属群体(荣誉 / 羞愧)、对竞争者或外部弱者(嫉妒 / 同情)。这不是诗意的分类,是想让角色有「关系」时必须要有的最小集。把这八种情绪在「自 / 他 / 群体 / 敌」四个方向上复用一遍,人类彼此对待方式的大半已经被覆盖。
## 好奇心 = 同一对象上的两条预测叠加
把角色放在一个未知物前面。两条预测同时升起 — 一条乐观(说不定对我有利),一条悲观(说不定对我有害)。两者都把角色推向这个未知物 — 一个去摘取可能的利,一个去把可能的害先看清楚。好奇心不是独立的驱动力,是「正向预期 + 负向预期」叠加在同一目标上。这也顺带解释了为什么单纯靠"奖励"驱动的探索会在平静环境里停下、单纯靠"避害"驱动的探索会在没有威胁时停下;只有两条同时叠加,角色才会持续地想知道。
Figure 02
需求层级 — 一切派生需求都通向同三个根
根是 生存 / 繁衍 / 社群,往上四层派生需求。每个派生需求之所以存在,是因为它在某个场景下提升过根的概率。
root
生存
root
繁衍
root
社群
L1
直接生物层
本能需求
吃 · 性 · 安全 · 排泄 · 睡眠 · 疼痛回避
L2
L1 的延伸触角
感官 / 社会需求
香味 · 触感 · 情绪交流 · 社交认同 · 影响力 · 被理解
L3
间接奖励通路
认知 / 价值需求
探索 · 审美 · 爱 · 尊重 · 表达 · 自我存在感
L4
过度进化产物
文化符号需求
金钱 · 权力 · 道德 · 宗教 · 美学风格 · 社会身份
Synthesis
个体性格 = Σ ( 各层需求枝的权重 × 奖惩强度 )
同一个根、不同的权重 — 就生出不同的人。
## 从情绪到信念,从信念到性格
同类事件重复够多次,情绪反应就会被缓存下来。这个缓存就是我们说的情绪记忆 — 一个被预先存好、随时可以发火的预期。稳定的情绪记忆结晶成信念(「我做不好这件事」、「这种人不可信」)。多个稳定信念合起来形成性格 — 稳定的反应风格。性格再骑在本能机构和感受机制上,就是我们所说的「那个人」。
链本身就是设计图。每一层都可以单独被处理。每一层都比前一层更稳定。一次外部事件几秒钟就消散;一种情绪能持续几小时;情绪记忆能持续一生;信念要真去改写才能动;性格是即使你下定决心去改变后仍然会留下来的部分。
## 给 AI 角色设计的三条直接后果
第一 — 性格不可能被一句 prompt 重置。 性格骑在信念之上,信念骑在情绪记忆之上,情绪记忆骑在大量真实事件之上。一句话最多碰到链最右边几格;角色所经历的事件流根本不在 prompt 里,也不可能从 prompt 改写。任何说「系统 prompt 定义角色」的架构,其实是默认在错误的层上动手。正确的模型应该有一个层级化的、可写入的记忆层,让情绪反应有地方沉淀。
第二 — 每个玩家面对的是同一个角色的不同版本。 既然真正塑造角色的是一串具体事件 — 你给过的礼物、你说过的安慰、你忽视过的时刻 — 那么经过不同事件序列的两个玩家最终面对的角色就必然不同。这不是浪漫修辞,是链强制推出的结论。要让每个玩家得到「自己的」那个角色,不需要一个新功能,需要把记忆层做得严肃到让差分能积累起来。
Figure 03
情绪的两条维度 — 时间 与 对象
同一件事,身体把时间窗口放在哪儿、把对象瞄准谁,激发的情绪就不一样。
时间维度
事前
期待 / 担忧
事中
快乐 / 痛苦
事后
余韵 / 余悸
事件走向反转时
坏 → 好
释然 / 幸福
好 → 坏
失望 / 伤感
平 → 正
惊喜
平 → 负
惊吓
好奇心 = 正向预期 + 负向预期 同时叠加在一个未知对象上。
对象维度
对自己
愧疚 ↔ 自豪
对他人
感激 ↔ 愤怒
对群体
荣誉 ↔ 羞愧
对竞争者 / 弱者
嫉妒 / 同情
不需要另起一套「关系系统」 — 把这张四方向网格在任意角色对之间复用即可。
第三 — 关系不需要另起一套「关系系统」。 对象轴(自 / 他 / 群体 / 敌)已经给你八种命名好的情绪,可以在任意两角色之间以不同组合复用。要让 NPC A 在 NPC B 面前与在 NPC C 面前表现不一样,不需要新建一张「信任值」表,只需要把同一张八情绪网格按「谁在谁面前」做索引。语汇早就有了 — 借用人类自己用了几十万年的就行。
## 结语
我们自研的 Character Engine 就以这条链作为工作架构。它不解决所有问题(LLM 究竟如何在恰当的时刻生成恰当的情绪反应,仍然是难题),但它告诉我们该把精力放在哪里、*不该*放在哪里。让 AI 更像人,不等于让 AI 更聪明。它是把 AI 放回这条链上。一旦角色被真实事件接到真实信念上,剩下「认识这个角色是什么感觉」的部分,就开始自己生长。