核心用法
Emotion State 是一个面向 OpenClaw 网关的 workspace hook,用于在系统提示词中动态注入用户与代理的情绪状态。其核心机制包括:
1. 情绪提取:调用外部分类器或 LLM(默认 gpt-4o-mini)将对话双方情绪归纳为简短自然语言描述
2. 状态持久化:按用户维度存储情绪历史于 ~/.openclaw/agents/<agentId>/agent/emotion-state.json,默认保留 100 条记录
3. 提示词注入:通过半衰期衰减算法(默认 12 小时)计算情绪趋势,将最新条目与衰减趋势线注入 system prompt
显著优点
- 跨会话记忆:突破单次对话上下文限制,实现长期情绪追踪
- 轻量化集成:仅复制 hook 目录并启用配置,无需修改核心代码
- 可配置性强:支持自定义模型端点、置信度阈值、历史窗口、时区等 10+ 参数
- 隐私友好:不存储原始用户文本,仅保留模型推断的情绪标签与原因
潜在局限与风险
| 维度 | 说明 |
|------|------|
| 依赖外部服务 | 需配置 OpenAI API 或自建分类器,存在服务可用性与成本风险 |
| 情绪推断偏差 | LLM 情绪判断可能受提示词偏见影响,产生误读或刻板印象 |
| 数据隔离 | 情绪数据按 agentId 隔离,多代理场景需额外同步机制 |
| 衰减参数敏感 | 半衰期与趋势窗口设置不当可能导致情绪权重失衡 |
适合人群
- 构建情感化对话产品的开发者
- 需要长期用户关系管理的客服/陪伴类 Agent
- 研究人机情感交互的 NLP 工程师
常规风险
- API 密钥泄露风险:需妥善保管
OPENAI_API_KEY - 情绪数据滥用:长期情绪档案可能暴露用户心理特征,需合规处理
- 提示词注入攻击:若
EMOTION_CLASSIFIER_URL指向不可信端点,存在中间人篡改风险