dsh-companion:面向 QQ 官方机器人的 DSH 伙伴插件

前言

在 DeepSeek Harness(DSH)里接 QQ,常见做法是沿用 OneBot 桥接或个人 QQ 登录,再叠一层通用 IM 插件。QQ 官方机器人走的是 AppID/AppSecret 与 OpenID 体系,和数字 QQ 号、群号不是同一套标识;若还要长期记忆、识图、视频与本地语音,往往要在多个插件之间拼配置,并小心重复回复入口。

下面介绍维护者 sidifeng 发布的客户端类插件 dsh-companion:专门对接 QQ 官方 WebSocket,把对话、SQLite 长期记忆、视觉附件、FFmpeg 抽帧、本机 TTS 转 SILK 等能力收在一个 DSH 插件里。当前为预览版,面向 DSH 0.2.1-rc.2 与 Node.js >=22.13;安装后默认关闭,需完成配置并停用旧 QQ 接入后再启用。它不是腾讯或 DeepSeek 官方产品。

这是什么

dsh-companion 是 QQ 官方机器人专用的 DeepSeek Harness 伙伴插件:默认人设为自然、温和的朋友、不固定名字;使用官方 AppID/AppSecret,不登录个人 QQ,不依赖 OneBot。仓库:sidifeng/dsh-companion。社区目录页:skillhub.cn 条目(发现页搜索依赖社区收录审核,仓库说明中已注明新仓库需满一天后才能提交目录)。

核心功能

README 用表格列出了当前实现与验证范围,下面按开发者最关心的几块归纳;细节与边界以仓库 README 为准。

消息与节奏

私聊、群聊经官方 WebSocket;仅 OpenID 白名单,群聊默认需要 @,真实收发已在 QQ 侧验证。连续短消息默认最多 3 个气泡、间隔 1.2 秒;群聊两个独立气泡已验证。普通文本可在短窗口内合并同人连续发言,未发送的旧轮次可被明确更正替代;表达上会参考最近成功发出的少量回复,减轻重复开头与机械收尾(该参考留在内存,重启清空)。

附件与多媒体

图片:本轮附件交给已配置的视觉模型,QQ 私聊识图已验证。视频:用 FFmpeg 抽取最多 3 个时间点再调用视觉模型,默认仅前 180 秒;QQ 视频描述已验证,不分析音轨。语音:本机 WAV 转 QQ SILK 后发送,需独立 loopback 语音服务;QQ 私聊接收和播放已验证。

长期记忆与画像

长期记忆 SQLite 持久化,支持明确保存、自动整理、更正、删除和关闭自动记忆;QQ 自动整理已验证。另有经历时间线(S 编号)、人物画像、语义向量检索(本机多语种 384 维,按人与场景隔离)、群话题摘要、旧事回访等;管理员可通过私聊命令查看与纠正(如 /经历、/画像、/纠正、/忘记 等,完整列表见 README)。

B 站、唱歌与自主行为

B 站:热门、BV 标题/简介、公开字幕、公开短视频画面抽样;限 180 秒/25 MB、无需登录付费的单段 MP4。唱歌:本机 ACE-Step.cpp 规划模型生成音频再转 SILK,默认 30 秒,默认关闭。自主浏览与主动聊天:后台从公开热门列表挑选未看过的短视频抽帧记录;主动消息走官方独立接口,默认关闭,需管理员配置 autonomy 后启用。自主活动依赖宿主持续运行,电脑关机时不会工作。

安装与启用

安装

已安装 dshmarket 的用户,可在宿主「插件 → 添加插件」中填入 github:sidifeng/dsh-companion,或使用:

npx @deepseek-ai/dsh plugin --profile web add github:sidifeng/dsh-companion

保留 GitHub 来源后,在「插件市场 → 已安装」中检查更新。使用 DSH 官方 format 1 索引时,可在发现页添加来源并搜索安装:

https://raw.githubusercontent.com/sidifeng/dsh-companion/market-index/index.json

package.json 当前版本为 0.7.0-alpha.2,引擎要求 dsh 为 >=0.2.1-rc.2 <0.2.2,node 为 >=22.13.0。安装代码为原生 ESM,无须运行安装构建脚本。

启用前配置

README 要求按顺序做三件事:

  1. 停用原 im-qqbot、个人 QQ 桥接和其他重复回复入口,保留备份。
  2. 在本机填写 AppID/AppSecret、DeepSeek provider/model 和测试 OpenID 白名单(数字 QQ 号、群号不能代替 OpenID)。
  3. 设置 companion.dataDir 等数据目录,配置 vision.enabled/provider/model(需实际支持图片的模型),再启用 enabled,先验收白名单范围。

新增字段示例(节选):

companion:
  persona: 自然、温和的朋友,没有固定名字。没有依据时不假装记得。
  autoMemory: true
  maxMessages: 3
  intervalMs: 1200
  burstWindowMs: 800
  turnTimeoutMs: 120000
voice:
  enabled: false
  baseUrl: http://127.0.0.1:8765
  voice: huayan
  maxChars: 120
video:
  enabled: true
  ffmpegPath: ffmpeg
  frames: 3
  maxSeconds: 180
bilibili:
  enabled: true
singing:
  enabled: false
  baseUrl: http://127.0.0.1:8085
  synthModel: acestep-v15-turbo-Q8_0.gguf
  lmModel: acestep-5Hz-lm-0.6B-Q8_0.gguf
  maxSeconds: 30
  timeoutMs: 105000

语音服务兼容 POST /v1/speak/file,只接受 loopback 地址;视频需另装 FFmpeg 或填写可执行文件绝对路径。

典型用法

语义记忆(可选)

启用前需在本机准备 Xenova/paraphrase-multilingual-MiniLM-L12-v2 固定提交对应的模型文件,例如在插件包目录执行(路径换成自己的数据目录):

node scripts/prepare-semantic.mjs "D:\companion-data\models"

随后配置 semantic.enabled: true 与 semantic.modelDir。可用 /找记忆 问题 检查跨措辞召回;模型缺失时会退回文字匹配,/记忆状态 会显示退化状态。

群主动与浏览(可选,默认关)

仅向白名单群主动发言的示例(启用前填写管理员的官方私聊 OpenID):

autonomy:
  enabled: true
  groupEnabled: true
  privateEnabled: false
  browseEnabled: true
  operatorIds: [] # 填本机管理员的官方私聊 OpenID
  timezone: Asia/Shanghai
  quietStart: 23
  quietEnd: 9
  chatIntervalMinutes: 30
  groupDaily: 28
  privateDaily: 0
  idleMinutes: 3
  browseIntervalMinutes: 120
  browseDaily: 7
  interests: 猫、生活、科普、音乐

私聊主动发送默认关闭。群话题、回访规则与 /群话题、/取消 等命令说明见 README「群话题、语义记忆与回访」「聊天节奏」等节。

管理员维护命令

经历与画像误判时,README 提供私聊命令核对与纠正,例如 /经历、/经历 S1、/画像、/纠正 S1 新内容、/忘记 S1、/兴趣、/观点 猫、/整理兴趣、/兴趣重置 等。记忆库升级到 Schema 5、自主库升级到 Schema 2 前会生成一致性备份;回退需恢复升级前数据库备份,旧插件不能直接读新结构。

适用场景与注意

适合已经在 DSH 0.2.1-rc.2 上跑 DeepSeek 对话、并打算用 QQ 官方机器人(而非 OneBot/个人号)做私聊与群 @ 回复,且需要本地持久记忆、识图/短视频抽帧、可选本机语音与 SILK 发送的开发者。

务必注意:

  • 插件以当前 DSH 进程权限运行;安装前应自行查看 GitHub 源码 与 MIT 许可证,AppID/AppSecret 与模型密钥只应写在受控配置里。
  • 预览版能力多、依赖多(FFmpeg、可选 ONNX 语义模型、独立 TTS/唱歌服务);Windows 下 pnpm 11 若提示 onnxruntime-node 或 protobufjs 安装脚本,README 给出了在 profile 的 pnpm-workspace.yaml 中禁止构建的示例,勿与「放行未知脚本」混淆。
  • 人物画像、时间线自动提取仍可能误判;多日关系与观点自然度 README 标明需长期实际使用验证。主动消息与浏览受平台权限、安静时段与每日预算约束,不是保证送达的提醒器。

结尾

若你的目标是「官方 QQ 机器人 + DSH 一体式伙伴」(记忆、图片、视频抽帧、本地语音与可选自主行为),dsh-companion 把接入与能力栈写进同一插件,并用 OpenID 白名单和独立数据目录把边界说清楚。安装与配置以 README 为准;社区信息与源码分别见 目录页 与 GitHub 仓库。

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

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

Xiaoye