DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

NiMo-Miku /

NiMo-Miku/dsh-memory-companion

Verified

dsh(DeepSeek Harness) 记忆与陪伴插件:长期记忆+分层注入+自动沉淀+好感度日记+QQ OneBot(snowluma)接入 | 纯 vibecode 许愿式编程产物

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@dfe3447a

memory-companion — dsh 记忆与陪伴插件

纯vibecode 零手写代码

⚠️ 纯 Vibecode 许愿式编程产物

参考 AstrBot 的 astrbot_plugin_memory_companion(我会牢牢记住你)与 astrbot_plugin_private_companion(我会永远陪着你),为 DeepSeek Harness (dsh) 打造的记忆 + 陪伴插件,并额外内置 QQ(OneBot 11 / snowluma) 接入。

功能

能力 说明
跨会话长期记忆 记忆持久化在 dsh 存储域中,重启不丢;按 owner 分域(桌面会话 = local,每个 QQ 号 = qq:<id>)
分层记忆注入 每次模型请求前,把该 owner 的高权重记忆 + 陪伴状态作为 runtime-context 注入(按权重/半衰期排序,字符数受限)
模型工具 memory_remember / memory_recall / memory_forget / memory_list,让助手主动记、查、忘
自动沉淀 轮次结束后用 LLM 从对话摘录中抽取 0-3 条值得长期记住的用户信息(可关,默认开)
好感度与心情 互动增长好感(每日封顶),按亲密度分档:初识→熟悉→亲近→默契→知己;心情由互动间隔推导
每日日记 每天的对话摘录在跨天后生成第一人称日记,/memory diary 查看
主动问候 可选:久未互动时让助手主动发一句问候(桌面会话 + QQ,默认关,支持静音时段与每日上限)
QQ 接入 OneBot 11 正向 WebSocket(snowluma):私聊直接回复;群聊 @触发;每个 QQ 用户独立会话与记忆;支持人设
人类命令 /memory status / list / search / add / forget / diary

安装

本插件是一个 workspace bundle。在 dsh 会话里对助手说:

用 plugin_manager 的 install_bundle 安装 C:\DSH工作区\bot\memory-companion

或在 Web 界面的插件面板中安装该目录。安装后无需重启即会激活(HMR);若提示 restart-required,重启 dsh 即可。

配置

默认配置即可在桌面会话使用记忆功能。要开启 QQ,在 cordis.patch.yml 里(或在插件面板的配置中)设置:

- insert:
    - id: memory-companion
      name: '@local/dsh-memory-companion'
      config:
        provider: deepseek-official        # 自动沉淀/日记/抽取用的 LLM 路由
        model: deepseek-flash
        autoCapture: true                  # 自动沉淀(轮次结束后抽取记忆)
        diaryEnabled: true                 # 每日日记
        proactiveEnabled: false            # 桌面主动问候(默认关)
        qq:
          enabled: true                    # 总开关
          url: ws://127.0.0.1:3001         # snowluma 的正向 WS 地址
          accessToken: ''                  # snowluma 设置了 access_token 就填
          persona: ''                      # QQ 人设;留空用内置默认(温暖伙伴+纯文本短句)
          groupEnabled: true               # 群聊(@机器人才回应)
          allowedUsers: []                 # QQ 号白名单,空 = 所有人
          allowedGroups: []                # 群号白名单,空 = 所有群
          proactiveEnabled: false          # QQ 主动问候(默认关)

snowluma 对接

snowluma 需开启正向 WebSocket(forward WS)服务,例如监听 ws://127.0.0.1:3001。若配置了 access_token,本插件会通过 ?access_token=... 查询参数携带(snowluma/NapCat/Lagrange 等实现均支持)。断线自动重连(2s 起指数退避,上限 60s),每 60s 心跳探测。

QQ 消息的路由规则:

  • 私聊:每条消息进入该用户的独立 dsh 会话(session-qq-<QQ号>),回复自动发回私聊,长回复自动分段;
  • 群聊:仅在消息 @机器人 时触发,回复带 @发送者;
  • 会话与记忆:每个 QQ 号有自己的记忆、好感度、日记,与桌面会话(local)完全隔离;会话持久化,重启后自动 resume;
  • 工作目录:QQ 会话的 workspace 默认在 <DSH_HOME>/memory-companion-qq/<QQ号>,可用 qq.workspaceDir 改。

数据与隐私

  • 所有数据存放在 dsh 存储域 memorycompanion(JSON/SQLite 后端由 dsh 配置决定;域名仅限小写字母数字),四张表:memories / diary / bindings / companions;
  • 自动抽取只保留跨会话仍然成立的用户相关信息,每轮最多 3 条、每条 ≤300 字,可在配置中整体关闭(autoCapture: false);
  • 记忆注入默认最多 12 条 / 1500 字符,可调。

开发说明

  • 代码结构:index.js(装配)+ lib/domain.js(存储域与纯函数)+ lib/store.js(读写门面)+ lib/memory.js(注入/工具/命令/自动沉淀)+ lib/companion.js(日记/主动问候)+ lib/onebot.js(QQ 适配器);
  • 纯函数冒烟测试:node .tools/smoke-test.mjs(在上级 bot/ 目录);
  • 仅使用 dsh 内置服务(tools / systemPrompt / storageDomain / llm / commands / agents),无外部 npm 依赖。

已知限制

  • 记忆检索是词法打分(标签命中 > 正文命中 > 重要度+时间衰减),不是向量检索;
  • QQ 群聊只支持 @触发,不支持回复引用触发;图片/语音消息会被忽略(只取文本);
  • OneBot 适配器按 OneBot 11 标准消息段与 CQ 码字符串两种格式解析,未经 snowluma 实机验证 —— 首次连接后请看 dsh 日志中的 memory-companion(onebot) 条目排查。
—/ 5

No ratings yet

Verified DSH bundle

Commit dfe3447a8637

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout