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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye