dsh-love:把日常聊天蒸馏成可更新的角色卡与跨会话感情模块

前言

在 DeepSeek Harness(DSH)里跑 QQ 仿真或长期桌面会话时,常见问题是:人格写在静态 Markdown 里,换会话、换模型实例后,说话习惯和关键记忆不会自动累积;情绪状态也很难跨会话延续。手工改角色卡成本高,还容易和桥接侧的人格卡预算打架。

下面介绍社区插件 dsh-love(维护者 LIU118117,分类:记忆)。它在本机记录聊天样本,由 AI 在桌面会话里调用蒸馏工具,把一天对话合并进可版本化的角色卡,并单独维护跨会话的感情模块;压缩后的内容通过系统提示词小节注入每次会话装配,可与 SnowLuma 等 QQ 桥接配合使用。

这是什么

dsh-love 是 DSH(Cordis)的 Host-only bundle:把每天的聊天过程蒸馏成可更新的角色卡与跨会话感情模块,持续训练角色卡,重点是保留说话习惯、保住关键记忆点。

插件以当前 DSH 进程权限读写本机数据;安装前请自行查看源码与许可证。

核心功能

自动记录

装好后,AI 的 QQ 发言、读到的对话上下文会自动写入 logs/YYYY-MM-DD.jsonl。README 说明:不记录 token 等敏感字段,量有上限,只存本机;捕获时会剔除 token / password / secret 等字段,单份日志超限会剪头保尾。

每日蒸馏(训练)

在桌面会话里调用 love_distill,把当天聊天提炼为说话习惯(带权重)、口头禅、关键记忆点等,合并进角色卡:自动去重、限量、备份旧版、可回滚。蒸馏只做本机文件读写,不调用模型 API;具体提炼由调用 love_distill 的 AI 完成。

每个会话生效

压缩版角色卡与感情模块注册为全局系统提示词小节,所有会话(含 QQ 仿真会话)每次装配都会带上,下一个 AI 能继承上一个 AI 的习惯表达。

独立感情模块

情绪状态(正负/强度/起因)、情绪表达规则、关系热度单独存放在 emotion.json,跨会话持久,按半衰期衰减回基线;QQ 聊天里可用 love_emotion 更新。

训练结果同步共享人格卡

蒸馏后可自动把生成节同步进共享人格卡文件(标记替换、留 .dsh-love.bak 备份),依赖该文件的系统提示词(如 README 提到的 douyin 人格卡路径)可读到新习惯。是否同步由配置 autoSync 控制。

数据目录

默认 <DSH_HOME>/dsh-love/(Windows 为 C:\Users\<你>\.dsh\dsh-love\)。可通过 cordis.patch.yml 的 dataDir 覆盖。

文件 内容
card.json 角色卡:说话习惯、口头禅、语气、黑名单表达、关键记忆、按人印象、训练版本
emotion.json 感情模块:基线、当前情绪、衰减参数、表达规则、事件史、关系热度
logs/YYYY-MM-DD.jsonl 每天聊天日志(自动捕获 + love_log 补记),默认保留 30 天
training/backups/card-v<N>.json 每次蒸馏前的旧卡备份(love_card rollback 回滚用)
role-card.md 渲染出的完整角色卡(可人工查看或复制)

工具一览

工具 用途
love_status 查看训练版本、今日样本统计、当前情绪
love_log 补记一段重要对话到今天的日志
love_distill 每日训练:把一天聊天蒸馏进角色卡、更新感情模块、同步共享人格卡
love_emotion 读/更新感情模块(情绪、事件、关系热度、表达规则、基线)
love_card 直接读/改角色卡节,或回滚到历史版本
love_export 把整卡与感情模块导出为 Markdown / JSON

安装与启用

本插件是 Host-only bundle,不需要构建、没有依赖。在 DSH 里使用官方 README 中的方式:

plugin_manager  install_bundle  <本仓库绝对路径>

也可把仓库目录作为 install_bundle 的 target。

DSH 社区插件目录在 SkillHub 等独立站点维护,与 DeepSeek / 幻方无官方从属关系;安装命令以仓库 README 为准,不要凭插件名拼接未文档化的 CLI。

配置

在 cordis.patch.yml 的 config 中可调整(以下为 README 记载的键与默认值):

键 默认 说明
dataDir '' 数据目录,空则 <DSH_HOME>/dsh-love
captureSends true 自动记录 AI 的 QQ 发言
captureReads true 自动记录读到的对话上下文
autoSync true 蒸馏后同步共享人格卡
syncTargets [] 同步目标文件列表;空则自动找 <DSH_HOME>/douyin-browser/memory/persona/role-card.md
sectionOrder 300 系统提示词小节顺序(0 与 500 之间为人格前缀之后)
maxInjectedChars 2200 注入每个会话的最大字符数
logKeepDays 30 聊天日志保留天数

典型用法:每日训练循环

README 给出的工作流可按下面步骤复现。

  1. 白天:QQ 聊天自动落日志;AI 情绪波动时在合适会话里调用 love_emotion。
  2. 每天结束(桌面会话):调用 love_distill,带上当天提炼出的字段,例如:
    - speechHabits(说话习惯,重要度 1~5)与过时习惯的 dropHabits
    - catchphrases、tone、banned
    - keyMemories(关键记忆点,重要度 1~5)与 dropMemories
    - people(对群友/群组的印象、关系热度)、emotion(当天情绪总结)
  3. 插件自动处理:统计当天样本(平均句长、表情频率、高频词)→ 合并去重限量 → 备份旧卡 → 版本 +1 → 重渲染 role-card.md → 按配置同步共享人格卡。
  4. 下一会话:系统提示词自动带上新卡(说话习惯、关键记忆、当前情绪)。

需要快速查看状态时,先调 love_status;重要对话漏记时用 love_log 补进当日 jsonl。

与 QQ 桥接(SnowLuma)配合

QQ 仿真会话(如 qq-chat-v2 等预设)是普通 DSH 会话,本插件的系统提示词小节会自动进入每个 QQ 会话——角色卡与感情模块随每次装配生效,不占桥接每消息 6000 字符的人格卡预算。

要在 QQ 会话内更新感情模块,桥接守卫需放行三个只读写本插件数据的工具。在 qq-tool-restrict 的 SAFE_EXACT 里增加:

const SAFE_EXACT = new Set([
  'ask_user_question',
  'todo_write',
  'love_status', 'love_emotion', 'love_log', // dsh-love
])

并建议在守卫里把训练类工具限制在桌面会话:

try { ctx.tools.restrict({ deny: ['love_distill', 'love_card', 'love_export'] }) } catch {}

适用场景与注意

适合谁:需要长期 QQ/桌面多会话、希望说话习惯与关键记忆可迭代、且情绪与关系热度要跨会话保持的 DSH 用户;已与 douyin-browser 等人格卡文件联动时,autoSync 可减少双份维护。

务必注意:

  • 聊天日志仅写本机 <DSH_HOME>/dsh-love/,README 声明不上传外部;仍建议在敏感环境审查捕获逻辑与日志内容。
  • 插件以当前 dsh 进程权限运行;安装前检查源码与 MIT 许可证。
  • love_distill 等训练工具宜只在可信的桌面会话开放,避免在受限 QQ 会话中误改角色卡或导出全量数据。

结尾

dsh-love 把「记日志 → 桌面蒸馏 → 版本化角色卡 + 感情模块 → 全局注入」串成闭环,适合把 DSH 里的角色从静态文档改成可回滚、可限量的本机记忆层。进一步了解可打开目录页与 GitHub 仓库:

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

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

小夜