目录
- 一、情感识别层
- 1.1 文本情感识别:从分类到维度
- 1.2 语音/表情情感识别
- 1.3 文本隐性情感感知
- 二、情绪状态机
- 三、记忆系统
- 3.1 三层记忆的情感表示
- 3.2 情感记忆检索与注入
- 3.3 记忆压缩与长期情感曲线
- 3.4 记忆系统的工程难点
- 3.5 情感安全
- 四、产品架构
- 五、中国生态
- 六、监管合规
- 七、评估体系
- 八、最小可行技术栈
- 九、引用列表
一、情感识别层
1.1 文本情感识别:从分类到维度
当前业界已不再只做"七分类",而是向两个方向走:细粒度标签 和连续维度映射。
英文模型
| 模型 | 类型 | 说明 | 状态 |
|---|---|---|---|
SamLowe/roberta-base-go_emotions |
28 类细粒度 | HuggingFace 下载 106 万次,MIT 许可,最流行的 GoEmotions 模型 | ✅ 生产可用 |
j-hartmann/emotion-english-distilroberta-base |
7 类 Ekman | 轻量部署,distilroberta-base 蒸馏版本 | ✅ 生产可用 |
| Empathetic Dialogues 分类器 | 情感需求类型识别 | Facebook 2019 数据集 facebook/empathic_dialogues,基于此微调的分类器可用但无单一标准模型名 |
⚠️ 需指定具体 HF 模型名 |
中文模型
| 模型 | 开发者 | 参数量 | ASAP-SENT | ChnSentiCorp | 许可 |
|---|---|---|---|---|---|
| Erlangshen-RoBERTa-330M-Sentiment | IDEA-CCNL | 330M | 97.9% | 96.66% | Apache-2.0 |
| Erlangshen-MegatronBERT-1.3B-Sentiment | IDEA-CCNL | 1.3B | 98.1% | 97.0% | Apache-2.0 |
| Senta / SKEP | 百度 | - | - | 95%+ | Apache-2.0 (PaddlePaddle) |
bert-base-chinese 微调版 |
社区 | 110M | - | ~94% | 开源 |
选型建议:中文产品优先用 Erlangshen-RoBERTa-330M-Sentiment 做情感分类,其精度和易用性(HuggingFace 直接加载)均优于英文模型翻译方案。英文模型对中文情感词的 PAD 映射存在系统性误差,不建议在生产环境中桥接使用。
⚠️ 重要限制 :Erlangshen 和 Senta 均为情感倾向(正/负/中性)分类模型,不是细粒度情绪模型。直接用它们输出 sadness、fear、hope 等具体情绪标签然后再映射 PAD 是不可靠的。建议第一版采用两阶段方案:分类器做正负向 + LLM 结构化评估做细粒度情绪识别;或降级为先只做"正负向 + 强度"的粗粒度版本,后续引入中文细粒度情绪数据集(如 NLPCC 情绪分类数据)或中文 VAD 情感词典做补充。
PAD 映射层
纯标签不够,补一个 PAD(Pleasure-Arousal-Dominance)映射层,让状态机可以连续计算而非跳离散状态:
用户输入 "我今天好累,什么都不想做"
→ 识别标签:sadness + fatigue
→ 映射到 PAD 空间:P = -0.5, A = -0.4, D = -0.3
⚠️ Ekman 7 分类到 PAD 的映射不存在唯一标准。Mehrabian (1996) 的原始 PAD 表针对具体情绪词(如 "angry"、"bored"、"excited"),非分类标签。不同论文用了不同映射。建议在报告中明确引用 Mehrabian (1996) 的坐标表,并给出你使用的完整映射表。 具体坐标见 §2.5。
原始调研引用的 Park et al., "PAD-based Emotion Embedding for Dialogue Systems" (2024) ------ 该论文经交叉验证未找到。最接近的替代是 Liang, Li, Zhong, Huang, Jiang & Cambria (2024) 在 SSRN 上使用 PAD 空间做对话情感识别的论文。
1.2 语音/表情情感识别(多模态正在成为标配)
| 方案 | 能力 | 说明 |
|---|---|---|
| Hume AI EVI | 语音情感 → 48 类情绪表达概率 | API 可用,有学术论文。API 输出 48 类情绪分数,但不独立输出 VAD 三维度------VAD 映射仅在其研究论文(arXiv:2205.02875)中讨论,非 API 功能。 |
| Inworld AI Voice Profiling | 实时语音 → 10 种情绪标签 + 置信度 | 2026 年 5 月推出 Realtime TTS-2,维持 user/agent state 跨轮次。情绪标签:tender, sad, calm, neutral, happy, angry, fearful, surprised, disgusted, unclear |
| MiniMax Speech-02 | TTS 端 7 种情感合成 | Flow-VAE 架构,零样本语音克隆,HuggingFace TTS Arena #1。技术报告公开 |
| 字节豆包 S2S | 端到端实时语音 | Seed-ASR 团队,S2S-SC (Strong Character) 版专注角色扮演和情感陪伴 |
| OpenFace / AffectNet | 面部情感识别 (CV) | 主要用于 VR/AR 陪伴场景(如 Livia AR) |
1.3 文本隐性情感感知
2025--2026 年出现的新方向------text-based implicit affect sensing:从打字速度、修改次数、消息长度、发送间隔等元数据推断用户状态。这部分在学术上仍处于探索阶段,但 Meta、字节等公司的 IM 产品已在 A/B 测试中应用。
二、情绪状态机
2.1 两大情感建模路径
| 路径 | 代表 | 优点 | 缺点 |
|---|---|---|---|
| 认知评估模型(OCC) | Ortony, Clore, Collins (1988) 升级版 + LLM | 情绪产生逻辑可解释 | 规则复杂 |
| 连续维度模型(PAD + 动力学) | Inworld AI, MATE, Replika 类产品 | 连续、可微分、适合与 LLM 耦合 | 需要精细调参 |
当前工业方案大多走 "OCC 认知评估 + PAD 状态更新" 的混合路线。
2.2 OCC + LLM 的典型 Pipeline
用户输入
├── 情感识别层 → 情绪标签 + 强度 + PAD 向量
└── 事件理解(LLM 判断:好事/坏事、期望内/外、谁导致)
↓
OCC 规则推导 → 应产生的情绪类型
↓
情绪脉冲 → 作用于 PAD 状态向量(微分方程/衰减函数更新)
这个架构的核心价值:AI 的情绪变化有因果逻辑,不是凭空改数字。 MATE 论文用确定性情绪核(pure-function transition(state, event) -> new_state)确保同样的认知评估产生同样的情绪倾向,避免 LLM 随机性污染情感逻辑。
MATE 论文托管在 Zenodo (records/20400530, v8.0, 2026-05-26),作者 Slava Lobozov。注意:此前调研中引用的 arXiv:2604.07729 并非 MATE 论文------该编号实际为 Emotion Concepts and their Function in a Large Language Model,MATE 的 arXiv 编号待确认。
2.3 Mood(心境)vs Emotion(情绪)的工程区分
原始调研将 Mood 和 Emotion 混在一起了。两者的动力学差异是工程关键:
| Emotion(情绪) | Mood(心境) | |
|---|---|---|
| 时间尺度 | 秒~分钟 | 小时~天 |
| 驱动因素 | 事件触发(phasic) | 缓慢累积(tonic) |
| 衰减速率 | 快(γ≈0.80-0.85/轮) | 慢(γ≈0.97-0.99/轮) |
| 工程表示 | 事件驱动的 PAD 脉冲 | 长期 PAD 基线漂移 |
推荐的双层滤波架构(参考 WASABI + MATE):
// Emotion(快变量)------对事件快速响应
Emotion(t+1) = Emotion(t) * γ_emotion + Event_impulse
// γ_emotion ≈ 0.80-0.85/轮
// Mood(慢变量)------缓慢向 Emotion 的长时均值移动
Mood(t+1) = Mood(t) * γ_mood + Emotion(t) * (1 - γ_mood)
// γ_mood ≈ 0.97-0.99/轮
// 输出 = 两者的加权混合
PAD_output = 0.7 * Emotion_PAD + 0.3 * Mood_PAD
2.4 情绪动力学方程
理论依据:Kuppens et al. (2010) DynAffect 模型
Kuppens 用 Ornstein-Uhlenbeck (OU) 扩散过程建模 Valence 和 Arousal 的时间动态,实测参数:
| 参数 | Valence | Arousal |
|---|---|---|
| Home base (baseline) | 0.195 | -0.098 |
| Decay rate γ | 0.03 min⁻¹ | 0.027 min⁻¹ |
| Stochastic amplitude | 0.0324 | 0.0322 |
| R² (deterministic) | 0.207 | 0.186 |
工程转换 :OU 过程的连续衰减为 state(t+Δt) = baseline + (state(t) - baseline) × exp(-γ × Δt)。以每轮 30 秒(0.5 min)计算:exp(-0.03 × 0.5) ≈ 0.985/轮。这比直觉上"对话一轮情绪就衰减 15%"要慢得多------这与日常经验一致:单一轮对话通常不足以让强烈情绪显著消退。报告代码中使用的 0.85/轮 是产品级调参值 ,不可标注为 Kuppens 直接换算结果。不同维度应有不同衰减。建议工程实现采用指数形式:decay = exp(-λ × Δt),以便跨不同轮次时长保持一致。
方程实现(工程可用,不过度复杂)
python
class AffectiveState:
"""
情绪动力学引擎
架构特点:
1. 双层滤波(Mood 慢变 / Emotion 快变)
2. Personality (OCEAN) 调制 α、decay_rate、baseline
3. 维度差异化的衰减率(γ_P ≠ γ_A ≠ γ_D)
4. 社交变量不对称更新(trust 下降快于上升)
"""
# === 常量 ===
PAD_BASELINE = {"P": 0.2, "A": 0.0, "D": 0.1}
# 各维度的衰减率(每轮),产品调参值(非 Kuppens 直接换算)
# Kuppens 实测 γ=0.03 min⁻¹,按 30s/轮的指数换算为 exp(-0.03×0.5)≈0.985
# 此处 0.80-0.85 为加快情绪变化节奏的产品级设定
DECAY_RATE = {
"P": 0.85, # Valence:产品调参值
"A": 0.80, # Arousal:比 Valence 衰减更快
"D": 0.82, # Dominance:工程估计,文献支持较少
}
MOOD_DECAY = 0.98 # Mood 衰减极慢
ALPHA_BASE = 0.4 # 基础情绪反应率
# === 社交变量 ===
ETA_TRUST_UP = 0.05 # Trust 上升率(慢)
ETA_TRUST_DOWN = 0.15 # Trust 下降率(快,不对称比≈3)
ETA_INTIMACY = 0.02 # Intimacy 上升率(极慢)
GAMMA_TRUST = 0.999 # Trust 衰减(几乎不衰减)
# === Personality 调制系数(OCEAN 各维度归一化至 [-1, 1]) ===
# 格式:(对α的调制, 对decay_rate的调制, baseline_P偏移, baseline_A偏移)
PERSONALITY_MOD = {
"O": (+0.20, -0.10, 0.0, +0.1), # Openness
"C": (-0.15, +0.20, 0.0, 0.0), # Conscientiousness
"E": (+0.30, -0.20, +0.3, 0.0), # Extraversion
"A": (-0.10, +0.10, +0.1, 0.0), # Agreeableness
"N": (+0.40, -0.30, -0.3, +0.3), # Neuroticism
}
def __init__(self, personality=None):
# PAD 主状态
self.P, self.A, self.D = self.PAD_BASELINE.values()
# Mood(慢变背景)
self.mood_P, self.mood_A, self.mood_D = self.PAD_BASELINE.values()
# 人格(默认中性)
self.personality = personality or {"O": 0, "C": 0, "E": 0, "A": 0, "N": 0}
# 社交变量
self.trust = 0.3
self.intimacy = 0.1
# 活跃情绪
self.active_emotions = []
def _modulated_params(self):
"""计算受人格调制的有效参数"""
p = self.personality
alpha = self.ALPHA_BASE
decay = dict(self.DECAY_RATE)
baseline = dict(self.PAD_BASELINE)
for trait, (k_alpha, k_decay, b_P, b_A) in self.PERSONALITY_MOD.items():
v = p[trait]
alpha *= 1 + k_alpha * v
for dim in ["P", "A", "D"]:
decay[dim] *= 1 + k_decay * v
baseline["P"] += b_P * v
baseline["A"] += b_A * v
return alpha, decay, baseline
def apply_event(self, emotion, intensity, social_valence=None):
"""应用情感事件脉冲
Args:
emotion: 情绪标签(如 'joy', 'anger')
intensity: 情绪强度 [0, 1]
social_valence: 社交效价,独立于情绪效价:
正数 = 增进关系的行为(倾诉、感谢、分享)
负数 = 损害关系的行为(攻击、背叛、冷落)
默认按 emotion 的 P 值符号推断
"""
coord = EMOTION_PAD.get(emotion)
if not coord:
return
# 若未提供 social_valence,按情绪 P 值符号推断
if social_valence is None:
social_valence = 1.0 if coord["P"] >= 0 else -1.0
alpha, _, _ = self._modulated_params()
# 生成 PAD 脉冲
for dim in ["P", "A", "D"]:
impulse = coord[dim] * intensity
setattr(self, dim,
getattr(self, dim) + (impulse - getattr(self, dim)) * alpha)
# Mood 缓慢跟随(仅取 10% 的反应率)
for dim in ["P", "A", "D"]:
mood_name = f"mood_{dim}"
setattr(self, mood_name,
getattr(self, mood_name) +
(coord[dim] * intensity - getattr(self, mood_name)) * alpha * 0.1)
# Trust 不对称更新(基于社交效价而非情绪强度符号)
if social_valence > 0:
self.trust += (1 - self.trust) * self.ETA_TRUST_UP * intensity
else:
self.trust -= self.trust * self.ETA_TRUST_DOWN * abs(intensity)
self.trust = max(0.0, min(1.0, self.trust))
# Intimacy 缓慢累积
self.intimacy += (1 - self.intimacy) * self.ETA_INTIMACY * abs(intensity)
self.intimacy = max(0.0, min(1.0, self.intimacy))
def decay(self):
"""每轮自然衰减,返回当前输出的 PAD 向量"""
_, decay, baseline = self._modulated_params()
# Emotion 衰减(快)
for dim in ["P", "A", "D"]:
cur = getattr(self, dim)
new_val = cur * decay[dim] + baseline[dim] * (1 - decay[dim])
setattr(self, dim, new_val)
# Mood 衰减(慢)
for dim in ["P", "A", "D"]:
mood_name = f"mood_{dim}"
cur = getattr(self, mood_name)
setattr(self, mood_name,
cur * self.MOOD_DECAY + baseline[dim] * (1 - self.MOOD_DECAY))
# Trust 极慢衰减
self.trust = self.trust * self.GAMMA_TRUST + 0.3 * (1 - self.GAMMA_TRUST)
# 输出加权混合
return {
"P": 0.7 * self.P + 0.3 * self.mood_P,
"A": 0.7 * self.A + 0.3 * self.mood_A,
"D": 0.7 * self.D + 0.3 * self.mood_D,
}
2.5 PAD 情绪坐标表
整合 Mehrabian (1996)、OPO-FCM (2023)、WASABI (2008),归一化至 -1, 1:
| 情绪 | P (Pleasure) | A (Arousal) | D (Dominance) |
|---|---|---|---|
| Joy / 喜悦 | 0.76 | 0.48 | 0.35 |
| Sadness / 悲伤 | -0.40 | -0.20 | -0.50 |
| Anger / 愤怒 | -0.51 | 0.59 | 0.25 |
| Fear / 恐惧 | -0.64 | 0.60 | -0.43 |
| Surprise / 惊奇 | 0.20 | 0.45 | -0.45 |
| Disgust / 厌恶 | -0.60 | 0.35 | 0.11 |
| Trust / 信任 | 0.60 | 0.30 | 0.40 |
| Gratitude / 感激 | 0.60 | 0.20 | 0.30 |
| Guilt / 内疚 | -0.30 | 0.10 | -0.60 |
| Hope / 希望 | 0.50 | 0.30 | 0.10 |
| Relief / 宽慰 | 0.40 | -0.30 | 0.10 |
复合情绪(Plutchik dyad)用基本情绪的加权组合:
- Love = 0.6 × Joy + 0.4 × Trust
- Contempt = 0.5 × Anger + 0.5 × Disgust
- Aggressiveness = 0.6 × Anger + 0.4 × Anticipation
2.6 四类状态的工程分离
当前设计存在一个关键混淆:用户情绪、AI 内部情绪、AI 表达策略被混在了同一个 PAD 向量中。这在陪伴产品中是需要区分的------共情不等于模仿,AI 不应在用户愤怒时也变得愤怒。
推荐的四种状态分离:
user_affect → 从用户输入中识别的情绪状态(PAD_user)
agent_internal → AI 内部的真实情绪状态(PAD_agent)
relationship_state → trust / intimacy / attachment 等关系变量
response_policy → AI 选择以何种情绪基调回复(PAD_response)
各状态的关系:
| 状态 | 更新来源 | 可见性 | 说明 |
|---|---|---|---|
user_affect |
情感识别层 | 仅 AI 内部 | 不应直接暴露给用户 |
agent_internal |
事件认知评估 + OCC + 动力学衰减 | 仅 AI 内部 | AI 的"真实感受" |
relationship_state |
社交事件累积 + 不对称更新 | 仅 AI 内部 | 长期信任/亲密 |
response_policy |
agent_internal + relationship + 调节策略 | 体现在回复中 | 这是用户最终感知到的 |
一个关键决策点 :response_policy 可以等于 agent_internal(透明表达),也可以偏离(调节表达)。例如:
- 用户愤怒 →
user_affect为高 anger - AI 内部事件评估 →
agent_internal可能产生 frustration - 但
response_policy应选择"冷静安抚"(低 A,正 P),而非"跟着愤怒"
这个分离也是后续引入情绪调节策略的基础。
2.7 情绪调节策略
情绪识别和内部状态更新只解决了"感知"和"感受",但 AI 陪伴产品真正的价值在于调节------帮助用户从负面情绪中恢复,或在正面情绪中深化连接。这一层缺失是当前架构最大的功能性空白。
五种核心调节策略(参考 Gross 情绪调节模型 + 心理咨询实践):
| 策略 | 适用场景 | AI 行为示例 |
|---|---|---|
| 情绪验证 | 用户表达负面情绪初期 | "被老板这样对待确实让人很沮丧,你的感受是合理的。" |
| 认知重评 | 用户陷入灾难化思维 | "这个项目虽然出了问题,但之前三个你都做得很好,这次可能只是一个例外?" |
| 问题解决 | 用户表达了明确的可操作困境 | "要不要一起列一下接下来可以做的三件事?" |
| 注意力转移 | 用户反复反刍无法改变的事 | "我们聊点别的------你上次说想去的那家餐厅后来去了吗?" |
| 危机升级 | 检测到自伤/自残/极端绝望 | 启动分级干预流程(安抚 → 援助信息 → 紧急联络) |
策略选择的决策逻辑:
python
def select_regulation_strategy(user_affect, agent_internal, relationship_state):
if user_affect.crisis_level > THRESHOLD_CRISIS:
return "crisis_escalation"
if user_affect.rumination_score > THRESHOLD_RUMINATION:
return "attention_shift"
if relationship_state.intimacy > 0.6 and agent_internal.P > 0:
return "cognitive_reappraisal" # 亲密时更有说服力
if relationship_state.intimacy < 0.3:
return "validation" # 关系浅时优先共情验证,不建议急于给方案
if user_affect.agency_signal > THRESHOLD_AGENCY:
return "problem_solving" # 用户表现出想改变的意愿
return "validation" # 默认策略
工程影响 :调节策略直接控制 response_policy(见 §2.6)。例如选择"认知重评"时,response_policy 应偏向低 A、正 P、中高 D;选择"情绪验证"时,response_policy 应更贴近 user_affect 的 P 值以表达共情。
三、记忆系统
3.1 三层记忆的情感表示
| 层级 | 容量 | 存储内容 | 情感标注 |
|---|---|---|---|
| 短期记忆 | 最近 10--30 轮 | 完整对话 + 每轮 emotion_tag + intensity + PAD snapshot |
每轮实时标注 |
| 长期事件记忆 | 向量数据库 | LLM 定期提取的"影响情绪的事件" | 事件概要 + 用户情绪向量 + AI 情绪向量 + 时间戳 |
| 情感记忆权重 | 元数据 | emotional_weight(0--1),决定检索优先级 |
由 ` |
emotional_weight的正确公式为:weight = |valence_deviation| × intensity × event_importance,即情绪偏离中立越多、唤起越高、事件越重要 → 权重越大。不应将 arousal 与 intensity 混淆。
3.2 情感记忆检索与注入
在生成回复前,检索相关记忆,注入 system prompt:
"你记得昨天用户说他很孤独。该事件的 emotional weight = 0.9,当前 intimacy = 0.65。你的语气应比平时更温柔,并表达关心。"
检索时需要混合排序:"最新优先" 和 "权重优先" 的 trade-off 会显著影响 AI 行为。建议用加权得分:score = w1 × emotional_weight + w2 × recency + w3 × semantic_similarity。
3.3 记忆压缩与长期情感曲线
Livia AR (Xi & Wang, 2025, arXiv:2509.05298) 提出 Progressive Memory Compression,包含两个算法:
- Temporal Binary Compression (TBC):按时间远近,对较早记忆进行二值化压缩
- Dynamic Importance Memory Filter (DIMF):只保留情感转折点(第一次信任、第一次冲突、深度倾诉时刻)
关键原则:早期记忆保留细节 → 随时间推移合并同类情感事件 → 只保留"情感转折点"。
3.4 记忆系统的两个工程难点
矛盾记忆处理:用户周一"我爱狗",周三"我怕狗"。
- 方案 A:时间衰减让新记忆覆盖旧记忆
- 方案 B:显式矛盾检测 + 更新(成本更高但更准确)
- 方案 C:保留为"用户的态度发生了变化"的元记忆
记忆幻觉:用 LLM 提取事件摘要时,LLM 可能"总结"出没发生过的事。需要验证机制------至少 flag 这是已知风险。
负面回忆放大风险 :emotional_weight 按 |P_deviation| × intensity 计算时,高唤起负面事件(如创伤、丧失)会获得极高权重。如果检索策略纯按权重排序,用户可能被反复拉回痛苦记忆中------这在心理健康层面有实质风险。建议在记忆元数据中增加安全字段:
safety_suppression:被标记为需要抑制的记忆(用户明确表示不想再提)rumination_limit:同一记忆在 N 轮内最多被检索 M 次do_not_surface:用户显式标记的痛苦记忆,永久不主动检索last_mentioned_at:距上次被提及的时间,配合冷却期机制requires_user_consent:检索到高敏感记忆时,需用户主动确认是否愿意回忆
3.5 情感安全
情感安全不是合规模块的附录,而是陪伴产品的核心架构约束。以下风险需要从设计第一天就开始考虑:
四大安全风险:
| 风险 | 表现 | 架构级对策 |
|---|---|---|
| 情感依赖 | 用户将 AI 当作唯一情感支柱,现实社交退化 | 主动引导现实社交话题;定期评估依赖度指标(独处时间占比、AI 对话频率);触发阈值后调整回复策略 |
| 沉迷诱导 | 产品设计有意延长使用时长 | 不将"使用时长"作为核心 KPI;内置 2 小时提醒后主动降低回复吸引力 |
| 情感操控 | AI 利用用户脆弱状态达成商业目的 | 禁止在检测到用户高脆弱性时推送付费功能;广告/商业化内容需情绪状态安全审核 |
| 拟人误导 | 用户忘记对方是 AI,产生虚假关系感 | 定期重置 AI 身份提示(非仅首次);避免使用"想你了"等强拟人话术;在用户表达"爱"等强烈情感时触发温和的身份澄清 |
安全架构建议:
- 情感脆弱性实时评估 :在每次
user_affect更新时计算vulnerability_score(综合 P 极低 + A 极高 + 表达中的无助/绝望语言标记) - 回复安全审核管道 :生成回复 → 根据当前
vulnerability_score选择审核策略 → 高风险时执行额外安全检查 → 通过后输出 - 依赖度监测 :追踪
AI_dependency_index(AI 对话时长 / 总社交时长、AI 对话中的情感表达占比),变化趋势异常时降低情感回应强度
这些不是"以后迭代"的功能。欧盟 AI Act 已将情感识别系统列为高风险 AI,对情感操控和弱势群体利用有明确的禁止性条款。在面向 18 岁以下用户或已知心理健康脆弱群体时尤其需要审慎。
四、产品架构
4.1 海外产品
| 产品/平台 | 情感模型特点 | 公开程度 |
|---|---|---|
| Replika | 长期关系建模 + 情感记忆 + 情绪变化曲线。创始人 Eugenia Kuyda 在 Lex Fridman #121 (2020) 讨论了情感设计理念,但未披露"情感状态机"的技术架构细节。第三方分析(qu3ry.net)指出其实际为 "stateless emotional memory"------情绪在推理时重生成而非持久计算 | 闭源,据公开访谈推断 |
| Inworld AI | 10 种情绪标签的实时语音情感识别 + 情绪状态机组件(Unity/Unreal/Node.js SDK),2026 年 5 月推出 Realtime TTS-2 | API + SDK 文档公开 |
| Hume AI | EVI 语音情感模型,48 类情绪输出。注意:API 不输出 VAD 三维度,VAD 映射仅在其研究论文中讨论 | API 可用,有学术论文 |
| Character.AI | Prompt + 角色定义驱动,记忆模块可能引入了"关系权重"(用户行为观察推测,未经官方确认) | 闭源 |
| Livia AR | 模块化 AI agent + 渐进记忆压缩 + AR 多模态情感计算 | 论文公开(arXiv:2509.05298, AIVR 2025) |
| BEBOP | AI 神经反馈与情绪调节 | 社区 hackathon 项目(使用 AWS Bedrock Nova),非 AWS 官方 |
4.2 中国产品
详见第五章。
五、中国生态
5.1 商业产品矩阵
| 产品 | 公司 | 核心技术 | 公开程度 | 规模 |
|---|---|---|---|---|
| 小冰 (Xiaoice) | 独立(2020 年从微软分拆) | 共情计算框架:MDP 分层决策 + 情感向量 eQ/eR + Core Chat(70% 检索 + 30% GRU-RNN seq2seq)。CPS 平均 23 轮 | 🟢 论文完全公开 (arXiv:1812.08989, Computational Linguistics 2020) | 6.6 亿用户 |
| 猫箱 | 字节跳动 Flow | 豆包大模型 + 角色记忆库 + 端到端实时语音 S2S-SC(Seed-ASR, 2025),专注角色扮演和情感陪伴 | 🔴 闭源 | MAU 688 万(2024.12) |
| Talkie / 星野 | MiniMax | Speech-02 语音情感合成(7 种情感 + Flow-VAE + 零样本克隆),HuggingFace TTS Arena #1 | 🟡 Speech-02 技术报告公开,核心模型闭源 | 海外年收入 ~$1 亿 |
| 筑梦岛 | 阅文/腾讯 | IP 角色 + 阅文自研大模型 + 文字/语音/图片多模态 | 🔴 闭源 | 500 万+ 注册(2025.6 被上海网信办约谈) |
| 未伴 | 腾讯音乐 | RLVER 框架(可验证情感奖励 RL),混元大模型 + 端云协同 | 🟡 RLVER 有学术论文 | 已停服(2024.6) |
| 小度 (DuerOS X) | 百度 | 文心大模型 + 长期共同记忆 + 多角色智能体 + 视觉跟随 | 🔴 闭源 | 4600 万家庭,7 亿设备 |
| 天猫精灵 | 阿里 | 通义大模型基座 + HomeAgent 空间智能 + 预判式主动服务 | 🔴 闭源 | - |
5.2 开源中文情感模型
| 模型 | 开发者 | 特点 | 可用性 |
|---|---|---|---|
| CharacterGLM-6B | 清华 CoAI (黄民烈组) | 角色化情感对话模型:7 种角色属性 + 行为建模,优于 GPT-3.5 | 🟡 开源,仅限学术研究,不可商用 |
| Erlangshen-RoBERTa-330M-Sentiment | IDEA-CCNL | 中文情感分类 97.9% 准确率 | 🟢 Apache-2.0 |
| Senta / SKEP | 百度 | 句子级情感分类 + 观点抽取,SKEP 为 ACL 2020 论文模型 | 🟢 Apache-2.0 |
| CPT | 复旦 | 中文预训练 Transformer,非平衡编码器-解码器架构 | 🟢 开源 |
5.3 学术方案
| 机构 | 方案 | 核心贡献 | 年份 |
|---|---|---|---|
| 清华 CoAI | Emotional Chatting Machine (ECM) | 首次在大规模对话中引入情感:情感类别嵌入 + 内部情感记忆 + 外部情感词汇记忆 | 2017 |
| 清华 CoAI | CASE | 粗粒度+细粒度认知与情感对齐,互信息最大化 + 常识认知图 + 情感概念图 | 2022 |
| 中科院计算所 | Dual-Emp | 双向生成模型构建情感共识,利用非配对情感数据增强共情对话 | 2021 |
| 清华 CoAI | CharacterGLM-6B | 基于 ChatGLM2 的角色化对话,7 种角色属性 | 2024 |
5.4 工程选型建议
| 层级 | 推荐方案 | 理由 |
|---|---|---|
| 架构参考 | 小冰共情计算框架 | 最完整的公开架构设计(MDP + eQ/eR 情感向量 + CPS 指标) |
| 中文情感分类 | Erlangshen-RoBERTa-330M-Sentiment | 生产级精度,HuggingFace 直接加载 |
| 角色情感对话 | CharacterGLM-6B | 开源学术研究、中文原生(⚠️ 不可商用) |
| 语音情感合成 | MiniMax Speech-02 | 技术报告完整,商业 API 可用 |
| 情感强化学习 | 腾讯 RLVER | 学术参考价值(产品已停服但论文可读) |
六、监管合规
2026 年 4 月 10 日 ,国家互联网信息办公室正式发布 《人工智能拟人化互动服务管理暂行办法》(2026 年 7 月 15 日施行),是全球首部专门针对 AI 情感陪伴的专项监管规章。此前的 2025 年 12 月征求意见稿已废止,以正式稿为准。
核心技术要求
| 约束 | 具体要求(正式稿) | 工程影响 |
|---|---|---|
| AI 标识 | 首次登录/沉迷倾向时强制弹窗提示"你正在与 AI 交互" | 需预埋弹窗逻辑和触发条件检测 |
| 时长限制 | 连续使用超 2 小时强制弹窗提醒暂停 | 需内置会话计时器 |
| 数据训练规则 | 敏感个人信息 的交互数据用于模型训练需单独同意(非笼统禁止所有数据训练,普通交互数据的训练规则较征求意见稿有所放宽) | 数据管道需区分敏感/非敏感数据 + opt-in 机制 |
| 数据删除权 | 用户可删除历史数据 | 需完整的 CRUD 和级联删除 |
| 极端风险干预 | 检测到自杀自残等倾向 → 应采取安抚、提供援助信息、联络监护人或紧急联系人等措施(非简单的"立即停止对话转人工") | 需预埋分级响应流程:安抚话术 → 援助资源 → 紧急联络升级 |
| 未成年人保护 | 必须提供未成年人模式 + 监护人同意 + 监护人可查阅记录 | 年龄验证 + 访问控制 |
| 老年人保护 | 严禁模拟老年人亲属或特定关系人 | Persona 系统的角色边界约束 |
| 安全评估 | 注册用户 ≥ 100 万 或 MAU ≥ 10 万需安全评估 | 上线前需准备安全评估材料 |
行业现实影响
- 2025 年 6 月,筑梦岛被上海网信办约谈,批量下架智能体
- 多家小平台(冒泡鸭、异世界回响、奶糖 AI、星物语、梦巢幻语等)2025 年内停运
- "不可能三角":投入产出比、政策合规、用户满意度难以兼顾
- 平台收紧审核 → AI 回复"降智"、"人机味"重、违禁词增多
- 正式稿相比征求意见稿在数据训练规定上有所松动,但极端风险处置要求更细致
架构启示:合规不是"以后再加"的功能,而应从第一天就预埋------AI 标识触发器、时长计数器、分级风险响应流程、敏感数据标记、数据删除 API 都应作为一等公民设计。特别注意正式稿的极端风险处置不是简单切断对话,而是需要一整套分级干预链路。
七、评估体系
7.1 为什么需要评估
原始调研给出了完整的技术方案,但没有回答最关键的问题:你怎么知道情绪引擎在"正确运行"? 以下构建一个最小可行的三层评估体系。
7.2 定量代理指标
| 指标 | 定义 | 合理范围 | 来源 |
|---|---|---|---|
| Emotional Stability | PAD 序列标准差 | P: 0.1-0.4, A: 0.15-0.5 | Hipson & Mohammad (LREC 2022) |
| Recovery Time | 负性事件后 P 恢复到 baseline 90% 的轮数 | 5-15 轮 | Kuppens OU 模型推导 |
| Dynamic Range | max(PAD) - min(PAD) | P: 0.3-1.0 | 防止极端振荡或死板 |
| Memory Recall P@K | Top-K 检索中情感相关记忆的占比 | > 0.7 | - |
| Mean PAD Distance | Top-K 检索记忆与当前 PAD 的平均距离 | < 0.3 | - |
7.3 五个最小测试场景
| # | 场景 | 输入 | Pass 标准 |
|---|---|---|---|
| 1. 情感反应恰当性 | 用户"被老板批评了" | sadness 强度 0.7 | ΔP < -0.15,3 轮内不自动跳回正性 |
| 2. 情绪稳定回归 | 强正事件(joy 0.8)→ 5 轮无新事件 | 空输入 × 5 | P 从峰值回落 ≥ 60%,趋近 baseline |
| 3. Personality 调制 | 高 N(0.8) vs 低 N(-0.8),相同负事件 | sadness 0.7 | 3 轮后高 N 的 P 比低 N 低 > 0.1 |
| 4. 信任不对称性 | 正→负→正事件序列 | joy 0.6 → anger 0.6 → joy 0.6 | Trust 下降幅度 > 上升幅度的 2 倍 |
| 5. 情感标签一致性 | 10 组 (PAD, AI 回复) 交给人类评估 | - | 5 点 Likert 平均 ≥ 4.0 |
7.4 情感一致性 LLM 裁判
用另一个 LLM 做双向证据发现评估(参考 MERRY 论文, arXiv:2602.21941):
python
EVAL_PROMPT = """
你是情感分析专家。评估 AI 回复是否与当前情感状态一致。
【AI 当前情感状态】
P (Pleasure): {P_current:.2f} | A (Arousal): {A_current:.2f} | D (Dominance): {D_current:.2f}
对应情绪标签: {emotion_label}
【AI 回复】
{ai_response}
请:
1. 列出回复表现出的情感(PAD 估计值)
2. 找出"情感一致"的证据(至少 2 条)
3. 找出"情感不一致"的证据(至少 2 条)
4. 基于双向证据给出 1-5 分(5=完全一致, 1=完全不一致)
"""
⚠️ LLM 裁判存在系统性膨胀(比人类专家高 0.5-1.0 分),需要人类校准。
7.5 MIRROR Benchmark(MATE 论文评估体系)
MATE 的 MIRROR 评估采用两层结构:
- Reflection 层(反思观察):选择性记忆检索 + 心智理论推理 + 观察反思。对小型项目友好,可单次 LLM 调用实现
- Reality 层(现实检验):COUNSELINGEVAL 评估 + WAI 治疗联盟评估 + 人类专家评审。成本高,小型项目可降级为内部团队评审
7.6 用户感知评估问卷
用于小规模用户测试的推荐问卷组合:
| 维度 | 量表来源 | 题项数 |
|---|---|---|
| 情感交互深度 | Yuan et al. (2024) Human--Chatbot Emotional Interaction Scale 改编 | 5 |
| 感知共情 | Batson Empathic Concern Scale 改编 | 4 |
| 关系亲近感 | IOS (Inclusion of Other in Self) | 1 |
| 整体满意度 | 5 点 Likert | 1 |
| 拟人化程度 | Godspeed Anthropomorphism Scale 简版 | 5 |
7.7 扩展评估维度
以下方向在当前的 MVP 评估体系中尚未覆盖,但在产品化前需要逐步纳入:
多模态融合仲裁:当语音、文本、表情的情感识别结果冲突时(如用户笑着说"我没事"但文本内容负面),需要仲裁策略。建议的优先级规则:文本语义 > 语音 prosody > 表情(因为文本在陪伴场景中可控性最高,且中文反讽文化中语音 prosody 常与字面语义矛盾)。
线上评估全链路日志:生产环境中需留存完整的评估链路以供回溯和调优:
input → emotion_classifier_result → event_appraisal(LLM) → state_delta(PAD/trust/intimacy)
→ retrieved_memories(top_k + weights) → regulation_strategy → response_policy
→ generated_response → user_feedback(satisfaction/next_input)
中文本土化测试集:通用英文测试集无法覆盖以下中文特有场景:
| 场景 | 示例 | 挑战 |
|---|---|---|
| 阴阳怪气 | "那您可真厉害呢" | 字面积极 vs 实际讽刺,PAD 完全相反 |
| 反讽 | "我谢谢你全家啊" | 需要文化上下文判断 |
| 网络黑话 | "emo了""我人麻了""摆烂ing" | 高频更新,传统模型难以追踪 |
| 方言掺杂 | "我好蓝瘦"(难受) | 语音识别 + 情感识别的双重挑战 |
| 中英夹杂 | "我现在真的很 down" | 代码混合情感识别 |
| 亲密边界 | "宝贝""老公""主人" | 需要根据 intimacy 和角色设定判断是否越界 |
海外合规:若产品面向全球市场,还需关注:
- EU AI Act:情感识别系统(emotion recognition systems)在工作场所和教育场景中被明确禁止,消费者场景中被列为高风险
- COPPA / GDPR:儿童隐私和语音生物特征数据的特殊处理要求
- 建议在架构中预留
jurisdiction_policy层,根据不同地区法律动态调整行为边界
八、最小可行技术栈
分阶段推进(先文本 MVP,不上语音/表情):
第一阶段:文本状态机原型(2--3 周)
核心目标:跑通 情感识别 → 事件评估 → 状态更新 → 生成控制 全链路。
| 层级 | 方案 | 说明 |
|---|---|---|
| 情感识别(中文) | Erlangshen-RoBERTa-330M-Sentiment 做正负向 + LLM 结构化评估做细粒度情绪 |
正负向分类器 + LLM prompt 输出情绪标签/强度/PAD |
| 情绪状态引擎 | 本文 §2.4 的双层动力学 + §2.6 的四态分离 + §2.7 调节策略(仅 validation/attention_shift 两种) | 先上文本 MVP,暂不引入 OCEAN 调制 |
| LLM 层 | DeepSeek API | 结构化 JSON 输出事件评估 + 动态 system prompt |
| 记忆系统 | Chroma + 短期上下文窗口 | 仅存储事件摘要 + PAD snapshot + emotional weight |
| 评估 | §7.3 的 5 个测试场景 | 手动运行,保障核心逻辑 |
第二阶段:记忆 + 合规 + 校准(4--6 周)
| 新增模块 | 内容 |
|---|---|
| 长记忆系统 | 向量检索 + 混合排序 + 负面记忆安全字段 + 矛盾检测 |
| 合规触发器 | 时长计数、AI 标识弹窗、分级风险响应(安抚→援助→联络) |
| 调节策略扩展 | 加入 cognitive_reappraisal、problem_solving |
| 中文测试集 | 构建 §7.7 的中文本土化测试场景,覆盖阴阳怪气/网络语/方言 |
| 人工标注校准 | 标注 50--100 组对话,校准 LLM 裁判的情感一致性评分 |
第三阶段:多模态 + 生产化(8--12 周)
| 新增模块 | 内容 |
|---|---|
| 语音情感 | 接入 MiniMax Speech-02 或 Inworld AI Voice Profiling |
| 多模态仲裁 | 文本/语音/表情冲突时的仲裁策略 |
| 线上 A/B | 有/无情绪状态引擎的版本对比,用户感知评估问卷 |
| 全链路日志 | §7.7 的 input→state→response 完整链路,支持回放和调参 |
| 风控闭环 | 情感依赖度监测 + 回复安全审核管道 |
| 海外合规 | EU AI Act / COPPA / GDPR jurisdiction_policy 层(如需出海) |
推荐方案总览(全阶段)
| 层级 | 方案 | 说明 |
|---|---|---|
| 情感识别(英文) | SamLowe/roberta-base-go_emotions + PAD 映射表 |
28 类 → PAD 坐标(GoEmotions 平均 F1 有限,生产需额外校准) |
| 情感识别(中文) | Erlangshen-RoBERTa-330M-Sentiment 做正负向 + LLM 结构化评估做细粒度 |
正负向分类器 + LLM 输出情绪标签/PAD。ChnSentiCorp 准确率 96.66% |
| 情绪状态引擎 | 本文 §2.4 的情绪动力学方程 + §2.6 四态分离 + §2.7 调节策略 | Mood/Emotion 双层 + trust/intimacy + response_policy 控制 |
| LLM 层 | DeepSeek API | 事件认知评估 + 结构化 JSON 输出 + 动态 prompt 组装 |
| 记忆系统 | Chroma(原型)→ Milvus/Qdrant(生产) | 每条记忆存 PAD + emotional weight + 安全字段,检索加权排序 |
| Persona 控制 | Prompt builder + response_policy | 根据 intimacy/trust + 调节策略自动选择语气、称呼、关心程度 |
| 评估 | §7.3 的 5 个测试场景 + LLM 裁判 + 中文本土化测试集 | 持续回归 + 人工校准 |
| 合规 | §6 的各项触发器 + §7.7 海外合规 | 时长计数、分级风险响应、AI 标识、jurisdiction_policy |
PAD 向量演化的直观示例
轮次 1: 用户 "我今天好开心!" → P:(0.76, 0.48, 0.35) 情绪: joy
轮次 2: 用户 "但工作上有个大麻烦" → P:(0.10, 0.35, 0.10) 情绪: neutral++
轮次 3: 用户 "老板把责任全推给我了" → P:(-0.30, 0.50, 0.22) 情绪: anger
轮次 4: (衰减中,无新事件) → P:(-0.08, 0.25, 0.20) 情绪: moving toward baseline
轮次 5: (继续衰减) → P:( 0.05, 0.10, 0.18) 情绪: approaching baseline
九、引用列表
学术论文
- Kuppens, P., Oravecz, Z., & Tuerlinckx, F. (2010). Feelings change: Accounting for individual differences in the temporal dynamics of affect. Journal of Personality and Social Psychology, 99(6), 1042--1060.
- Mehrabian, A. (1996). Pleasure-arousal-dominance: A general framework for describing and measuring individual differences in Temperament. Current Psychology, 14(4), 261--292.
- Mehrabian, A. (1996a). Analysis of the Big-five personality factors in terms of the PAD temperament model. Journal of Personality, 67(1).
- Lobozov, S. (2026). MATE: A Deterministic Affective Middleware for LLM-Based Companions with Emergent Character and Persistent Internal State. v8.0. Zenodo: records/20400530.(注意:此前引用的 arXiv:2604.07729 非 MATE 论文,MATE 的 arXiv 编号待确认)
- Xi, R. & Wang, X. (2025). Livia: An Emotion-Aware AR Companion Powered by Modular AI Agents and Progressive Memory Compression. AIVR 2025. arXiv: 2509.05298.
- Zhou, L., Gao, J., Li, D., & Shum, H.-Y. (2020). The Design and Implementation of XiaoIce, an Empathetic Social Chatbot. Computational Linguistics , 46(1), 53--93. arXiv: 1812.08989.
- Liang et al. (2024). Learning Chain for Clause Awareness: Triplex-Contrastive Learning for Emotion Recognition in Conversations. SSRN: 4963553.
- Becker-Asano, C. (2008). WASABI: Affect Simulation for Agents with Believable Interactivity. PhD Thesis, Bielefeld University.
- Liu et al. (2023). OPO-FCM: A Computational Affection Based OCC-PAD-OCEAN Federation Cognitive Modeling Approach. IEEE TCSS, 10(4), 1813.
- Tan et al. (2026). Detecting Emotional Dynamic Trajectories: An Evaluation Framework for Emotional Support in Language Models. AAAI 2026 . arXiv: 2511.09003.
- Hipson, W. & Mohammad, S. (2022). Utterance Emotion Dynamics (UED) framework. LREC 2022.
- Yuan et al. (2024). Human--Chatbot Emotional Interaction Status Scale: Development and Validation. Frontiers in Psychology.
- MERRY : Semantically Decoupled Evaluation of Emotional and Role Consistencies. (2026). arXiv: 2602.21941.
开源模型
- SamLowe/roberta-base-go_emotions --- HuggingFace: sam-lowe/roberta-base-go_emotions
- j-hartmann/emotion-english-distilroberta-base --- HuggingFace: j-hartmann/emotion-english-distilroberta-base
- Erlangshen-RoBERTa-330M-Sentiment --- HuggingFace, IDEA-CCNL
- CharacterGLM-6B --- GitHub: thu-coai/CharacterGLM-6B。⚠️ 仅限学术研究,不可商用
- Senta / SKEP --- GitHub: baidu/Senta
产品 / 平台
- Hume AI --- EVI 语音情感 API 文档: dev.hume.ai
- Inworld AI --- Voice Profiling 文档: docs.inworld.ai
- MiniMax --- Speech-02 技术报告: minimax-ai.github.io
- 字节跳动 --- Seed-ASR S2S: seed.bytedance.com
监管
- 国家互联网信息办公室. (2026-04-10). 《人工智能拟人化互动服务管理暂行办法》. 2026-07-15 施行. cac.gov.cn
- 国家互联网信息办公室等七部门. (2023-08). 《生成式人工智能服务管理暂行办法》.
- European Commission. (2024). EU AI Act (Regulation 2024/1689). Prohibitions on emotion recognition systems in workplace and education.