READMESource: master@f005b95f
dsh-emotion-memory
给对话代理用的情绪 + 记忆插件:一个 PAD 情绪场,一套带情感指纹的记忆,一段每轮注入的文本。
版本 0.1.0 · 需要 DSH(DeepSeek Harness)宿主
它做什么
- 情绪:三维连续场(Pleasure / Arousal / Dominance),由 14 个离散通道读出(锚点取自中科院 PAD 量表)。有基线、有弛豫、有端点收缩,不会贴死在满格。
- 评估:每轮结束调一次轻量模型,只让它给评估变量(合意性、唤醒、掌控、意外、指向、关系权力),坐标由锚点算——换锚点不用重训。
- 派生情绪:心疼、吃醋、沮丧、委屈、感动、愧疚、释然、思念、烦躁,由「通道强度 + 评估条件」合成。
- 精力:独立一维,按时间惰性结算(醒着掉、跨夜回、每轮扣),直接影响话多话少。
- 记忆:条目写入时附带情感指纹(当时的 PAD 与词);被想起时会再巩固——用当前状态微调指纹(系数 0.15),保留编码时的词、另记"最近想起时的情绪",并累计命中次数;检索按
0.20×新鲜 + 0.15×重要 + 0.60×相关 + 0.05×心境一致打分;两层遗忘(淡忘、以及把长期没想起又不重要的挪进"已遗忘")。 - 注入:每轮一段话——先底色,命中旧记忆再补一句"想起一件事"。
安装
dsh plugin add dsh-emotion-memory
或在 DSH 设置里的插件页填包名。
安装后在「设置 → 情绪记忆」里有四个页签:心情 / 记忆 / 记录 / 设置。
配置
全部在设置页改,也可以直接改 ~/.dsh/emotion-memory/config.json。主要参数:
| 参数 | 默认 | 说明 |
|---|---|---|
| 注入 / 记忆注入 | true | 两处开关 |
| 基线 P / A / D | 0.15 / −0.10 / 0.00 | 无事件时的回落目标 |
| 弛豫 P / A / D | 0.15 / 0.35 / 0.20 | 每 5 分钟一轮的回归比例 |
| 强度衰减 | 0.30 | 14 通道每轮衰减 |
| 读出阈值 | 0.12 | 进入混合的最低强度 |
| 派生阈值 | 0.35 | 派生情绪进注入的门槛 |
| 精力初值 / 每小时掉 / 睡眠回复 / 每轮扣 | 80 / 3 / 45 / 2 | 精力动力学 |
| 记忆门槛 | 0.45 | 检索分低于此不注入 |
| 一次想起几条 | 1 | 每轮最多注入的记忆条数 |
| 重复间隔分钟 | 10 | 同一条记忆的去重窗口 |
| 半衰期天 | 14 | 新鲜度衰减 |
| 遗忘天数 / 遗忘重要阈值 | 180 / 0.6 | 进入"已遗忘"的条件 |
| 绑定模式 | 全部 | 「全部」或「指定」 |
| 绑定会话 | 空 | 指定时生效,可多选;只这些会话注入、判定、写记忆 |
导出与导入
设置页最下面有「导出 / 导入」:
- 导出:一个 JSON,含配置、所有会话的状态与记录、它们的记忆条目;
- 导入:合并记忆(按 id 去重)、替换同名会话的状态、合并配置。
换机器、备份、或者把某段经历搬到另一个实例,都用这个。
数据
- 情绪状态与记录:
~/.dsh/emotion-memory/state.json - 配置:
~/.dsh/emotion-memory/config.json - 记忆条目:沿用
~/.dsh/fish-memory/session-<会话>.json(若从旧版记忆插件迁移过来,条目会直接被读到)
已知限制
- 相关性是字面的:中文二元组 + 英文整词,换说法就漏检。这是目前最明显的短板。
- 情绪只看对话:不读代理自身的行动结果(工具失败、任务卡住),所以情绪仍被对话牵着走。
- 关系权力靠模型自评:置信度低于 45 时强制归零,实际生效比例不高。
- 没有标注集:准确性目前靠定性观察,没有量化指标。
设计说明
更完整的推导、参数由来与评估,见仓库里的技术报告 emotion-memory-technical-report.md(Markdown / Word 两版)。
许可
MIT
No comments yet. Be the first to write one.