本篇属于「Agent与情绪」系列,第2部分「Agent情绪架构」第2篇。
上一篇我们讨论了Agent是否需要情绪,本篇进入”怎么表示”——如果Agent要有情绪,它的内部该长什么样。
开场:情绪不是开关,是坐标
设想你在调试一个Agent,想给它加上”情绪”。最直觉的做法是什么?多半是加个枚举:emotion: happy | sad | angry | neutral。
这很自然——我们日常说话就是”我开心””我生气”,离散标签符合语言习惯。但如果你真的这么做,很快就会撞墙:用户说了一句半开玩笑的讽刺,Agent该是happy还是angry?等了10秒没收到回复,情绪从eager变成什么?收到好消息但同时对坏消息焦虑,填哪个值?
问题出在哪?情绪根本不是一组互斥的标签,而是一个空间中的坐标。
这不是比喻,是心理学实证研究的结论。早在1980年代,James Russell就发现:如果你让大量被试对情绪词做相似性评分,再做多维尺度分析(MDS),这些词会排列成一个圆环——不是散落成孤岛,而是连续分布在一个低维空间里。”兴奋”和”快乐”相邻,”兴奋”和”恐惧”也相邻(它们都高唤醒),但”快乐”和”恐惧”隔得很远。
这对Agent设计意味着什么?如果你用枚举表示情绪,你是在强迫一个连续体穿上离散的紧身衣。 正确的做法是设计一个”情绪向量”——就像词嵌入把词映射到高维空间一样,把情绪映射到一个数值空间,让计算、插值、转移都成为可能。
本篇就来拆解:人类的情绪维度理论长什么样,怎么转化为Agent内部的状态表示,以及如何做向量级的计算。
核心概念1:维度模型 vs 离散模型——地图还是抽屉?
What:两种根本不同的情绪组织方式
心理学对情绪的组织方式有两大学派,分歧之深堪比编程语言之争:
离散模型(基本情绪论):Ekman为代表,认为存在少数几种”基本情绪”,每种有独特的生理模式、面部表情和神经回路。经典版本是6种:快乐、悲伤、愤怒、恐惧、厌恶、惊讶。后来扩展到10-20种,但核心思路不变——情绪是”抽屉”,你每次打开一个。
维度模型(情绪空间论):Wundt最早提出,Russell、Mehrabian等人发展完善。认为情绪不是离散的抽屉,而是连续空间中的点。最经典的是Russell的效价-唤醒度二维模型(Circumplex Model):横轴是效价(Valence,愉快-不愉快),纵轴是唤醒度(Arousal,激活-平静),所有情绪词都能落在这个平面上。
更完整的维度模型是Mehrabian的PAD模型,加了第三个维度——支配度(Dominance,控制-被控制)。比如”愤怒”和”恐惧”在效价和唤醒度上相似(都负面、都高唤醒),但在支配度上截然相反——愤怒是”我能控制局面”,恐惧是”我控制不了”。
Why:为什么进化会产出两种组织方式?
其实二者并不矛盾。离散情绪更像”快捷方式”,维度空间更像”完整地图”。
从进化看,基本情绪对应的是生存急需的快速反应通道:看到蛇→恐惧→跑。这种场景不需要精细区分,只需要一个离散标签触发固定动作模式。但人类的社交世界远比”跑还是打”复杂——你需要区分”有点烦”和”非常愤怒”,需要在”又期待又紧张”中做决策。维度空间就是为这种精细计算准备的。
类比工程:离散模型像硬件中断——信号一来,跳到固定handler;维度模型像浮点数寄存器——可以连续变化、做插值、做微分。两者不冲突,服务于不同场景。
具体例子:一个客服Agent的困境
假设你设计一个客服Agent,用离散标签表示情绪。用户说:”你们这服务也太差了吧,不过算了,你态度还行。”
这算什么?愤怒?宽容?讽刺?如果只能选一个标签,你怎么选都不对。
用维度模型呢?这条消息的效价是微负(”服务太差”),唤醒度中等(”算了”有降温),支配度偏低(用户处于抱怨但妥协的位置)。这个坐标同时编码了多重信息,比任何单一标签都准确。
对Agent设计的启示: 离散标签适合做快速路由(”检测到高愤怒→转人工”),但不应是Agent内部状态的唯一表示。内部应该用维度向量,输出时再映射到离散标签——就像颜色在内部用RGB向量,显示时才转成”红色””蓝色”这样的语言标签。
核心概念2:情绪状态空间设计——给Agent造一个情绪的”坐标系”
What:从理论到工程,维度怎么选?
人类情绪维度理论给了我们起点,但Agent不是人——我们需要在理论完备性和工程可行性之间找平衡。关键决策有三个:
1. 维度选择
- 最小可行方案(2维):效价 + 唤醒度。覆盖了大部分情绪区分,实现简单。但”愤怒”和”恐惧”会挤在一起。
- 推荐方案(3维):效价 + 唤醒度 + 支配度(PAD)。增加了控制感维度,能区分”愤怒”和”恐惧”、”敬佩”和”崇拜”。Mehrabian的PAD模型有大量实证支撑,是性价比最高的选择。
- 进阶方案(4+维):加入确定性(Certainty)、预期偏差(Expectation Deviation)、社会取向(Social Orientation)等。维度越多表达力越强,但数据越稀疏,调试越困难。
2. 粒度设计
每个维度的取值范围怎么定?两种思路:
- **连续值 [0, 1] 或 [-1, 1]**:精细、可微、方便做运算。但需要定义刻度的含义——“唤醒度0.7”到底多激动?
- 离散等级(1-5或1-7 Likert量表):直观、可解释、与心理学实验对齐。但丢失了中间值,无法做平滑插值。
推荐做法:内部用连续值,展示和调试时量化为等级。就像温度传感器内部是连续电压,但天气预报说”今天28度”而不是”0.732伏特”。
3. 时间衰减
情绪不是静态的。好消息带来的快乐会随时间消退,未解决的焦虑会持续累积。Agent的情绪向量必须有时间动力学:
- 自然衰减:每个维度随时间向中性值(通常是0或0.5)回归。效价衰减快(情绪来得快去得快),支配度衰减慢(控制感变化较慢)。
- 衰减率参数化:用指数衰减
v(t) = v(0) * e^(-λt),λ是衰减常数,不同维度不同值。效价λ大(衰减快),唤醒度λ中等,支配度λ小。 - 事件叠加:新事件的情绪输入不是替换,而是加权叠加到当前状态上。
Why:为什么这些设计决策重要?
因为状态空间的设计直接决定了Agent的行为模式。选2维,Agent分不清愤怒和恐惧,可能对愤怒用户过度安抚、对恐惧用户反而强硬。粒度太粗,Agent情绪变化像跳台阶;太细,调试时看不出规律。衰减太快,Agent情绪像金鱼记忆;太慢,一次负面交互会污染整个会话。
类比:这就像设计一个PID控制器——参数没调好,系统要么震荡要么迟滞。情绪状态空间就是Agent的”控制变量”,设计不当,行为就不可预测。
具体例子:情绪粒度的工程影响
假设效价取离散3级(-1, 0, 1),Agent收到一条”还行吧”的评价。效价该是0还是1?三级别里没有”微正”的位置,只能四舍五入。但”还行吧”和”太棒了”在用户心里差很远,如果Agent对两者反应一样,用户体验就崩了。
改用连续值,”还行吧”映射到0.3,”太棒了”映射到0.9,Agent就能做出差异化响应。
对Agent设计的启示: 情绪状态空间设计遵循”内部精细、外部粗略”原则。内部至少用3维连续值,外部输出时按需量化。每个维度定义明确的锚点(如”效价0.9 = 接近狂喜,0.3 = 略微积极”),方便调试和团队对齐。
核心概念3:情绪向量的计算——把感觉变成数学
What:向量能做什么,标签做不到什么?
一旦情绪是向量,就能做数学运算。这不是为了炫技,是因为很多真实的情绪现象用标签根本无法表达,但用向量天然就能。
1. 向量加法 = 情绪叠加
收到好消息(效价+0.6,唤醒度+0.4)的同时收到坏消息(效价-0.5,唤醒度+0.5),结果是(效价+0.1,唤醒度+0.9)——情绪强度很高,但正负几乎抵消。这恰好对应”悲喜交加”的体验。用离散标签,你没法同时是happy和sad。
2. 向量插值 = 情绪渐变
Agent从”平静”(0, 0)过渡到”兴奋”(0.6, 0.8),中间每一帧都可以做线性插值。在对话中,这意味着Agent的情绪不是突变而是渐变——从谨慎到热情、从紧张到放松,响应策略可以随之微调。
3. 向量距离 = 情绪相似度
用户上一轮的情绪向量是(-0.3, 0.7),这一轮是(-0.3, 0.2)。效价没变,唤醒度骤降——用户从”烦躁”变成”沮丧”。向量距离告诉你情绪变了多少,方向告诉你变了什么。
4. 状态转移矩阵 = 情绪动力学
不同情绪之间的转移不是等概率的。从”愤怒”到”悲伤”很常见,从”快乐”到”厌恶”很罕见。这可以用状态转移矩阵建模:
1 | P(悲伤 | 愤怒) = 0.25 (愤怒发泄后常转为悲伤) |
对连续向量,转移可以建模为 v(t+1) = A·v(t) + b·e(t) + noise,其中A是转移矩阵,e(t)是外部事件输入,b是输入权重。
Why:为什么混合情绪的计算如此重要?
因为真实的情绪体验极少是”纯”的。心理学研究反复表明:
- 混合情绪(Mixed Emotions)是常态而非例外。Larsen等人发现,同一时刻体验矛盾情绪(如看毕业照既开心又伤感)在成年人群中非常普遍。
- 情绪粒度(Emotion Granularity)高的人心理健康更好——他们能区分”沮丧”和”焦虑”,而不是笼统地觉得”不舒服”。对Agent来说,粒度高的情绪表示意味着更精准的策略选择。
具体例子:混合情绪下的决策
用户对Agent说:”你帮我订了那个酒店,价格不错,但离景点太远了。”
用PAD向量分析:效价微正(价格好),唤醒度中等(离景点远有点烦),支配度偏低(已经订了,改不了)。综合结果是”勉强满意但有点被动”。
Agent该怎么响应?如果只看效价的正负,会觉得”用户满意,可以继续”。但唤醒度和支配度的信息告诉你:用户处于被动状态,需要Agent主动提供解决方案(如”附近有地铁可以到景点”),而不是简单确认。
对Agent设计的启示: 情绪向量的核心价值不是表示单一情绪,而是表示混合状态。实现时,不要只看主维度做决策,要综合所有维度的组合模式。可以用预定义的”情绪模式”(如”焦虑型满意”= 效价正 + 唤醒度高 + 支配度低)来触发特定策略。
核心机制整合:从人类情绪维度理论到Agent可落地的状态表示方案
把前面的碎片拼起来,一个完整的Agent情绪状态表示方案应该长什么样?
1 | ┌─────────────────────────────────────────────┐ |
关键设计点:
事件编码器:将外部事件(用户消息、系统事件、环境变化)映射为PAD空间的增量向量。可以用规则(关键词→向量偏移),也可以用小模型微调。初始阶段推荐规则+人工校准。
时间衰减+叠加:当前状态 = 历史衰减 + 新事件加权叠加。衰减常数λ按维度差异化设置(效价λ_v ≈ 0.3/min,唤醒度λ_a ≈ 0.2/min,支配度λ_d ≈ 0.1/min,需根据场景调优)。
模式识别层:连续向量对人类不直观,需要映射到可解释的情绪模式。可以预定义一组典型模式(如6-10个),用最近邻匹配。这层就是”维度→离散”的桥梁——内部连续,外部可说。
策略映射:情绪模式→响应策略,这是最需要产品化设计的部分。不是”检测到愤怒就道歉”,而是”检测到高唤醒低支配的负面状态→用户感到失控→策略:提供选择恢复掌控感”。
这个架构的核心思想是:内部用维度向量保证表达力和可计算性,外部用离散模式保证可解释性和可操作性。 不要试图只选一边——要两层都有。
对Agent设计的启示(总结)
用PAD三维作为情绪向量的起点。 2维(效价+唤醒度)是最小可行方案,但”愤怒vs恐惧”这种关键区分需要支配度。4维以上调试成本高、收益递减,除非你有明确的业务需求(如需要区分”确定”和”不确定”的焦虑)。
内部连续,外部离散。 情绪向量在Agent内部保持连续值运算,只在需要输出(日志、可解释性展示、策略路由)时量化为离散标签或模式名。这跟颜色处理一样——内部RGB浮点数,外部说”深蓝”。
时间衰减是必须的,不是可选的。 没有衰减的情绪向量会导致”情绪污染”——一次负面交互的影响永远不消退。指数衰减是简单的起点,衰减常数按维度差异化,用业务数据校准。
混合情绪是常态,系统必须支持叠加运算。 不要试图在每次事件后取”主导情绪”,而是保持完整的向量状态,让策略层根据多维组合做判断。预定义5-10个常见混合模式(如”焦虑型满意””被动不满”),比试图把向量压成单一标签更有用。
事件编码器是最值得投入的部分。 PAD框架本身是成熟的,但”用户说了什么→PAD向量偏移多少”这件事没有标准答案。建议从规则系统开始(关键词→向量偏移映射表),积累数据后用小模型微调。规则的透明性在早期调试中极其重要。
下一篇,我们将讨论情绪的动力学——情绪不是静止的向量,而是在时间中流动的过程。从人类的情绪调节机制到Agent的状态转移设计,让情绪真正”动”起来。
参考资料
论文
- Russell, J.A. (1980). A circumplex model of affect. Journal of Personality and Social Psychology, 39(6). — 提出情绪环状模型,开创了情绪维度研究的实证传统
- Ekman, P. (1992). An argument for basic emotions. Cognition & Emotion, 6(3-4). — 基本情绪论的经典论述,提出了基本情绪的判别标准
- Mehrabian, A. & Russell, J.A. (1974). An approach to environmental psychology. MIT Press. — PAD模型的源头,将环境心理学量化为三个情绪维度
- Larsen, J.T., McGraw, A.P. & Cacioppo, J.T. (2001). Can people feel happy and sad at the same time? Journal of Personality and Social Psychology, 81(4). — 混合情绪的实证研究,证明了矛盾情绪的同时存在
- Posner, J., Russell, J.A. & Peterson, B.S. (2005). The circumplex model of affect: An integrative approach to affective neuroscience. Development and Psychopathology, 17(3). — 将环状模型与神经科学对接,为维度模型提供了生物学基础
- Fontaine, J.R.J., Scherer, K.R., Roesch, E.B. & Ellsworth, P.C. (2007). The world of emotions is not two-dimensional. Psychological Science, 18(12). — 用实证数据证明2维不够,4维(效价、唤醒度、控制度、预期性)更合适
- Cowen, A.S. & Keltner, D. (2017). Self-report captures 27 distinct categories of emotion bridged by continuous gradients. Proceedings of the National Academy of Sciences, 114(38). — 用大规模实验证明情绪空间远比6种基本情绪丰富
- Gendron, M. & Barrett, L.F. (2009). Reconstructing emotion: The experience is not the stimulus. Psychological Science, 20(7). — 构建情绪理论的实证支持,质疑情绪的通用面部表情假设
- Scherer, K.R. (2005). What are emotions? And how can they be measured? Social Science Information, 44(4). — 提出情绪的成分加工模型,整合了维度和离散两种视角
- Watson, D. & Tellegen, A. (1985). Toward a consensual structure of mood. Psychological Bulletin, 98(2). — 提出情绪的二维层级模型,与Russell模型形成互补
书籍
- Barrett, L.F. How Emotions Are Made: The Secret Life of the Brain. Houghton Mifflin Harcourt, 2017. — 构建情绪理论的科普代表作,挑战了基本情绪论的经典假设
- Damasio, A. Descartes’ Error: Emotion, Reason, and the Human Brain. Penguin, 1994. — 躯体标记假说的经典著作,论证情绪是理性决策的必要成分
- Plutchik, R. Emotion: A Psychoevolutionary Synthesis. Harper & Row, 1980. — 情绪进化轮模型,尝试整合离散和维度两种视角
综述
- Mauss, I.B. & Robinson, M.D. (2009). Measures of emotion: A review. Cognition & Emotion, 23(2). — 情绪测量方法的全面综述,对比了自评、行为、生理、神经四类指标
- Gendron, M. & Barrett, L.F. (2009). Reconstructing the past: A century of ideas about emotion in emotion. Emotion Review, 1(4). — 情绪理论百年演变史,梳理了从James到Barrett的理论脉络
- Sander, D. (2013). Models of emotion: The affective neuroscience approach. In: The Cambridge Handbook of Affective Sciences. — 情绪的神经科学模型综述,对比了基本情绪论和维度论的神经证据