听雪(dsh-tingxue):QQ 双模式对话与本地自建记忆

前言

在 DeepSeek Harness(DSH)里做长期陪伴式对话或文件处理,常见做法是依赖托管记忆服务,或在同一 Web 会话里混用「闲聊」和「干活」上下文。前者把数据放到第三方,后者容易让人格、记忆与一次性任务互相污染。听雪(dsh-tingxue)是社区维护者 oranskyx 发布的 DSH 插件,分类为「记忆」:主交互在 QQ(经 dsh-notifier),记忆落在本机 LanceDB,关系图谱在插件内自建;同时提供用完即焚的隔离 agent 会话处理文件。下面介绍它的定位、能力与安装用法。

这是什么

听雪跑在 DeepSeek Harness 上,是双模式虚拟生命插件:

  • 聊天模式:有人格、有长期记忆,上下文结构对缓存友好;默认在 QQ 里直接发消息即可进入。
  • agent 模式:隔离的纯文件处理会话,处理结束后归档进记忆库并销毁工作副本。

记忆不依赖托管服务:LanceDB 本地文件即库,关系图谱自行实现,语义推理走可插拔的小 LLM。插件当前版本为 0.1.0,许可证 MIT,Node 要求 >= 22.19(见 package.json 的 engines)。

核心功能

双模式与指令

全程只需两条 QQ 指令,插件会自动建会话、绑定与回绑,无需手动 /bind:

操作 效果
直接发消息 聊天模式:人格 + 记忆 + 四块上下文组装
/agentstart 进入 agent 模式:新建隔离会话并自动绑定
发文件、多轮讨论 文件作为上下文持续处理
/agentstop 归档对话到记忆库、删除工作副本、销毁隔离会话、回绑聊天会话

自建记忆与关系图谱

  • LanceDB 嵌入式向量库:本地文件即库,四张表(记忆条目 / 实体 / 关系 / 最新信息)。
  • 关系图谱流水线:实体抽取 → 实体链接 → 带时间窗口与溯源的三元组关系 → 图遍历增强检索。
  • 图谱 UI:默认监听 http://127.0.0.1:8765,浏览器打开可查看实体关系力导向图,离线可用。

模型与配置

embedding 与语义推理抽象为统一接口,换模型只改配置。默认模型后端为 sta1n,也可切到本地或自定义 OpenAI 兼容端点。DSH Web GUI 提供图形化配置:设置侧边栏「听雪」页与「插件配置」两处入口,当前各 29 项配置,写入 $DSH_HOME/settings.yaml;cordis.patch.yml 作为 base 层保留。

推送隔离与模式自愈

  • 经 dsh-notifier 的 route:agents 分流,避免其他 DSH 会话通知打扰 QQ。
  • 启动自检与运行期 reconcile:mode 与 QQ 绑定不一致时自动退回聊天模式,避免静默丢失人格与记忆。

QQ 文件

QQ 附件经 [文件] 标记由 pre-step 下载到 dataDir/workcopy/ 并注入上下文。文本文件直接进上下文(单文件上限 5 MB、正文截取 8000 字符);二进制仅提供文件名与大小。聊天模式与 agent 模式均支持。

前置要求

依赖 版本 / 说明
Node.js >= 22.19
DeepSeek Harness 0.1.1-rc.2 或更高
dsh-notifier 必须钉死 0.9.0 并打补丁(非 ^0.9.0);否则 QQ 收文件等功能不可用
pnpm 安装 @lancedb/lancedb 时需解析原生依赖
LLM / embedding 端点 默认 sta1n,可改本地 OpenAI 兼容端点

运行时外部包主要为 @lancedb/lancedb 与 apache-arrow(锁 18.1.0)。

安装与启用

DSH 插件源码在进程启动时加载、不热重载;改源码需同步到 profile 的 node_modules 副本并重启 DSH。浏览器端改完后需硬刷新(Ctrl + Shift + R)。

必须先安装并补丁 dsh-notifier:

cd ~/.dsh/profiles/web
pnpm add dsh-notifier@0.9.0

# 补丁放入 profiles/web/patches/,在 pnpm-workspace.yaml 接线:
#   patchedDependencies:
#     dsh-notifier: patches/dsh-notifier.patch
pnpm install

验证补丁:node_modules/dsh-notifier/src/inbound/_qq-segment.mjs 存在,且 src/inbound/message.mjs 含 parseQQFileAttachments。

再安装听雪并声明 bundle:

cd ~/.dsh/profiles/web
pnpm add file:/absolute/path/to/dsh-tingxue

在 profile 的 package.json 中加入 bundle 声明,否则会出现「已安装,未生效:未声明 dsh.bundle」:

"dsh": {
  "profile": {
    "bundles": [ "...", "dsh-tingxue" ]
  }
}

重启 DSH 使插件挂载。

装完自检(需持有插件仓库,因 install-check.mjs 不随 npm 包发布):

cd ~/.dsh/profiles/web
node <插件仓库>/scripts/install-check.mjs
node <插件仓库>/scripts/install-check.mjs --json

脚本机检 bundle 声明、notifier 版本与补丁、运行副本与仓库一致性、cordis.patch.yml 结构等;--fix 可自动修复并支持失败回滚,活 profile 默认只读。它不会替你执行 pnpm install、同步副本或重启 DSH。

典型用法

装好并重启后,在 QQ 中:

(直接发消息)          → 聊天模式
/agentstart           → agent 模式:隔离文件处理
(发文件、多轮讨论)
/agentstop            → 归档并回到聊天模式

人格提示词由用户自写 txt,配置项 profilePath 指向该路径。记忆数据默认目录为 dataDir(默认 cwd/.dsh-tingxue)。常用记忆相关项包括 memoryBudgetTokens(默认 1600)、latestInfoBudgetTokens(默认 1000);injectRecentRounds 默认关闭,避免与 DSH 会话历史重复计费 token。

适用场景与注意

适合谁

  • 已在 DSH 上跑 QQ 通道(dsh-notifier),希望 QQ 侧有固定人格、本地向量记忆与可浏览关系图谱的开发者或自用部署。
  • 需要在 QQ 里偶尔切到隔离会话处理附件,且希望结束后自动归档、不长期占用主会话上下文。

务必注意

  • 插件以当前 DSH 进程权限运行;安装前请阅读仓库源码与 MIT 许可证,自行评估凭据与 dataDir 中的对话数据安全。README 提到活 profile 凭据风险与 SECURITY.md。
  • dsh-notifier@0.9.0 与补丁是硬依赖,跳过会导致静默功能缺失(例如收文件)。
  • 社区目录 skillhub.cn 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,听雪是其中一条「记忆 + QQ 双模式」路径。

结尾

听雪把 QQ 闲聊(人格 + LanceDB + 自建图谱)与隔离 agent 文件处理合成一个插件,并用 /agentstart、/agentstop 自动切换。若你已在 profile 里使用 dsh-notifier,可按 README 完成 notifier 补丁、file: 安装与 bundle 声明,并用 install-check.mjs 排查「装完却不生效」的常见坑。

  • 目录页:https://www.skillhub.cn/plugins/oranskyx/dsh-tingxue
  • 源码与文档:https://github.com/oranskyx/dsh-tingxue
羽毛球分组比赛记分
小程序二维码

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

Xiaoye