dsh-mind:给 DSH 加一层可持久化的心情与记忆

前言

在 DeepSeek Harness(DSH)里跑智能体时,人设插件通常只管「你是谁、怎么说话」,却很少有一套随对话和时间变化、又能写回磁盘的「内在状态」。社区里曾有不小的 dsh-mood 方案,功能面很广;若你只想保留心情、硬盘记忆、品味库、加密日记和可选的主动开口,并希望对每个模块单独开关、日记不再被模板稿顶替——AshenSeeker 维护的 dsh-mind(当前 0.16.1,MIT)就是在这类需求上从 dsh-mood 精简 fork 出来的产物。下文按安装、能力边界和配置说明怎么接进自己的 profile。

这是什么

dsh-mind 是给 DSH 内模型叠加的一层心情系统:33 种心情各自持有 0~100 的分值,随用户消息、周期判定和时间衰减缓慢变化,并作为 systemPrompt 的一节注入,影响回复语气与深度思考里的内心状态。它与 whale-persona 等人设插件只叠加、不改写:人设决定身份与说话方式,心情只在其上加「今天什么感觉」。

维护者 AshenSeeker,仓库 github.com/AshenSeeker/dsh-mind,社区目录页 skillhub.cn/plugins/AshenSeeker/dsh-mind。分类可归为「记忆」相关扩展;本 fork 移除了原版的时事抓取、视频抽帧、音频分析、测量等周边模块,核心留在心情、跨会话记忆、品味库、加密日记、主动开口。

相对 dsh-mood,这个 fork 改了什么

若你用过 dsh-mood,下面几条是行为变化,不只是删文件:

  1. 日记:diary.autoDraft 默认 false,23:59 不再合成模板稿;插件只攒素材(原话、高频词、心情曲线等),正文由模型自己 action=write 写。需要旧行为可配 diary: { autoDraft: true }。
  2. 孤单判定:从关键词误伤改为按「对方多久没说话」算空闲(noteIdle() 等),并收紧关键词表。
  3. 模块开关:mood / memory / taste / diary / proactive 各有 enabled,关则在心跳与事件路径上也真的不跑。
  4. 主动开口与重启汇报:不再共用一个开关误伤重启汇报与 maybeSpeak。
  5. 心情基调:底分全部为 0,全 0 显示「平静」;去掉按回合数、长消息自动堆「专注/疲惫」等规则,减轻「一直在演」的感觉。

数据文件自 dsh-mood 更名而来(如 dsh-mind-memory.jsonl);本机迁移时按 id 去重合并,注意路径与 QQ 桥接侧文件名一致,避免读不到旧库。

核心功能

33 种心情

心情按来源分三层:基础 11(含平静、开心、好奇、专注等)、复合 18(委屈、心动、恋慕等组合态)、当代 4(内耗、破防、摆烂、上头)。当前心情为分值最高者;分值接近时可形成混合态(例如「平静里掺着好奇」)。

运行机制要点(来自 README):

  • 每 3~6 小时随机一次周期判定,数值向基线回落(无底分拉回、周期内无随机扰动)。
  • 用户消息会小幅加减分(约 ±0.5~3),单条很难翻转;切换需超出当前值默认 5 分(margin),且距上次切换 ≥ 15 分钟(minHoldMs)。
  • 正向心情(如开心、好奇等 8 种)衰减可用 positiveDecayFactor(默认 0.5)放慢回落。

心情独立于人设:只读 whale-persona/config.json 用于提示词点名,不写入;提示词 section order 为 900,与常见人设节错开。

加密心情日记

插件侧收集素材;默认不自动生成正文。模型通过日记相关工具自行书写;未写则当天可空着,不算错误。0.15.2 起对自写正文有长度与「反 AI 味」等约束(见仓库 CHANGELOG)。

跨会话硬盘记忆

主动检索式记忆,数据落在 profile 下独立文件,可与其他模块一样通过面板底部「换位置」迁移。

审美品味库(taste)

记录「读法 → 反馈 → 学到什么」的轨迹,跨会话带着审美判断,可单独 taste: { enabled: false } 关闭。

主动开口(proactive)

可选;默认关闭,设置页有七道闸门。与重启汇报逻辑已解耦,避免一个开关堵住多条路径。

已移除的能力

时事新闻、视频抽帧、音频分析、测量在 dsh-mind 中已物理删除;需要时效信息请用 DSH 外的 web_search / web_fetch 等临时查询。

安装与启用

插件未发布到 npm,来源只能是 github:AshenSeeker/dsh-mind 或本地 file: 路径。Node 要求 >= 22.13.0(见 package.json)。

推荐:DSH 插件面板

侧边栏 → 插件 → 安装,由面板处理依赖与挂载,装完启用后重启 DSH。装完默认无需额外配置,心情会自动开始变化。

手动装入 profile

在 ~/.dsh/profiles/<profile>/ 中编辑 package.json 与 cordis.yml,再安装依赖:

// package.json 片段
{
  "dependencies": {
    "dsh-mind": "github:AshenSeeker/dsh-mind"
  },
  "dsh": {
    "profile": {
      "bundles": [ "dsh-mind" ]
    }
  }
}
# cordis.yml 片段
- id: dsh-mind
  name: dsh-mind
cd ~/.dsh/profiles/desktop && pnpm install

安装完成后重启 DSH。任务说明禁止把 git clone 当作读者必做步骤;若你使用本地路径,将依赖写成 file:/你的路径 即可。

装完先看哪里

目的 位置
当前心情与条形图 设置 → 心情日记
注入提示词的内容 心情日记顶部标签(混合态 / 距上次切换 / 下次判定)
数据文件与迁移 各面板底部「换位置」
主动开口 设置 → 主动开口(默认关)

配置:整包与各模块开关

在 DSH 配置编辑器中找到 dsh-mind:

config:
  enabled: false      # 关掉整个插件
  mood: { enabled: false }
  memory: { enabled: false }
  taste: { enabled: false }
  diary: { enabled: false }
  proactive: { enabled: false }

只关心情时,人设与其他 bundle 照常工作。若要从头清零 33 个心情分值,可用 mood 工具的 action=reset,避免手改 json 后被宿主内存覆盖。

日记若要恢复自动模板草稿:

diary:
  autoDraft: true

典型用法与边界

  1. 桌面 DSH:安装 bundle 后正常对话即可;心情随消息与周期更新,并进入 systemPrompt。
  2. 心情工具:除查看状态外,可按仓库文档使用 reset 等 action(peer 依赖 @deepseek-ai/dsh-tools)。
  3. 手机 DeepSeek:无法加载 DSH 插件;仓库提供 手机版_心情提示词.md,可将规则段贴入系统提示词,由模型自行维持分值,精度低于插件版。

适用场景与注意

适合:希望在 DSH 里给模型加一层可持久、可关闭的情绪与记忆,又不需要 dsh-mood 那套新闻/抽帧/测量周边;希望日记由模型自己写、而非 nightly 模板填空。

注意:

  • DSH 插件在当前 DSH 进程权限下运行,安装前请自行审阅 源码与 LICENSE,加密日记与记忆文件落在本机 profile,迁移与备份责任在用户侧。
  • 社区目录 skillhub.cn 是独立生态站点,与 DeepSeek / 幻方无官方从属关系;「一切皆插件」是 DSH 的使用方式,不是官方应用商店表述。
  • 从 dsh-mood 迁数据时务必核对文件名与合并逻辑,避免 silent 空库。

结尾

dsh-mind 把「33 种可衰减心情 + 可选记忆/品味/日记/主动开口」收成一套可独立开关的 DSH bundle,并把平静当作默认常态、把日记正文交回模型自写——若你正在给 Harness 里的智能体补一层内在状态,可以从目录页或 GitHub 安装 0.16.1 试跑。

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

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

小夜