前言¶
在 DSH(DeepSeek Harness)里给对话代理加「状态」,常见做法是手写 system prompt 或外挂简单记忆列表:情绪靠文案描述,记忆靠关键词匹配,很难在同一套机制里随对话更新、又能在每轮稳定注入。维护者 xsy822 的 dsh-emotion-memory(社区目录分类:记忆)把 PAD 三维情绪场、轻量模型每轮评估、带情感指纹的记忆检索与再巩固 和 每轮一段注入文本 收进一个插件,数据落在本地 JSON,可在设置页或配置文件中调整。
下面按定位、能力、安装配置、数据与限制说明,事实以 GitHub 仓库 README 与 package 元数据为准。
这是什么¶
dsh-emotion-memory 是给 DSH 对话代理用的情绪 + 记忆插件:一个 PAD 情绪场、一套写入时附带情感指纹的记忆、以及每轮注入的一段话。README 称其为「小世炎情绪记忆 0.1」;npm 包当前版本为 0.1.3(engines.dsh 要求 >=0.2.1-rc.2),许可 MIT。
- 目录页:https://www.skillhub.cn/plugins/xsy822/dsh-emotion-memory
- 源码与文档:https://github.com/xsy822/dsh-emotion-memory
DSH 生态强调「一切皆插件」;SkillHub 等社区目录独立于 DeepSeek / 幻方,本文仅介绍该插件本身的行为与用法。
核心功能¶
情绪:PAD 场与 14 通道¶
情绪用 Pleasure / Arousal / Dominance 三维连续场表示,由 14 个离散通道读出(锚点取自中科院 PAD 量表)。机制包含基线、弛豫与端点收缩,避免数值长期贴在满格。
评估与派生情绪¶
每轮对话结束后调用一次轻量模型,只输出评估变量(合意性、唤醒、掌控、意外、指向、关系权力等);坐标由锚点计算,换锚点不必重训。在此基础上合成派生情绪,例如心疼、吃醋、沮丧、委屈、感动、愧疚、释然、思念、烦躁等,由「通道强度 + 评估条件」决定。
精力¶
独立一维,按时间惰性结算:醒着下降、跨夜回复、每轮扣除,直接影响输出话多话少。
记忆:情感指纹与再巩固¶
- 写入记忆时附带当时的 情感指纹(PAD 与相关词)。
- 被检索命中时会再巩固:用当前状态微调指纹(系数 0.15),保留编码时的词,另记「最近想起时的情绪」,并累计命中次数。
- 检索打分权重为:0.20×新鲜 + 0.15×重要 + 0.60×相关 + 0.05×心境一致。
- 两层遗忘:淡忘,以及长期未想起且不够重要的条目进入「已遗忘」。
注入¶
每轮向代理注入一段文本:先给出情绪底色;若命中旧记忆,再补一句「想起一件事」。
安装与启用¶
在已安装 DSH 且满足版本要求的前提下,使用 README 给出的命令安装:
dsh plugin add dsh-emotion-memory
也可以在 DSH 设置 → 插件 中填写包名 dsh-emotion-memory。
安装完成后,在 设置 → 情绪记忆 中会出现四个页签:心情 / 记忆 / 记录 / 设置。插件在 当前 DSH 进程权限 下运行,安装前建议浏览仓库源码并确认 MIT 许可是否符合你的环境策略。
配置要点¶
参数可在设置页修改,或直接编辑 ~/.dsh/emotion-memory/config.json。下表为 README 列出的主要项(默认值以 README 为准):
| 参数 | 默认 | 说明 |
|---|---|---|
| 注入 / 记忆注入 | 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 plugin add dsh-emotion-memory,在设置里确认 注入 与 记忆注入 为开启(默认即为 true)。 - 打开 设置 → 情绪记忆,在 心情 页观察 PAD 与派生情绪随对话变化;在 记忆 页查看条目与指纹。
- 若只希望部分会话启用,将 绑定模式 改为「指定」,在 绑定会话 中勾选目标会话。
- 需要迁移或备份时,在 设置 页使用导出 / 导入。
README 未提供独立 CLI 演示脚本;行为主要体现在多轮对话中的自动评估、记忆写入与每轮注入。
数据文件¶
| 路径 | 内容 |
|---|---|
~/.dsh/emotion-memory/state.json |
情绪状态与记录 |
~/.dsh/emotion-memory/config.json |
配置 |
~/.dsh/fish-memory/session-<会话>.json |
记忆条目(若曾使用旧版 fish-memory,条目会被直接读取) |
更完整的参数推导与设计说明见仓库内 emotion-memory-technical-report.md(Markdown / Word 两版)。
适用场景与注意¶
适合:希望在 DSH 里为代理维持连续情绪状态、让记忆与当时情感绑定,并在每轮用短文本注入影响回复风格与「想起往事」行为的开发者。
务必知晓的限制(README「已知限制」):
- 记忆相关性偏字面(中文二元组 + 英文整词),换说法可能漏检。
- 情绪仅依据对话内容,不读取工具失败、任务卡住等代理行动结果。
- 关系权力依赖模型自评,置信度低于 45 时强制归零,实际生效比例可能不高。
- 尚无标注集,准确性目前主要靠定性观察。
插件以当前 DSH 进程权限读写本地 JSON;生产或共享机器上请自行评估数据敏感性与备份策略。
结尾¶
dsh-emotion-memory 把 PAD 情绪动力学、每轮轻量评估、带指纹的记忆再巩固与统一注入串成一条链路,适合在 Harness 里做「有状态、能想起」的对话代理实验。进一步细节见 SkillHub 目录页 与 GitHub 仓库。