前言¶
用 DeepSeek Harness(DSH)接 OneBot v11 网关跑 QQ 机器人时,模型往往只能发文字或普通图片。QQ 收藏表情在协议里没有统一的「发收藏表情」action,但收藏条目本质是一张图——用 image 段就能当表情包发出去。真正麻烦的是:怎么拉收藏列表、怎么把表情 id 变成可下载的图、以及怎么让模型在合适时机选对的图。yr584 维护的 dsh-qq-sticker(分类:趣味换装)把这三块做成 MCP 工具,并附带可视化设置页;适用于 SnowLuma、NapCat、LLOneBot 等网关,不依赖 qq-bridge。
这是什么¶
dsh-qq-sticker 是 DSH 社区插件(当前 package 版本 0.2.2,MIT)。它给已接入 DSH 的 QQ 机器人增加:同步账号收藏、按备注或情绪检索、以图片消息发送,以及从 QQ 收藏删除;另带梗库查询与 设置 → 表情包 管理界面。插件以当前 DSH 进程权限运行,安装前建议在 GitHub 查看源码与许可证。
核心功能¶
给模型用的工具¶
| 工具 | 作用 |
|---|---|
sticker_sync |
拉取账号收藏表情,合并进本地库 |
sticker_list |
按备注/id 搜索,返回 id + 备注(命中梗库的还带用法) |
sticker_send |
发到群或好友;表情是单独气泡,不能和文字合并 |
sticker_delete |
从 QQ 收藏里删除一张 |
meme_lookup |
查梗:本地 6668 条词库优先,没收录才联网 |
本地梗库来自 astrbot_plugin_memewiki(MIT),随仓库分发时需保留其许可说明。
设置页¶
在 设置 → 表情包 中可:
- 九宫格浏览图库(缩略图经宿主代理,避免直接踩 QQ CDN 防盗链)
- 点选后发送到指定群/好友,或删除
- 添加表情:网络 URL、本地图片(≤5 MB)、或本机路径(宿主直读)
- 不填备注时自动起名:文件名 → 可选视觉模型 → 梗库比对,并支持备选名一键更换
- 两个滑块配置「每分钟上限」「主动使用概率」(写入配置;运行时限流 README 标明待实现)
表情缓存文件:~/.dsh/qq-sticker/stickers.json。
安装与启用¶
下面介绍官方 README 中的安装方式。
dsh plugin --profile desktop add dsh-qq-sticker
# 或本地开发:pnpm add link:/path/to/dsh-qq-sticker
装完后重启一次 DSH(宿主半身和 MCP 行只在启动时挂载)。MCP 启动路径由插件内置 -e 启动器在运行时解析(依次尝试 cwd、$DSH_HOME/profiles/desktop、$DSH_HOME/profiles/web),无需 postinstall。
运行环境要求 Node.js >= 22(见 package.json engines)。
配置¶
首次使用前创建 ~/.dsh/qq-sticker/config.json:
{
"onebot": { "url": "http://127.0.0.1:3000", "token": "你的 access token" },
"sync": { "count": 100 },
"send": { "maxPerMinute": 6, "autoProbability": 0 },
"autoDesc": {
"enabled": true,
"baseUrl": "https://api.siliconflow.cn/v1",
"apiKey": "sk-...",
"model": "Qwen/Qwen3-VL-8B-Instruct"
}
}
onebot.url/onebot.token:OneBot 网关地址与 access tokensync.count:同步时拉取数量上限(示例为 100)send.maxPerMinute、send.autoProbability:发送频率与主动使用概率(配置项;限流逻辑 README 注明待实现)autoDesc:可选;配置后才会用视觉模型自动起名,不配则用文件名/编号兜底
典型用法¶
经过上面的安装与配置,可按下面顺序让模型使用表情包:
- 调用
sticker_sync,把 QQ 账号收藏合并进stickers.json。 - 对话中由模型调用
sticker_list按关键词或情绪检索,拿到 id 与备注(及梗库用法)。 - 需要发送时调用
sticker_send指定目标;需清理收藏时用sticker_delete。 - 不确定梗含义时,模型可调用
meme_lookup查本地词库或联网补充。
人工管理可走设置页:预览、添加、删除、试发,无需每次走工具。
适用场景与注意¶
适合谁:已在 DSH desktop(或 link 本地开发)接 OneBot v11、希望机器人在群聊/私聊里自然发表情包,并愿意维护 OneBot 网关与 access token 的开发者。
已知限制(来自 README):
- 网关必须支持
fetch_custom_face_detail,否则sticker_sync可能报「返回不是数组」 - 无 url 的表情会按
emoji_id推导gxh.vip.qq.com地址,个别仍可能 404 - 连发表情易触发 QQ 风控,建议配合
send.maxPerMinute等自制上限 - 表情消息为单独气泡,不能与文字合并成一条
DSH 生态是「一切皆插件」;社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-qq-sticker 把收藏同步、检索、发送和梗库查询收进一套工具与设置页,补上了 OneBot 侧「发收藏表情」没有标准 action 时的常见缺口。进一步了解可访问目录页与仓库:
- 目录页:https://www.skillhub.cn/plugins/yr584/dsh-qq-sticker
- GitHub:https://github.com/yr584/dsh-qq-sticker