emotion-state

🎭 AI 对话情感记忆引擎

🥥25总安装量 6评分人数 6
100% 的用户推荐

基于 OpenClaw 框架的情感状态追踪 Hook,通过 OpenAI API 实现对话情感分析,为 AI 代理提供跨会话的情绪上下文感知能力。

A

基本安全,请在特定环境下使用

  • 来自社区或个人来源,建议先隔离验证
  • ✅ 零第三方依赖,仅使用 Node.js 内置模块,无供应链攻击面
  • ✅ 无 eval/exec/system/subprocess 等危险函数,无代码注入风险
  • ✅ 数据本地存储不上云,原始对话文本不落盘,隐私保护完善
  • ⚠️ 需配置 OpenAI API Key 或自定义分类器,存在外部网络依赖
  • ⚠️ 会读取用户对话内容发送至外部 API 进行情感分析

使用说明

核心用法

Emotion State 是一个 OpenClaw 工作区 Hook,用于为 AI 对话系统注入情感感知能力。安装后,它会自动分析用户与代理的对话内容,提取自然语言形式的情感标签(如 "frustrated about slow response"、"excited about new feature"),并将这些状态以结构化格式注入系统提示词。该 Hook 采用半衰期衰减算法计算情感趋势,支持跨会话持久化存储,最多保留 100 条历史记录,默认展示最近 3 条用户情感和 2 条代理情感条目。

配置过程需将 Hook 文件复制到工作区 hooks// 目录,通过 openclaw hooks enable 启用,并在 ~/.openclaw/openclaw.json 中配置环境变量。核心配置包括:OpenAI API 密钥、情感分类模型(默认 gpt-4o-mini)、置信度阈值(0.35)、历史窗口大小及半衰期时间(12 小时)。支持自定义分类器 URL 以实现完全离线部署。

显著优点

架构设计优秀:纯 Node.js 内置模块实现,零第三方依赖,彻底规避 npm 供应链攻击风险。采用文件锁 + 原子写入机制保障并发安全,SHA-256 哈希去重避免冗余存储。

隐私保护到位:原始对话文本不落盘,仅存储模型推断的情感标签及原因摘要;数据严格隔离于 ~/.openclaw/agents/<agentId>/ 目录下,按 userKey 分片存储,支持多租户场景。

容错机制完善:分类服务故障时自动降级为 "neutral/low/unsure" 默认值,5 秒超时设置防止阻塞主流程,JSON 解析异常均有 try-catch 保护。

配置灵活性高:除 OpenAI 外,可对接任意兼容 OpenAI 接口格式的本地或私有分类器服务,满足合规敏感场景的完全离线需求。

潜在缺点与局限性

外部依赖刚性:必须配置有效 API Key 或自建分类器才能工作,开箱即用性受限;默认依赖 OpenAI 服务,存在网络延迟(典型 500-2000ms)和成本开销。

情感推断黑盒:基于 LLM 的情感分类缺乏可解释性,同一对话可能因模型版本、温度参数产生不一致结果;0.35 的默认置信度阈值可能过滤掉细微情感变化。

存储容量瓶颈:单代理默认最多 50 用户 × 100 条记录,高并发场景下需手动调优;本地 JSON 文件存储在超大规模部署时可能成为 I/O 瓶颈。

时区与同步问题:情感时间戳依赖配置的 EMOTION_TIMEZONE,分布式部署时若节点时区不一致会导致趋势计算偏差;无内置集群状态同步机制。

适合的目标群体

  • 对话式 AI 产品经理:需要为客服机器人、虚拟伴侣等产品增加情感记忆能力
  • 多轮对话系统开发者:构建需要长期用户关系维护的代理应用(如心理健康助手、教育辅导 AI)
  • OpenClaw 框架用户:已采用该框架的开发者可零成本集成情感层
  • 隐私合规要求中等的企业:接受本地存储 + 可选外部 API 调用模式,但需评估 OpenAI 数据处理协议

使用风险

性能风险:每次对话触发同步 HTTP 请求,高 QPS 场景需部署本地分类器或增加缓存层;情感趋势计算涉及历史数据遍历,历史记录膨胀时延迟线性增长。

成本风险:按 token 计费的分类调用在大流量场景下成本显著,建议设置 EMOTION_CONFIDENCE_MIN 过滤低价值请求,或采用批量异步处理架构。

模型漂移风险:OpenAI 模型更新可能导致情感标签格式变化,破坏下游解析逻辑;建议锁定模型版本或实施输出模式校验。

数据残留风险:卸载 Hook 后历史情感文件不会自动清理,需手动删除 ~/.openclaw/agents// 下相关目录以符合 GDPR 等删除权要求。

emotion-state 内容

文件夹图标hooks文件夹
文件夹图标emotion-state文件夹
手动下载zip · 8.2 kB
handler.tstext/plain
请选择文件