dsh-her-memory:DSH 跨会话长期记忆与心情状态

前言

DeepSeek Harness(DSH)的会话默认是一次性的:关掉再开,模型不会保留上一轮交代过的背景,你往往要重复说明偏好、项目上下文和约定。社区里常见做法是外挂向量库、单独跑记忆服务,或在每轮提示里硬塞摘要——要么多依赖、要么多占 token,要么和宿主耦合较深。

下面介绍维护者 KZADEA 发布的 dsh-her-memory(分类:记忆)。它把「记住用户、以及对话里发生过什么」交给对话中的模型自行判断:插件提供六个读写磁盘明文记忆的工具,插件本身不调模型,按 README 说明为零额外 token;同时维护可预测的心情、关系、精力状态,并带输入框状态条与设置页可视化面板。存储为纯 Markdown 与 JSON,零 npm 依赖,不 import DSH 官方 @deepseek-ai/* 包。

这是什么

dsh-her-memory 是 DSH 桌面 profile 下的 Cordis 插件(包名 dsh-her-memory,当前 package.json 版本 1.5.6,MIT 许可证,要求 Node >=20)。一句话定位:跨会话全局长期记忆 + 动态心情状态,工作区可选隔离。

DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

记忆落在哪、怎么隔离

默认根目录为 ~/.dsh/memory/,按工作区分库。结构如下(摘自 README):

~/.dsh/memory/
  ├─ _shared/      ← 默认所有工作区共用
  │    ├─ core.md           长期核心记忆(每轮注入)
  │    ├─ inbox.md          零碎待整理(每轮注入)
  │    ├─ topics/*.md       专题记忆(只注入文件名清单)
  │    ├─ log/<日期>.md     当天日记(只注入文件名清单)
  │    └─ state.json        心情 / 关系 / 精力
  └─ _sandbox/     ← 被隔离的工作区专用(结构同上)

默认全局共用一份 _shared,换工作区记忆不断层。若某个工作区需要独立记忆库(例如试玩区不应污染长期记忆),在 cordis.patch.yml 的配置里填写绝对路径 sandboxCwd:

config:
  sandboxCwd: "D:\\sandbox-zone"

识别依据是会话的工作目录(cwd),路径比较不分大小写、忽略结尾斜杠。工具全局注册,但能从 exec.agent 读到调用会话,从而选库——同一时刻不同工作区可各看各的记忆。

全是明文文件:可随时打开查看、手工修改,或整目录删除;无数据库、无向量库。

六个工具

记忆的写入与整理由对话里的模型调用工具完成,插件不替模型做推理。

工具 作用
remember 记一件事;默认进收件箱;可指定 topic 进专题、section 进核心记忆
recall 按关键词搜索全部记忆,返回命中行
memory_list 列出记忆库文件、大小与当前状态
forget 删除含关键词的行(默认只动收件箱,scope:"all" 才动核心)
how_i_feel 查看当前心情、关系进度、精力
feel 为当前时刻留一句话(最多 5 条,会出现在心情摘要里)

注入、人设与界面

每轮注入

启用后(首次需完全重启 DSH):

  • 系统提示中会多一段「你有长期记忆」的固定说明;
  • 每轮会插一条独立注入消息,前缀为 【her-memory|系统注入,非用户消息】,用户自己发送的内容不会被追加修改;
  • 人设走常驻系统提示段(systemPrompt.section),重启后对已在跑的会话也生效,无需新开会话。

可通过 memoryBudget(默认 1800 字符)、moodBudget(默认 260)、injectViaSystemPrompt 控制注入量;设为 0 则对应部分停止注入。

人设文件

插件默认自带「鲸鱼女仆」人设(外貌、性格、日常行为等,详见仓库内 人设文件.txt),默认称呼为「主人」(配置 userTitle 留空时同样为「主人」)。

改人设不必改 YAML:正文在独立文件 人设文件.txt:

  • 插件目录内:随包默认,解压即可见;
  • 记忆目录内(默认 ~/.dsh/memory/人设文件.txt):优先生效,升级插件不覆盖,推荐改这份;首次运行会从包内复制。

规则:任意换行与条目,无需管缩进;<!-- --> 注释不会进人设;正文清空则关闭人设注入;删文件再重启则恢复默认。改完需完全关闭再打开 DSH 才生效。

状态条与设置面板

客户端 client.js 占用两个插槽:

  1. 输入框上方状态条(conversation.input.dock):展示心情、关系、精力进度、回合数与记忆条数;收件箱满 5 条会提示「该整理了」。可双击「心情」「关系」触发特效;双击「精力」随机回血 +1~50 并显示 +NN。
  2. 设置页「记忆与心情」(settings.section):三指标、统计格、专题标签、最近条目、心情便签、磁盘路径;隔离工作区单独卡片。

数据来自 Host 注册的 GET /her-memory/snapshot;状态条约 4 秒、面板约 10 秒刷新一次。配色优先使用 --dsw-* 主题变量。

心情状态规则(摘要)

非随机数,README 给出的规则包括:

  • 用户每说一句,心情 +1~3(话越长涨越多);
  • 间隔 ≤10 分钟连续聊,关系与心情涨得更快;聊得越密精力掉得越快(10 分钟内接着说 -2,否则 -1);
  • 精力闲置恢复:离开 30 分钟起每 30 分钟 +5;超过 8 小时直接回满;
  • 冷落超过 12 小时后,心情按每 moodDecayHours(默认 6)小时回落 1 点,最低 statFloor(默认 20);
  • 离开较久再开新对话,三数值可按 statJitter / statJitterCooldownMinutes 做轻微随机浮动。

也可直接编辑 state.json,或由模型调用 feel。

安装与卸载

README 给出的安装方式为本地 link(示例路径需换成你本机插件目录):

dsh plugin --profile desktop add link:D:\dsh-her-memory

安装后重启 DSH。卸载:

dsh plugin --profile desktop remove dsh-her-memory

再删除 ~/.dsh/memory/ 可清除全部记忆与人设文件,README 称无服务、端口等残留。

典型用法

  1. 按上文命令 link 插件并重启 DSH。
  2. 在对话中让模型使用 remember 记下偏好或项目事实;零碎内容先进 inbox.md,整理后可写入 core.md 或 topics/。
  3. 需要回顾时用 recall 搜关键词,或用 memory_list 看库内概况。
  4. 误记可用 forget 删行(慎用 scope:"all" 以免动到核心记忆)。
  5. 在设置页查看路径与统计,或编辑 ~/.dsh/memory/人设文件.txt 调整陪伴人设;费 token 时将 memoryBudget 调小或关闭 injectViaSystemPrompt。

配置要点

在 cordis.patch.yml 的 config 段修改,常用键如下(默认值见 README):

键 说明
memoryRoot 记忆目录,默认 ~/.dsh/memory
memoryBudget / moodBudget 每轮注入字符上限,0 为不注入
injectViaSystemPrompt 是否注入记忆(关则保留心情与工具)
sandboxCwd 隔离工作区绝对路径,空为全局共用
statFloor 心情/关系/精力下限,默认 20
personaFile / personaFileAutoWrite 人设文件名与首次自动复制
userTitle 称呼,空则「主人」
injectFallback 默认 false;开启可能在注入失败时用 agent.inject() 模拟用户消息,README 警告可能引发多轮自循环、额外 token,除非清楚代价否则保持关闭

适用场景与注意

适合:希望在 DSH 桌面端用明文、可审计的方式做跨会话记忆;需要轻量「陪伴感」状态(心情/关系/精力)但不引入向量库或官方包依赖的开发者。

注意:

  • 插件以当前 DSH 进程权限读写 memoryRoot;安装前请自行审阅源码与 MIT 许可证,确认路径与隔离策略符合你的安全预期。
  • 与 token-saver 同装时,两条状态条在同一列且宽度互相影响;布局异常时可完全重启 DSH,或逐个禁用插件排查。未装 token-saver 时本插件按自身宽度显示。
  • README 标明全量容错:磁盘或 API 失败会降级,最坏为记忆功能静默失效,不应导致 DSH 加载失败。

仓库 README 称主测试台 93 项等人设与客户端相关断言在发包前跑通;具体行为以你安装的版本为准。

结尾

dsh-her-memory 用六个工具、纯 Markdown/JSON 和可选工作区隔离,把 DSH 跨会话记忆和心情状态收进一个零依赖插件;模型决定是否读写记忆,插件负责落盘与注入摘要,并附带状态条与设置页便于查看与调参。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜