前言¶
如果你已经在用 DeepSeek Harness(DSH)做智能体会话,常见缺口是:消息还在 Web 里,QQ 用户进不来;就算接了 OneBot 桥,机器人也多半只在被 @ 或收到私聊时才动一下。社区里已有基于 OneBot 11 的 QQ 通道插件,但「按节奏主动开口、自己挑 B 站视频、把语音和图片理解接进回合」往往需要再叠一层逻辑和配置。
泡泡(仓库名 dsh-onebot-paopao,维护者 ZhongYiSS)在 dsh-onebot 基础上二次开发:保留上游 QQ 通道能力,增加陪伴层、B 站视频挑选与「看视频」工具,并把个人化内容收进配置。插件分类为客户端,在 SkillHub 目录与 GitHub 上均可查阅(截至资料记录,GitHub 星标为 2)。
下面介绍它是什么、能做什么,以及怎样在 DSH 里装好并做环境检查。
这是什么¶
一句话定位:给 DSH 挂载 OneBot 11 QQ 通道,并叠加一层陪伴逻辑——按权重决定何时递话头、协助选 B 站视频,支持语音转写与图片/视频理解;话由会话里的 Agent 本体输出,插件不代写正文。
技术形态与 dsh-vision 类似:零 Python、纯 TypeScript、原生 Cordis 插件,跑进 dsh 宿主进程,不改核心代码。当前包版本为 0.2.0(package.json),许可证为 MIT(上游 QQ 通道部分源自 BSD-3-Clause,见仓库 THIRD-PARTY-NOTICES.md)。
数据路径可以概括为:
用户(QQ) ←→ NapCat ←→ dsh-onebot-paopao ←→ dsh Agent(每个 QQ 会话一个)
兼容 NapCat、Lagrange、LLOneBot、go-cqhttp 等 OneBot 11 实现;连接支持反向 WS(默认端口 8643)或正向 WS(默认 ws://127.0.0.1:3001),断线按 2s 至 60s 退避重连。
QQ 通道能力¶
入站与出站¶
入站侧覆盖私聊/群聊、CQ 段解析、图片多路解析与大图压缩、文件段接收、引用与合并转发展开;语音可走 ffmpeg 转 16kHz WAV 再用 whisper 系工具转写,非阻塞:先以 [语音] 占位进入回合,转写完成后补递「(语音转写:…)」。
出站侧支持按 textImageThreshold(默认 150 字符)在单条文本与 t2i 文字图卡片之间切换,Markdown 剥成 QQ 纯文本,合并转发、图片/语音/视频/文件工具,以及可选的实时中间消息(interimMessages)。管理员可在 QQ 使用斜杠命令(如 /new、/stop、/model、/doctor 等)管理会话与运维。
工具与权限¶
Agent 侧暴露的工具包括 qq_send_image、qq_send_voice、qq_send_video、qq_video_look(本地/B 站/直链,支持 quick/normal/deep 等模式)、bili_pick_video 及若干 B 站互动类工具等(完整列表见仓库 package.json 的 dshx.contributes.tools)。权限由管理员白名单、dm/group 策略与群 @ 门控等配置约束。
每个 QQ 会话对应一个持久 Agent,session id 稳定派生,重启后可 resume;提示词会按会话注入 QQ 平台说明(Web 会话不可见)。
陪伴层(泡泡)¶
陪伴层解决的是:何时主动递话头,而不是替模型写回复。
- 权重与触发:各会话独立维护权重,每拍按
risePerTick上升,超阈值后以p = triggerPmax × 权重 / 100掷骰决定是否开口。 - 扣分与补分:每轮固定扣
releaseBase;若模型在回复末写[SCORE 0-10],插件按补分表退分或追扣,下限wFloor可配。 - 事件池:抽中的是「词」(说句话、刷视频、找图等),具体怎么说由会话决定;份数、自定义事件可在设置页调整。
- B 站:按兴趣关键词轮转挑视频,可记口味与拉黑;推送前可抽字幕、抽帧或听口播再决定。
- 定时:会话可回
[LATER 25](分钟)或[AT 23:30],到点再唤醒一轮;免打扰时段内不涨分、不抽卡。
B 站有新私信或 @ 时,插件可把话头递给当前会话,仍由 Agent 组织回复。设置页分「陪伴」「B 站与视频」「QQ 通道」三块;人设补充 promptExtra、主人 QQ ownerQQ、表情包目录等均走配置,未配时插件照常工作,只是不带那些人设与特权。
安装与启用¶
前置条件:dsh ≥ 0.1.5-rc.1(engines.dsh 见 package.json)、Node.js ≥ 22、已运行 NapCat 或其他 OneBot 11 端。
快速安装(desktop profile)¶
README 给出的「三分钟装好」路径如下:
# 1. 装插件(二选一)
dsh plugin --profile desktop add github:ZhongYiSS/dsh-onebot-paopao
dsh plugin --profile desktop add dsh-onebot-paopao # 发到 npm 之后
# 2. 重启 DSH(插件要重启才挂得上)
# 3. Web 界面 → 设置 → 泡泡 → 总览 → 「检查环境」,缺什么按提示补
Web profile(npm 发布通道)¶
若走 Web profile 的 npm 安装,官方命令为:
dsh plugin --profile web add dsh-onebot-paopao
随后需按 README「安装」一节合并 profile 层 cordis.patch.yml、注意 pnpm 12 下 pnpm-workspace.yaml 的 autoInstallPeers / hoist 设置,且不要在 profile 的 package.json 手写 @deepseek-ai/* 依赖。版本不在 peer 范围内时,可用 dsh plugin allow-version ... --accept-risk 显式豁免。
装不上或需对照 patch 合并细节时,以 GitHub README 的「安装」章节为准。
典型用法¶
经过上面的步骤,在 Web 设置里按「第一次用」流程操作即可验证通路:
- 「泡泡 → 第一次用」中启动 NapCat,扫码登录一次。
- 在「QQ 通道」填写机器人 QQ 号。
- 用另一个 QQ 号给机器人发一句话,收到 Agent 回复即表示 QQ 桥接正常。
日常运维可先跑环境体检(只查不装,退出码 0 表示无硬伤):
node bin/doctor.mjs # 或 npx dsh-paopao-doctor
设置页「陪伴 → 总览」的「检查环境」按钮调用同一套检查,覆盖 Node、ws/canvas、ffmpeg、whisper、B 站登录、NapCat 进程等项。
语音转写依赖 ffmpeg 与 whisper CLI;Linux 上 t2i 文字图需要 Noto CJK 字体;B 站视频直连下载不依赖 yt-dlp(站外链路的 yt-dlp 为可选项)。无字幕视频听口播时,资料记载需 Python 与 faster-whisper(脚本随包提供)。
适用场景与注意¶
适合谁:希望在 DSH 上直接服务 QQ 私聊/群聊、又想让 Agent 在空闲时按权重主动互动、或需要 B 站挑片与 qq_video_look 看视频工作流的开发者。
使用注意:
- 插件以当前 dsh 宿主进程的权限运行,安装前应阅读仓库源码与 MIT / 第三方许可说明,确认管理员白名单与群策略符合你的部署边界。
- 热加载仅覆盖 profile 层 patch 的 config 覆盖与 insert 变更;改 bundle 自带 patch 或根
cordis.yml仍需重启宿主。 - 陪伴层只递话头与计分,内容安全与出站审计仍依赖模型与
ONEBOT_ALLOWED_USERS等配置。
DSH 生态主张「一切皆插件」;SkillHub 目录(插件页)是社区索引,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-onebot-paopao 把 OneBot QQ 通道与泡泡陪伴层收进同一个 Cordis 客户端插件:通道负责 CQ、语音转写与 rich 出站,陪伴层负责权重、事件池与 B 站选片,Agent 仍是一轮一轮地说话。