@zaofan/dsh-qqbot
基于 deepseek-harness (dsh) 的 QQ Bot IM 插件增强 fork:将 QQ 消息平台作为 dsh agent 的前端协议驱动,并加入表情包图库、富媒体收发、定时任务、多实例人格、好感度系统、可视化设置面板等能力。
📦 仓库: gcry13067381632-jpg/dsh-qqbot(fork 自 tencent-connect/dsh-qqbot;改动都在这一侧,升级/重装上游会被冲掉)
⭐ 用得顺手的话,麻烦点一下右上角的 Star —— 它是这个项目"有人在用"的唯一可见信号,也是继续更新的动力。
中文 | English | 📖 用户手册(配置项 / 内置命令 / 自定义扩展 / 群管理 / 智能回复 / 架构…)
🐋 她能帮你……
一句话:把 dsh 的 QQ 机器人养成"活鱼"——会存表情包、会挑图回你、到点自己开口、记得住谁跟它亲疏远近,一台电脑还能同时养好几条性格不同的鲸鱼。
🤳 群里发的图,她偷偷全存进小图库
自动去重、分「待整理/收藏/回收站」;你说一句"发个开心点的图",她自己搜库、自己挑、自己发,还会挑场合出手(冷场不发、刷屏限量、同图不连发)。
⏰ 到点她自己会开口
"每天早 9 点去群里说早安""30 秒后提醒我喝水"——她说到做到,准点冒泡。
🧑🤝🧑 一个电脑,N 条鲸鱼同时在线
每条号独立 AppID、独立人格、独立图库/定时/闸门,互不串号;Web 页「扫码绑定」手机一扫就上岗。
💗 她记得住谁亲谁疏(v1.5.1)
两个维度分开算:熟识度(她把你记得多牢——来过几天、说过多少、被点名、接话,慢变量)与好感度(她对你什么态度——随每次互动可升可降)。面板里一行一个人,还能一键导出 Excel 拿去分享。
- 判定用一个跑在本机的小模型读她的「思考(内心)」与「正文(说出口的话)」:心里不肯但话仍照顾 = 让步、心里亲近而嘴上冷淡 = 不算数(扣不扣看内心,不看表面)
- 好感度只影响"她愿不愿意自己开口"的松紧:负好感也只是少主动,绝不冷落、阴阳、攻击
- 群消息聚合时按「价值 × 好感」加权平均综合判断,不会被一句话钓走
💬 悬浮球 dock:她的随身控制台
设置面板右下角的小球,点开就是一整个操作台:💬 聊天(像 QQ 一样回放群/私聊记录,气泡+头像,图能放大、本地视频能播、SILK 语音转 mp3 直接听、文件出下载卡,还能在聊天框里直接发文字/插图/发文件——长文本自动拆条连发不被吞);📥 入群审批、🔇 禁言(机器人为群管理员时,有人申请进群她会提醒你,回句"通过/拒绝"就批);⚙️ 出站(适配主动:刚收到真人消息时前几条带引用回你、连发自动转独立消息,定时/后台推送不打扰)。
🛡️ 群主/群管好帮手
入群审批 + 禁言 + 查成员,全走官方接口,出错给"人话"(不是管理员/不能禁群主……都告诉你为什么)。
🗂️ 归档了也会自己回家
不小心把她的会话点了「归档」藏进侧边栏深处?不用满世界找——那个会话下次在 QQ 里被消息触发时,会自己从归档里摘出来回到侧边栏(你主动归档的其它会话不受影响)。
🖥️ 不碰配置文件,设置面板点点点
怎么回、能发什么图、什么时候开口、什么人格——面板上改完保存即生效(只有增删账号才要重启)。还有 ✏️ 预设人格编辑器,直接在网页里改她的"性格文件"。
📦 干净又利落
发图/撤消息用纯文本就能驱动(回复里写 [MEDIA:image|路径] / [RECALL]);仓库不含任何机器人凭据与隐私。
📸 效果展示
图①:dsh 运行后台——思考过程、工具调用、Token 用量一目了然(配合「回复闸门 reply_gate」可让机器人自主判断该开口还是静默吃瓜);
图②:QQ 群里的抓鬼游戏互动——该回就回、该藏就藏,角色扮演全自动;
图③:斗图实战——机器人用自己收藏的表情包接招回击,图、文分开两条连发。
后台运行日志(思考过程与工具调用可见)
QQ 群聊互动效果(角色扮演/自主静默)
斗图实战(发表情包接招回击)
图④:群管理·入群审批全流程——【群管·入群申请】事件注入 + 【审批轮询】双链路触发,AI 核对 openid 台账后自动放行;
图⑤:QQ 群内放行成功效果——小号申请入群被自动审批通过。
群管理·入群审批全流程(事件注入+轮询+自动放行)
群管理·审批放行成功效果
安装
⚠️ 必须装到 web profile(dsh web 设置面板的宿主);装到别的 profile 只会得到没有设置面板的裸环境。
也不要 add @tencent-connect/dsh-qqbot——那会装上游官方版(无本 fork 增强功能)。
✅ 单包自含,装一个就全有:QQ 机器人 + Web 可视化设置面板(host 桥 + 设置页 UI)都打包在
这一个包内——装完它,dsh Web「设置」里就会出现「QQ 机器人 (im-qqbot)」面板(多账号时每个实例各一页),
无需再单独安装 dsh-qqbot-settings。
方式一(发布到 npm 后):一条命令
npx @deepseek-ai/dsh plugin --profile web add @zaofan/dsh-qqbot
尚未发布到 npm 前,请用下面的方式二。
方式二:源码分发(当前推荐)
Windows(一键脚本):
git clone https://github.com/gcry13067381632-jpg/dsh-qqbot.git
cd dsh-qqbot
.\install.ps1 # 自动 install/build → pack → add tarball → 输出重启指引
若系统禁止运行脚本,改用:powershell -ExecutionPolicy Bypass -File .\install.ps1
macOS / Linux(手动):
git clone https://github.com/gcry13067381632-jpg/dsh-qqbot.git
cd dsh-qqbot
npm install && npm run build
pnpm pack --pack-destination /tmp
npx @deepseek-ai/dsh plugin --profile web add /tmp/zaofan-dsh-qqbot-0.4.0.tgz
💡 为什么打 tarball、而不是 add 源码目录?实测教训:
① 目录路径含空格时 Windows 会把参数在空格处拆碎(pnpm 报 - isn't supported);
② add 目录 = pnpm link(junction),插件无法按"代码位置"反推 profile → 扫码凭据落不了盘,只能走环境变量。
构建与部署(源码)
npm install # 安装依赖(peer 依赖由 dsh 宿主解析)
npm run build # 或: node node_modules/typescript/lib/tsc.js -p tsconfig.json
npm run check:package # 发布前自检(单包四项家当齐全)
pnpm pack # 打 tarball(供 dsh plugin add 安装)
仓库根的 install.ps1 提供 Windows 一键安装(自动 pack 到无空格目录 → add → 重启提示)。
排障: npm 安装报 ERESOLVE(2026-09-06 移植上游 PR #42)
首次 npm install 可能报 ERESOLVE could not resolve——原因: @deepseek-ai/dsh-tools/dsh-agent 等 peer 依赖仍在 prerelease(-rc) 版本线,npm 7+ 严格解析拒绝不相交组合。这是上游版本线问题,不是插件 bug,两条绕过路:
npm install --legacy-peer-deps # 仅安装期解析策略, 不改运行行为
# 或: 装完依赖后手动 build + pack(peer 由 dsh 宿主解析, 不受影响)
跟踪中: 上游 #37 根治后此段可删(版本线收敛后 npm 不再报错)。
首次启动与绑定
启动 dsh web 后,若未配置凭据会自动进入扫码引导:终端输出二维码 → 手机 QQ 扫码绑定 → 凭据自动保存,重启不丢(设置面板里也可随时「扫码绑定」/改账号)。
二维码扫码示意图
提示:建议使用 0.4.0 以上版本扫码,支持点击链接在浏览器打开,避免部分终端二维码渲染错位的问题。
还没有 QQ 机器人?先注册一个(拿 AppID / AppSecret)
- 打开 QQ 开放平台,用 QQ 号登录;
- 进入「机器人」→「创建机器人」,填好名称、头像、简介;
- 创建完成后在机器人详情页拿到 AppID 与 AppSecret;
- 在 dsh Web → 设置 →「QQ 机器人」→「账号与预设」里填入并保存
(或设为环境变量
QQBOT_APPID / QQBOT_SECRET);
- 按需在平台开通单聊/群聊消息权限(群聊一般需要提交用途审核)。
💡 更省事:机器人建好即可,首次启动直接扫码绑定,不用手抄凭据。
支持这个项目
如果这个插件帮你省了 token、或者让你家的鲸鱼更活蹦乱跳 —— 给个 ⭐ Star 就是最实在的支持;有 bug / 想要的功能,欢迎开 Issue。
License
MIT