dsh-qq-bridge:用 DSH 接管真實 QQ 號(NapCat / OneBot v11)

前言

在 DSH 裏做智能體,常見做法是接 Webhook、企業 IM 或自建 Bot 賬號。QQ 側若要用「真人號」說話、又要私聊可控、羣裏少刷屏,往往得自己搭 NapCat、寫 OneBot 消費邏輯,再把模型調用和風控拆成好幾塊。dsh-qq-bridge 是社區維護者 zxz-feng 提交的 DSH 客戶端類插件(當前 GitHub 星標爲 0),把 NapCat 提供的 OneBot v11 WebSocket 接到 DSH 工具鏈上:私聊按白名單回、羣聊用零 token 規則決策器決定是否開口,需要說話時才調模型,並帶點歌、表情包、資源檢索縮略圖等能力;自檢與週期自愈同樣不消耗 token。

下面按「是什麼 → 能做什麼 → 怎麼裝配 → 怎麼用 → 注意點」說明,事實以倉庫 README 與 package.json(版本 0.9.0,MIT,要求 dsh >= 0.2.0、node >= 22)爲準。

這是什麼

插件全名 dsh-qq-bridge,一句話定位:接管一個真實 QQ 號(NapCat 掃碼登錄後走 OneBot v11),不是單獨再註冊一個「機器人小號協議」。NapCat 不在插件內,插件只連 OneBot WS(默認 ws://127.0.0.1:3001,可改),因此換機器只要 NapCat 和配置還在即可。

三條設計取向(README 原文歸納):

  1. 說話的是登錄的那個 QQ 號本身。
  2. 羣聊重點在「什麼時候閉嘴」:決策器用規則打分加概率,零 token、微秒級;確定要回才調 LLM。
  3. 裝完默認 enabled: true,但白名單爲空時不回覆任何人,避免誤觸羣聊。

核心功能

私聊與羣聊

  • 私聊:通過 qq_allowlist 配置 self 與 friends 白名單;未列入的好友不會觸發回覆。
  • 羣聊:在 qq_allowlist 的 group.groups 裏按羣號啓用;未配置的羣默認忽略。dryRun: true 時只生成不發送,README 建議先演練一天。

羣決策與風格

羣策略字段寫在 group-allowlist.json 思路下(經 qq_allowlist / Web 設置頁修改),包括 replyProb、coldProb、每日上限、冷卻、quietHours、點歌與語音上限等;風格檔在 persona/styles/*.md,自帶 normal / sunbar / tsundere / cold / genki,切檔會同時改決策偏置(bias:)。主人可在羣裏用 #風格 指令或 qq_style 工具切換。

點歌、表情包與找資源

  • 點歌 / B 站相關依賴可選 Python(含 yt-dlp 登錄態)、系統 ffmpeg;缺依賴時對應功能自行關閉,其餘照常。
  • 表情包需自行導入(node scripts/import-stickers.mjs --from <目錄>);庫空則不發圖。
  • 羣內「幫我找個 X(含黃油/galgame/壁紙等關鍵詞)」可走 DLsite 搜索 → 封面縮略圖 → 標題與鏈接回覆;只發店鋪公開封面,不搬運本體;直連失敗可走 GOODS_PROXY(默認 http://127.0.0.1:17890)。

聯網搜索(四源併發)

羣裏問「XX 是什麼意思」類問題時,橋子進程併發:宿主 DSH 搜索(需搜索插件與 key,經 127.0.0.1 小門 HOST_API_URL / HOST_API_TOKEN)、DDG lite、B 站(tools/bili.py)、維基。無搜索插件時宿主源靜默跳過,其餘源仍可用。

DSH 工具與 Web 設置頁

宿主側註冊多組工具,例如 qq_status、qq_verify(自檢 6/6)、qq_config、qq_allowlist、qq_send_private / qq_send_group、qq_groups、qq_qr、qq_style、qq_stickers、qq_restart / qq_log 等。Web GUI:設置 → QQ 小鯨魚(與「刷 B 站」並列),可改連接、羣策略、風格、白名單並保存即時生效(下一條羣消息起生效,無需重啓 DSH)。

自檢自愈(零 token)

node scripts/verify.mjs [--fix] 檢查進程、OneBot、端口、白名單、家目錄;插件默認每 5 分鐘跑一遍(selfHeal.everyMin,0 爲關閉),僅修復時寫日誌。

安裝與啓用

前置:NapCat

先在 NapCat(Docker 如 mlikiowa/napcat-docker 映射 3001/6099,或 Windows 桌面版)掃碼登錄,並開啓 OneBot v11 WebSocket 服務器(端口 3001)。可用 HTTP 探測或裝插件後看 qq_verify 的依賴項:

curl -s -X POST http://127.0.0.1:3001/get_login_info

安裝插件

安裝命令須來自倉庫 README,不要用未在文檔出現的拼接形式:

dsh plugin --profile web add link:/絕對/路徑/dsh-qq-bridge
# 或:dsh plugin --profile web add github:<你的用戶名>/dsh-qq-bridge

裝完重啓一次 dsh。若遇 ERR_PNPM_IGNORED_BUILDS(pnpm 12),可加:

dsh plugin --profile web add <本倉庫地址> --config.strict-dep-builds=false

配置三步

  1. 私聊白名單(qq_allowlist,示例字段見 README):
qq_allowlist { "allow": { "self": "10001000",
                          "friends": { "20002000": { "label": "主人", "enabled": true } } } }
  1. 羣(不加則全忽略;建議先 dryRun: true):
qq_allowlist { "group": { "groups": { "123456789": { "label": "主羣", "dryRun": false } } } }
  1. 自檢:
qq_verify   → 6/6

OneBot 與模型鏈示例:

qq_config { "onebot": { "url": "ws://127.0.0.1:3001", "token": "" } }
qq_config { "llm": { "models": ["deepseek-v4.1-flash", "hy3"] } }

典型用法

場景 做法
看連接與白名單狀態 調用 qq_status 或 Web「現在什麼狀態」面板
演練羣發言 羣卡設 dryRun: true,觀察生成內容再改 false
手動發一條 qq_send_private / qq_send_group(羣可配合 dryRun)
切羣性格 羣裏 #風格 傲嬌 或 qq_style { gid, style: "tsundere", intensity: "mid" }
離線自檢 node scripts/verify.mjs 或 Web「運維 → 跑自檢」

README 還說明:設置頁 HTTP 只綁 127.0.0.1 且做同源檢查;token 展示打碼,存回不會把打碼串寫入文件。

適用場景與注意

適合誰:已在用 DSH(--profile web)、願意自建 NapCat、需要真人 QQ 號在可控白名單與羣策略下接 LLM 的開發者或小範圍社羣;希望羣聊「少說話、說對話」而不是每條消息都進模型的人。

務必知曉:

  • 插件以當前 dsh 進程權限運行;安裝前請自行閱讀 GitHub 源碼 與 MIT 許可證,確認配置與網絡行爲可接受。
  • NapCat 掉線需人工掃碼,插件只能報告 OneBot 不通。
  • 社區目錄 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係;DSH 生態是「一切皆插件」,本文介紹的是第三方插件,不是官方應用商店條目。
  • 已知限制還包括:踢人未實現;語料與風格文件有政治內容過濾底線(見 README「語料」一節)。

結尾

dsh-qq-bridge 把 OneBot 橋、羣聊零 token 決策、LLM 回覆與 DSH 工具/Web 設置頁收在一個插件裏,默認空白名單避免誤發。若要進一步瞭解參數與目錄結構,直接讀倉庫 README;安裝與更新以 SkillHub 目錄頁與 GitHub 發佈爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/zxz-feng/dsh-qq-bridge
  • 源碼:https://github.com/zxz-feng/dsh-qq-bridge
羽毛球分组比赛记分
小程序二维码

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

小夜