READMESource: main@77a1a878
dsh-qq · 把 QQ 接进 DeepSeek Harness
别人做 IM 机器人框架,做消息队列;这个插件只做一件事: 让一台 DSH 能用 QQ 收发——文字、图片、表情、语音,并且只在「该回的那一轮」回。
QQ 客户端 ──> NapCat(WSL) ──OneBot11 WS──> dsh-qq ──> DSH 会话
│
回话按来源分流 ◀───┘
(QQ 发起的才回 QQ;桌面发起的留在桌面)
三条设计:
- 一个号只接一个人的私聊——
owners白名单,不填谁都不接; - 回话跟着来源走——QQ 进来的那轮才回 QQ,否则桌面上说一句、手机震一次;
- 能力靠标记不靠魔法——要发图就写
[[img:路径]],不猜。
这个仓库里有什么(以及没有什么)
| 有 | 没有 |
|---|---|
| 私聊双向文字(OneBot11 / NapCat) | 不做群聊投递(groupMessages 默认关,只记日志) |
收图:落盘后把路径交给 AI,AI 自己 read_image |
不做图片识别(那是模型的事) |
| 收表情 / 商城表情包:记成文本标记 | 不做表情分类、不建图库 |
| 发图 / 发表情 / 发表情包 | 不发语音条(要外挂 ffmpeg + silk-wasm,见 docs/用法.md) |
| 收语音:调你自己的转写脚本,回「[语音] 转写」+「[语气]」 | 不自带 ASR,不内置模型 |
| 会话绑定:接进指定那间,或第一次用时自建 | 不替你管记忆、不管上下文压缩 |
一句话:它是桥,不是机器人。
60 秒
# 1. NapCat 里开一个 WebSocket 服务端(见 docs/配置.md),记下端口与 token
# 2. 装插件(Git 仓库直装)
dsh plugin --profile web add https://github.com/wyinthe/dsh-qq
# 3. 配四样:地址、token、白名单、工作目录
# 样例:examples/cordis.patch.yml
# 4. 重启 DSH,QQ 上给这个号发一句
装好之后 QQ → 私聊 → 它回你,桌面这边不会重复收到。
怎么用
进(QQ 发来的东西会变成什么):
| 你发 | DSH 看到 |
|---|---|
| 文字 | 原文 |
| 语音 | [语音] 转写文本 + [语气] 时长/语速/停顿/音高/唤醒度…(需配 earScript) |
| 图片 | [用户发了图片,已存到本机,可以直接用 read_image 打开:<路径>] |
| 表情 | [QQ表情 id=178] |
| 表情包 | [表情包「名字」emoji_id=… package_id=…] |
出(AI 写这些就发出去):
| 写 | 发出 |
|---|---|
[[img:D:/pics/a.png]] |
图片(自动转 base64://,因为 NapCat 在 WSL 里看不见 Windows 盘符) |
[[face:178]] |
QQ 表情 |
[[mface:emoji_id/package_id/名字]] |
商城表情包 |
| 纯文字 | 文字(超过 maxChars 自动切段) |
目录
index.js 全部逻辑(零依赖,纯 ESM,无需构建)
cordis.patch.yml 挂载声明
examples/cordis.patch.yml 带注释的配置样例
docs/配置.md NapCat 侧设置 + 全部配置项 + 语音转写约定
docs/用法.md 收发标记、行为细节、已知限制
docs/排错.md 按症状查:消息不来 / 回了两次 / 503 / 语音没声
docs/发布.md 推到 GitHub 的步骤、About 文案、Topics
CHANGELOG.md 版本变更
状态
0.2.1,单机单人自用验证过:文字、图片、表情、语音(收)都跑通;发语音条没做。
先做私聊是因为它能独立跑——群聊、多人、多账号都能往上加,但顺序不该反。
License
MIT
No comments yet. Be the first to write one.