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 倉庫。

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

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

小夜