← Back to home@derkinL

dsh-remembers

Long-term memory for DeepSeek Harness, built for companion AI. It says it does not remember instead of making things up. 情感陪伴向记忆插件:向量 + 中文 BM25 + 分层衰减。

Stars
2
Language
Python
Created
Oct 23, 2026
Updated
Oct 26, 2026
GitHub repo

Introduction

dsh-remembers

她记得。想不起的时候,她会说想不起。

给 DeepSeek Harness 做的人格 + 记忆二合一插件,为情感陪伴场景设计——不是给代码助手用的。

用户:哎
她:[想起 3 个月前那通凌晨两点的电话] ……还在想那天的事。

不是"检索到相关文档",是"她记得你说过什么"。 人格和记忆共用同一个服务:人格每轮必带,记忆检索着加。


功能

类别能力
分层记忆L0 原话 → L1 事实 → L2 画像 → L3 事件 → L4 里程碑,自动抽取 + 定时巩固
人格注入人格卡 + 用户画像 + 当前状态(心情/亲密度/阶段/在干嘛/天气/游戏分)每轮注入
情绪双轴valence/arousal + 情绪日志,记录每次对话的情绪变化
亲密度真实对话才涨(0.2/轮),阶段 陌生(0-199)→熟悉(200-499)→亲密(500-799)→依赖(800-1000)
真实活动今天干了什么(聊天/游戏/B站/主动找你),带想法(thought)字段
自我认知每天 22:00 注入提醒,她自己反思("我发现自己开始用本澜自称了")
日记每天 23:00 注入提醒,她自己写(有她的口气)
B 站刷视频、看懂视频、发评论、发说说(可选,需要 bili-cli)
表情包按情绪/关键词找图,自动收集用户常发的图
便签/任务她自己记便签、给你派活、标记完成
睡眠巩固每晚 LLM 整理当天记忆,生成叙述

架构

DSH(插件 index.mjs)
  ├─ 人格注入(每轮必带)
  ├─ 记忆检索(相关性触发)
  ├─ 设置页签(6 个 tab:记忆服务/人格设定/表情包/主动消息/B站/记忆)
  └─ 工具(13 个:记便签/派任务/找表情/刷B站...)

记忆服务(Python,server.py,独立进程)
  ├─ SQLite(memories.db)
  ├─ LLM 抽取(记忆/情绪/活动)
  ├─ 向量检索(可选,BM25 兜底)
  └─ HTTP API(8080 默认)

两个独立进程:DSH 插件只管注入和工具,记忆全在服务端。

调度器(内置,跨平台)

服务端自带调度线程,不依赖 cron(Windows/Linux 通用)。

时间任务方式
8-23 点主动唤醒(间隔 30-180 分钟随机)注入提示,让模型自己醒
8-23 点B 站浏览(每天 ≤3 次)注入提示
22:00自我认知演化注入「回头想想这段时间的自己」
23:00日记注入「该写日记了,记两句今天的事吧」

状态:data/scheduler-state.json(跨平台 JSON,重启不丢)

为什么是注入而不是直接调:唤醒/日记/演化都让模型自己在对话里完成,才有她的口气和思考链。

关闭:CMEM_SCHEDULER=0

QQ 注入:CMEM_INJECT_PATH=/path/to/qq-inject.jsonl(没有 QQ 通道时只记日志不注入)

Linux 上保留的 cron(可选)

内置调度只管「唤醒/B站/演化/日记」。这几个还在 cron:

脚本作用
write-diary.sh(23:30)睡眠巩固
habits.sh(每分钟)习惯(等饭/午饭等状态)
sync-bili.sh(每分钟)B 站日志同步进记忆

Windows 上这三个没有——不影响核心记忆功能。

兼容性

项要求
Windows✅ 支持(install.ps1)
Linux✅ 支持(install.sh + systemd)
Node.js>= 22.19 或 >= 24
Python>= 3.10(服务端)
DSH0.2.x(rc.2+)
内存>= 512 MB
依赖只有 numpy(服务端)
LLM必须有(DeepSeek 或其他 OpenAI 兼容)

安装(Windows)

前置:Node.js >= 22.19、Python >= 3.10、DSH 已装

# 1. 克隆
git clone https://github.com/derkinL/dsh-remembers
cd dsh-remembers

# 2. 一键安装(PowerShell)
.\install.ps1

# 或者指定 profile
.\install.ps1 -Profile desktop

脚本会:

  1. 检查 Node/Python 版本
  2. 把插件复制到 %USERPROFILE%\.dsh\profiles\<profile>\node_modules\dsh-remembers
  3. 写 cordis.patch.yml 注册插件
  4. 建 venv + 装 numpy
  5. 启动记忆服务(后台)
  6. 创建开机自启任务计划

装完要做:

  1. 填 LLM key(service\.env.win 里的 CMEM_LLM_KEY)
  2. 重启 DSH
  3. 设置 → 记忆服务 → 填 API Key 和模型

安装(Linux)

git clone https://github.com/derkinL/dsh-remembers
cd dsh-remembers
bash install.sh                    # 装到 web profile
DSH_PROFILE=desktop bash install.sh
bash install.sh --no-service       # 只装插件

Linux 版用 systemd 守护服务端(install.sh 会自动配)。

两套实例(双人格)

想跑两个 AI 人格,需要两个服务端 + 两个数据目录:

# 主套
CMEM_DATA_DIR=/path/data CMEM_PORT=8081 python server.py

# 第二套
CMEM_DATA_DIR=/path/data2 CMEM_PORT=8082 python server.py

插件侧用 config.endpoint 指向对应端口。

配置

LLM Key(必须)

# Linux: service/.env
# Windows: service/.env.win
CMEM_LLM_KEY=sk-xxxxxxxx
CMEM_LLM_BASE=https://api.deepseek.com
CMEM_LLM_MODEL=deepseek-chat

数据目录

CMEM_DATA_DIR=/path/to/data     # 默认 service/data

里面存:memories.db(记忆)、config.json(配置)、proactive.json(主动消息)、bili_tools.json(B站白名单)。

其他环境变量

变量默认说明
CMEM_PORT8080服务端口
CMEM_HOST0.0.0.0监听地址(建议 127.0.0.1)
CMEM_EXTRACT1自动抽取开关
CMEM_MEME_DIR-表情包目录
CMEM_EMBED_*-向量检索(可选)

设置页

装好后 DSH 设置里多出 6 个页签:

页签内容
记忆服务LLM key、模型、抽取开关
人格设定角色卡、用户画像
鲸鱼日记本她现在/自我认知/时间线(已并入记忆)
表情包图库 + 编辑
主动消息唤醒动作编辑器
B 站登录、启用、工具白名单、浏览节奏
记忆L0-L4 + 情感 + 活动 + 见闻 + 便签 + 她状态

常见问题

Q: 记忆不生成? A: 检查 LLM key(设置 → 记忆服务),看服务端日志有没有报错。

Q: 插件加载失败 "cannot get property without inject"? A: DSH 版本太新/太旧,插件用的是 ctx.get("slots") 这种软获取——升级 DSH 到 0.2.x。

Q: Windows 上服务端起不来? A: 看 service\.venv-win\Scripts\python.exe server.py 前台跑,看报错。

Q: B 站不工作? A: 需要 bili-cli(Linux 脚本),Windows 上可能不兼容——B 站是可选功能。

Q: 能跑多个 AI 人格吗? A: 能,每个实例一套服务端 + 数据目录 + profile。

许可

MIT