核心用法
Emotion State 是一个 OpenClaw 工作空间钩子,用于捕获、存储并注入用户与 Agent 的情绪状态。安装后,它会向系统提示中动态添加 emotion_state 块,包含:
- 当前情绪短语:由模型推断的简短自然语言描述(如"frustrated about delays")
- 历史趋势:基于半衰期衰减的 24 小时情绪走势
- 跨会话记忆:按用户 ID 持久化存储,支持多 Agent 共享上下文
工作流程
1. 用户输入触发情绪分类(支持外部分类器或 OpenAI 模型)
2. 推断结果存入 ~/.openclaw/agents/<agentId>/agent/emotion-state.json
3. 系统提示组装时,钩子注入格式化的情绪块供模型参考
显著优点
- 上下文连续性:跨对话会话保持情绪记忆,避免重复询问用户感受
- 轻量设计:仅存储模型推断的元数据,不保留原始用户文本,隐私友好
- 可配置衰减:通过半衰期(默认 12 小时)和时间窗口参数,自然淡化过时情绪
- 多 Agent 协调:支持共享其他 Agent 的情绪记录,适用于复杂多智能体系统
潜在缺点与局限性
- 分类质量依赖:默认使用
gpt-4o-mini推断情绪,准确性与提示工程相关;外部分类器 URL 为空时依赖模型自评 - 冷启动问题:新用户无历史记录时,情绪块为空或仅为占位符
- 隐私边界模糊:虽声称"不存储原始文本",但"模型推断的原因"仍可能包含敏感推断
- 调试困难:情绪注入为黑盒操作,开发者难以追踪某条具体响应对应了哪段历史情绪
适合人群
- 构建长期陪伴型、心理咨询类或高共情需求对话 Agent 的开发者
- 使用 OpenClaw 框架且需要跨会话状态管理的 Agent 团队
- 对情绪趋势可视化、用户流失预警有数据分析需求的产品
常规风险
| 风险类型 | 说明 |
|---------|------|
| 提示注入污染 | 若分类器被对抗样本操控,恶意情绪标签可能持续污染系统提示 |
| 情绪固化偏见 | 衰减机制可能不足以消除早期负面情绪的长期影响 |
| API 成本累积 | 每条用户输入触发一次情绪分类调用,高频场景成本需评估 |
| 时区配置错误 | `EMOTION_TIMEZONE` 配置不当导致衰减计算偏离用户实际作息 |