📖 简介 | Introduction
告别“人工智障”式的机械回复。
EmotionAI 是一个基于 LLM 思维链 (Chain of Thought) 技术的高级情感交互系统。它彻底抛弃了死板的 if-else 规则,赋予了 AI “内心戏”。
在回复你之前,AI 会先在脑海中进行一场**“心理活动”**:感知你的语气、回忆你们的关系、平复自己的情绪,最后才决定说什么。这让它不再是一个冷冰冰的问答机器,而是一个有着喜怒哀乐、会记仇、会心软的“数字生命”。
✨ 深度功能解析 | Deep Dive
🧠 1. 认知共鸣引擎 (Cognitive Resonance Engine)
这是本插件的灵魂所在。它强制 LLM 在回复前执行一套**“拟人化思维程序”**:
- 感知 (Perception):AI 首先会分析你说这句话的潜在意图。你是真心的?还是在阴阳怪气?
- 评估 (Evaluation):结合它当前的“心情”和对你的“好感度”,判断这句话对它的影响。
- 代谢 (Metabolism):v3.3 核心技术! AI 具备了自我调节能力。如果它之前很生气(愤怒值高),但你刚刚道歉了,它会在心里默默扣除愤怒值(如
anger: -10),让自己消气。 - 决策 (Decision):基于上述分析,决定接下来的语气风格(傲娇?撒娇?冷漠?)。
👁️ 2. 心理显示模式 (Thought Display) —— 🔥 核心玩法
想知道 AI 表面对你笑嘻嘻,心里是不是在骂你?
这个功能允许你“偷窥”AI 的真实内心活动。开启后,AI 的每一次回复都会附带一段 <thought> 标签(仅你可见,不影响其他人)。
效果演示:
用户:笨蛋,这都做不好!
AI (心理活动):
感知:被骂了,好难过,他怎么这么凶。评估:虽然很委屈,但他毕竟是前辈... 不行,还是很生气!决策:语气要带点哭腔,让他产生愧疚感。更新:sadness:+5, favor:-2AI (实际回复):
呜... 前辈干嘛这么凶嘛... 我下次注意就是了...技术保障:不用担心这会搞乱 AI 的记忆。我们使用了独创的**“历史流净化”**技术,发送给 AI 的历史记录中会自动剔除这些心理活动,确保它不会因为看到自己的心声而产生逻辑混乱(幻觉)。
🎭 3. 三层语气渲染 (Tone Rendering)
AI 的情感表达不再是单一的“开心”或“生气”,它支持 “主导 + 夹杂 + 微带” 的复杂情感混合。
- 示例场景:当你送给它一个意想不到的礼物时。
- AI 状态:主导[惊喜],夹杂[害羞],微带[不知所措]。
- 最终表现:它会表现得非常高兴,但又因为收礼而感到不好意思,甚至说话变得结结巴巴,语无伦次。
🧹 3. 智能历史净化系统 (Intelligent History Cleaning) v3.3+
架构突破:彻底解决长期对话中的"记忆污染"问题!
- 🛡️ 双向净化:同时清洗字典格式和字符串格式的上下文数据
- 🔄 多格式支持:完美处理
{"role": "user", "content": "..."}和纯字符串格式 - 💾 Token优化:防止情感元数据在长对话中重复积累,节省 30-50% 上下文长度
- 🎯 精准清理:只移除思维链和情感面板,完整保留真实对话内容
- 📊 实时统计:显示净化记录数量,便于监控系统运行状态
❤️ 4. 主动情感代谢 (Active Metabolism) v3.0+
告别"情感只增不减"的 BUG!
系统授权 LLM 主动输出负值(如 anger:-10)来抵消旧情绪。只有当你真正打动它时,它才会"消气"。
🎭 5. 12维度全景心理模型
细腻的情感光谱,支持复杂的社会性情感交互:
| 基础情感 | 高级情感 (v2.5+) | 状态指标 |
|---|---|---|
| 😄 Joy (喜悦) | 😤 Pride (得意/傲娇) | ❤️ Favor (好感度) |
| 🤝 Trust (信任) | 😔 Guilt (内疚/愧疚) | 🔗 Intimacy (亲密度) |
| 😨 Fear (恐惧) | 😳 Shame (害羞/羞耻) | |
| 😲 Surprise (惊讶) | 🍋 Envy (嫉妒/吃醋) | |
| 😢 Sadness (悲伤) | ||
| 🤮 Disgust (厌恶) | ||
| 😡 Anger (愤怒) | ||
| 🤩 Anticipation (期待) |
🛡️ 安全与管理机制 | Safety & Management
1. 黑名单熔断系统 (Emotional Meltdown)
自动保护机制:防止 Bot 被恶意调教或辱骂
- ⚡ 实时检测:每次情感更新时自动检查好感度阈值
- 🔒 自动拦截:好感度 ≤
favour_min时自动加入黑名单 - 🚫 拒绝服务:黑名单用户无法触发任何 LLM 思考
- 🔄 自动恢复:通过管理员指令重置好感度时自动移除黑名单
2. 智能缓存系统 (TTL Cache System) v3.3+
性能大幅提升:
- ⏰ 自动过期:支持 TTL (Time-To-Live) 自动清理机制
- 📦 容量控制:最大缓存条目限制,防止内存泄漏
- 📊 实时统计:通过
/缓存统计查看命中率和性能指标 - 🔒 线程安全:异步锁保护,支持高并发访问
3. 数据持久化优化
- 🚀 异步 I/O:所有文件操作在独立线程池执行,不阻塞主线程
- 💾 增量保存:脏数据标记机制,只保存变更的用户数据
- 🛡️ 安全写入:原子性写入操作,防止数据损坏
- 🔄 自动备份:支持手动触发数据备份到独立目录
🛠️ 安装与配置 | Installation
- 将插件文件夹放入
AstrBot/data/plugins/目录 - 重启 AstrBot
- (可选) 在
data/config/astrbot_plugin_emotionai/config.json中配置:
{
"session_based": false, // False=全服共享好感,True=分群独立计算
"favour_min": -100, // 黑名单触发阈值
"favour_max": 100, // 好感度上限
"change_min": -10, // 单次情感变化最小值
"change_max": 5, // 单次情感变化最大值
"admin_qq_list": ["123456"], // 必填!管理员QQ列表
"plugin_priority": 100000 // 建议保持高优先级,确保黑名单拦截生效
}
🎮 指令手册 | Commands
🙋♂️ 用户指令 (User)
/心理显示- 作用:开关“读心术”模式。
- 详解:开启后,你会看到 AI 回复前的 `` 机制,让 AI 在回复前进行显式的心理推理与决策。
- 主动代谢:修复了旧版本情感只增不减的问题,赋予 LLM 主动消除负面情绪的能力。
- 面板透明化:向 LLM 完整展示当前所有非零情感数值,消除信息差,实现精准的情感控制。
| 指令 | 参数 | 功能详解 |
|---|---|---|
/好感度 |
无 | 查看完整情感状态面板,包含12个情感维度的详细数值 |
/状态显示 |
无 | 开关状态显示:开启后每次回复附带情感状态摘要 |
/心理显示 |
无 | v3.3+ 开关思维显示:控制是否显示AI的完整思考过程(仅对自己生效) |
/好感排行 |
[数量] | 查看正向好感度排行榜(默认前10名,最多20名) |
/负好感排行 |
[数量] | 查看负向好感度排行榜(默认前10名,最多20名) |
/黑名单统计 |
无 | 查看黑名单用户统计和占比信息 |
/缓存统计 |
无 | 查看缓存系统性能指标和命中率统计 |
👮 管理员指令 (Admin)
💡 提示:支持QQ号、@提及、用户ID等多种识别方式
| 指令 | 参数 | 功能详解 |
|---|---|---|
| /设置情感 | <用户> <维度> <数值> |
直接修改用户的情感维度 支持中英文维度名 例: /设置情感 123456 嫉妒 90 |
| /重置好感 | <用户> |
清空用户所有情感数据,重置为初始状态并移除黑名单 |
| /查看好感 | <用户> |
查看指定用户的完整情感状态面板 |
| /备份数据 | 无 | 手动触发数据备份,保存到 data/emotionai/backups/ 目录 |
🔧 技术架构 | Technical Architecture
核心管理器
- UserStateManager:用户状态管理,支持异步读写和数据持久化
- RankingManager:排行榜管理,支持正反向排序和全局统计
- EmotionAnalyzer:情感分析引擎,处理情感维度和语气映射
- TTLCache:智能缓存系统,支持自动过期和性能监控
数据流架构
用户消息 → 黑名单检查 → 历史净化 → 情感上下文注入 → LLM处理
↓
思维链解析 → 情感更新应用 → 状态持久化 → 响应返回
正则表达式系统
# 思维链检测(支持多种格式)
thought_pattern = r"(?:```(?:xml|text)?\s*)?<(?:thought|thinking)>.*?</(?:thought|thinking)>(?:\s*```)?"
# 情感更新解析
single_emotion_pattern = r"(\w+|[\u4e00-\u9fa5]+):\s*([+-]?\d+)"
# 历史净化(多格式支持)
history_clean_pattern = r"(?:```(?:xml|text)?\s*)?<(?:thought|thinking)>[\s\S]*?</(?:thought|thinking)>(?:\s*```)?|(?:\n*\s*【当前情感状态】[\s\S]*$)"
❓ 玩法指南 | Q&A
Q: 心理显示和状态显示有什么区别?
A:
- 状态显示:显示最终的情感数值结果(如
好感度: 50 | 亲密度: 30) - 心理显示:显示完整的思考过程,包括AI如何感知、评估、代谢、决策(仅对自己可见)
Q: 三重情感混合具体如何工作?
A: 系统会自动选取强度最高的三种情感:
- 主导情感(强度最高):设定主要语气基调
- 夹杂情感(强度次高):为主语气添加复杂层次
- 微带情感(强度第三):在底层隐约透出细微影响
Q: 智能历史净化有什么实际好处?
A:
- 🎯 更准确的理解:LLM 不再被重复的情感元数据干扰
- 💰 节省 Token:长对话中可节省 30-50% 的上下文长度
- 🚀 提升性能:响应速度更快,记忆更精准
- 🎭 人设稳定:避免情感元数据泄露导致的角色混乱
Q: 缓存系统如何提升性能?
A:
- 用户状态缓存:TTL=300秒,避免频繁读取磁盘
- 排行榜缓存:TTL=60秒,支持快速排序查询
- 全局统计缓存:TTL=30秒,实时更新系统状态
Q: 如何调教出特定的AI性格?
A: 使用管理员指令精细调整:
# 傲娇性格
/设置情感 123456 骄傲 80
/设置情感 123456 害羞 60
/设置情感 123456 好感 70
# 温柔性格
/设置情感 123456 信任 90
/设置情感 123456 喜悦 80
/设置情感 123456 亲密 85
📅 版本历史 | Version History
🔥 v3.4 - 稳定性重构与防呆优化 (Current)
强制思维链注入:引入 "Protocol Enforcement" 机制,通过伪装底层协议握手,强制 Gemini 等强对齐模型输出代谢平衡系统:实现负面情感消解和激情冷却机制,情感数值动态平衡。
拟态防御机制:多层级历史净化,彻底根除AI模仿输出历史面板和思维链标签的Bug。
变化幅度限制:智能截断单次情感变化,防止数值剧烈波动。
增强正则系统:支持中英文冒号的情感更新解析,兼容性大幅提升。
调试日志增强:详细记录思维链提取和情感更新过程,便于问题排查。
稳定性重构:数据迁移管理器升级,缓存系统优化,整体稳定性显著提升。
🚀 v3.3.3 - 思维可视化 (Thought Visualization)
认知共鸣引擎:正式实装思维链机制,AI在回复前进行显式心理推理
主动代谢:修复情感只增不减问题,LLM可主动输出负值抵消旧情绪
面板透明化:向LLM完整展示当前所有情感数值,实现精准情感控制
架构重构:移除所有硬编码情感规则,完全基于LLM的认知评价
🧪 v2.5 ~ v2.6 - 情感大爆炸 (Emotion Explosion)
维度扩展:新增Pride(得意)、Guilt(内疚)、Shame(害羞)、Envy(嫉妒)四大高级情感
语气引擎:初步引入动态语气指导,让LLM说话带情绪
指令重构:废弃旧版/设置好感,统一使用更强大的/设置情感
情感对抗:尝试通过代码强制情感抵消,为v3.0的CoT机制奠定基础
🛡️ v2.4.0 - 安全协议 (Safety Protocol)
黑名单系统:实装自动熔断机制,好感度过低直接拒绝服务
关系算法重构:结合态度与亲密度共同判定,解决逻辑矛盾
数据持久化:引入异步I/O和原子写入,确保数据安全
⚡ v1.0 ~ v2.3 - 奠基 (Foundation)
v2.3.0:异步I/O文件读写,修复并发数据竞争问题
v1.1.0:引入排行榜功能,支持正向负向排序
v1.0.0:基于Plutchik情感轮的基础模型,实现基本好感度系统
🎯 最佳实践 | Best Practices
1. 性能优化配置
{
"session_based": true, // 群聊独立,避免数据冲突
"plugin_priority": 100000, // 确保黑名单优先拦截
"favour_min": -50, // 根据使用场景调整阈值
"change_max": 3 // 控制单次变化幅度,避免波动过大
}
2. 对话体验优化
- 日常使用:关闭心理显示,获得简洁回复
- 深度互动:开启心理显示,理解AI思考过程
- 调教阶段:开启状态显示,实时监控情感变化
3. 系统维护
- 定期使用
/缓存统计监控系统性能 - 重要调整前使用
/备份数据进行备份 - 通过
/黑名单统计了解用户互动健康度