yyh-001 / dsh-companion

Listed

DeepSeek 陪伴模式插件 —— 人设、记忆、聊得下去:SOUL 人格 + Hermes 长期记忆,可选 QQ 通道

mainSession View source

Installation

pnpm add file:/path/to/dsh-companion

This command is generated from the GitHub repository address. Inspect the upstream README and source before running it; pin a release or commit when reproducibility matters.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 787c8a0Synced Aug 18, 2026

dsh-companion — 人设、记忆、聊得下去

DeepSeek 陪伴模式 · dsh-companion — 人设、记忆、聊得下去

MIT dsh-plugin DeepSeek 陪伴模式 DeepSeek Harness Hermes memory selfloom compatible


聊天 Agent 做陪伴最容易翻车的三件事:

  • 每回合重新自我介绍,像刚上线的客服
  • 聊过就忘,上次说好的事下次不认账
  • 人格和记忆各写各的,模型看到的是一锅粥

dsh-companion 是 DeepSeek Harness 的陪伴插件:人格(SOUL)+ 长期记忆(Hermes 风格)+ 可选 QQ 通道,agent 核心(回合循环、会话持久化、搜索、工具注册)全部由 DSH 提供。
数据来自 selfloom(单用户陪伴 agent 内核)——记忆文件零迁移SOUL.md / USER.md / MEMORY.md 直接复用。

想配一套表情包?另装 dsh-expression(语义检索 + 发图,经本插件的 QQ 通道)——两者独立、可选搭配。

交流 / 反馈:QQ 群 993579665点击加入


安装

在 DSH profile 目录(如 ~/.dsh/profiles/web/):

pnpm add file:/path/to/dsh-companion
# 或从 GitHub:
pnpm add github:yyh-001/dsh-companion

配置

agent preset 里加一行(最简单的做法:从 DSH 的 standard 预设拷贝一份,删掉 persona 行——人设由本插件接管,同一作用域不能注册两个同名段):

- id: selfloom-companion
  name: dsh-companion
  config:
    memoriesDir: .selfloom/memories   # 相对路径按会话工作目录解析,也可写绝对路径
    # 可选:QQ 通道——appId/secret 来自 QQ 开放平台(q.qq.com)机器人凭据
    qq:
      enabled: true
      appId: '1905247119'
      clientSecret: 'xxxxxxxxxxxxxxxx'

再补一个 preset.yml(显示名):

name: 陪伴模式
description: 陪伴 Agent——人设 + Hermes 长期记忆 + 技能目录,核心由 DeepSeek Harness 提供。

装完后,设置 → 通用设置 → Agent 预设,选 陪伴模式 · 自定义,再开新会话即可开聊:

DeepSeek 设置:Agent 预设选「陪伴模式 · 自定义」

装完即用

用户: 你是谁
模型: (读 SOUL.md 的人格 → 以 suki 的身份、损友的语气回应)

用户: 记住我喜欢喝 XX
模型: (调 update_memory 写进 USER.md → 下次会话还记得)

用户: 发表情包
模型: (若装了 dsh-expression → 检索图库 → 经 QQ 通道发图)

它做什么

能力说明
人设段 deployment:personaSOUL.md(人格)+ USER.md / MEMORY.md(长期记忆)渲染成单文档,遮蔽部署默认人设;每次组装实时渲染,写入后立即刷新,另有 60s 定时兜底
update_memory 工具长期记忆增删改查:add / replace / remove(§ 条目级)、set / clear(整文件);字符预算(USER 1375 / MEMORY 2200)+ 超预算合并引导
QQ 通道(可选)官方 SDK 网关:QQ 消息经 agent.send 进陪伴会话,回复经表达层分块回发(带引用回复);提供 companionQq 服务(sendImage / isOnline)给其他插件消费
companion_status / qq_status记忆用量、人设文档、QQ 在线状态自检

日常命令(模型视角)

update_memory target=user action=add content=「喜欢喝茶」   # 写记忆
update_memory target=memory action=replace old_text=…       # 合并/更新条目
companion_status                                            # 看记忆用量
qq_status                                                   # 看 QQ 网关状态

给模型的三条铁律

完整约定见人设段与 update_memory 工具描述。

  1. 接着关系聊:不自我介绍、不「有什么可以帮你」、不客服腔
  2. 记忆只存持久事实(偏好/边界/约定),不存任务进度和临时路径;预算快满先合并再写
  3. 回复按表达层拆气泡:短闲聊一句一条,长文干活保持完整段落

接到你的 Agent

组件说明
dsh-companion本插件:人设段 + Hermes 记忆 + QQ 通道(companionQq 服务)
dsh-expression表情包插件:语义检索 + 经 companionQq 发图
selfloom数据源:SOUL.md / USER.md / MEMORY.md(§ 条目 + 预算,零迁移)
dsh-companion/
  index.js        插件本体:人设段 + 记忆工具 + QQ 挂载
  qq.js           QQ 通道:官方 SDK 网关 ↔ agent 会话桥接 + 分块投递 + companionQq 服务
  package.json    name / inject / deps
  README.md
  LICENSE

已知限制

  • 记忆文件跨会话共享,当前每个会话的 store 实例各自读写同一批文件——单用户场景无问题;
  • QQ 通道是单目标 MVP:回复发回"最近聊天"目标;扫码登录尚未移植(凭据直接配置即可用);
  • 表情包管理(上传/删除/改元数据)不在此插件——那是 dsh-expression 图库维护的事;
  • 提醒场景尚未接入(DSH 原生 @deepseek-ai/dsh-schedule 可直接覆盖)。

Roadmap(后续目标)

近期——把通道和调度补齐

  • QQ 扫码登录webServer 注册路由 + 手机 QQ 扫码换凭据,替代手填 appId/secret(移植 selfloom qq_login.ts
  • 多聊天目标:按 QQ chatId 区分会话/回复目标,替代"最近聊天"单目标 MVP
  • 提醒接入dsh-schedule 行进陪伴预设,覆盖 schedule_follow_up / cron_manage 场景
  • 完整预设示例:仓库内 examples/companion.agent.cordis.yml(基于 standard 的完整可复制文件)

中期——记忆与主动性

  • 记忆摘要压缩:长对话自动摘要推进(移植 selfloom ensureSummary,Hermes compaction 语义)
  • 记忆服务 host 化:出现真正的跨会话消费者(如 QQ 通道/其他插件读记忆)时,把 store 提升为 host 侧服务
  • 主动回合:心跳/空闲自省(对应 selfloom heartbeat),结合 dsh-schedule 定时开口
  • 媒体入站:QQ 图片消息进会话(DSH attachments 服务对接)

工程化

  • 测试套件:记忆条目/预算、分块投递、QQ 消息映射的单元测试
  • TypeScript + 构建链:插件代码量上来后走官方 tsdown 模板,main 指向编译产物
  • 发布形态:保持 GitHub 分发(pnpm add github:…),或按需发布 npm

License

MIT

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

DocumentationDetected

Repository information

Language
JavaScript
License
MIT
Last updated
Aug 13, 2026, 4:00 PM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.