AI Companion 情感层技术调研报告

目录


一、情感识别层

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,包含两个算法:

  1. Temporal Binary Compression (TBC):按时间远近,对较早记忆进行二值化压缩
  2. 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

九、引用列表

学术论文

  1. 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.
  2. Mehrabian, A. (1996). Pleasure-arousal-dominance: A general framework for describing and measuring individual differences in Temperament. Current Psychology, 14(4), 261--292.
  3. Mehrabian, A. (1996a). Analysis of the Big-five personality factors in terms of the PAD temperament model. Journal of Personality, 67(1).
  4. 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 编号待确认)
  5. 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.
  6. 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.
  7. Liang et al. (2024). Learning Chain for Clause Awareness: Triplex-Contrastive Learning for Emotion Recognition in Conversations. SSRN: 4963553.
  8. Becker-Asano, C. (2008). WASABI: Affect Simulation for Agents with Believable Interactivity. PhD Thesis, Bielefeld University.
  9. Liu et al. (2023). OPO-FCM: A Computational Affection Based OCC-PAD-OCEAN Federation Cognitive Modeling Approach. IEEE TCSS, 10(4), 1813.
  10. Tan et al. (2026). Detecting Emotional Dynamic Trajectories: An Evaluation Framework for Emotional Support in Language Models. AAAI 2026 . arXiv: 2511.09003.
  11. Hipson, W. & Mohammad, S. (2022). Utterance Emotion Dynamics (UED) framework. LREC 2022.
  12. Yuan et al. (2024). Human--Chatbot Emotional Interaction Status Scale: Development and Validation. Frontiers in Psychology.
  13. MERRY : Semantically Decoupled Evaluation of Emotional and Role Consistencies. (2026). arXiv: 2602.21941.

开源模型

  1. SamLowe/roberta-base-go_emotions --- HuggingFace: sam-lowe/roberta-base-go_emotions
  2. j-hartmann/emotion-english-distilroberta-base --- HuggingFace: j-hartmann/emotion-english-distilroberta-base
  3. Erlangshen-RoBERTa-330M-Sentiment --- HuggingFace, IDEA-CCNL
  4. CharacterGLM-6B --- GitHub: thu-coai/CharacterGLM-6B。⚠️ 仅限学术研究,不可商用
  5. Senta / SKEP --- GitHub: baidu/Senta

产品 / 平台

  1. Hume AI --- EVI 语音情感 API 文档: dev.hume.ai
  2. Inworld AI --- Voice Profiling 文档: docs.inworld.ai
  3. MiniMax --- Speech-02 技术报告: minimax-ai.github.io
  4. 字节跳动 --- Seed-ASR S2S: seed.bytedance.com

监管

  1. 国家互联网信息办公室. (2026-04-10). 《人工智能拟人化互动服务管理暂行办法》. 2026-07-15 施行. cac.gov.cn
  2. 国家互联网信息办公室等七部门. (2023-08). 《生成式人工智能服务管理暂行办法》.
  3. European Commission. (2024). EU AI Act (Regulation 2024/1689). Prohibitions on emotion recognition systems in workplace and education.