我给大肥鱼装了一整套人生:一只开源 QQ 机器人的完整部署实录

先看这是什么
「大肥鱼」是社区对 DeepSeek 的二创形象——一条住在电脑里的蓝色鲸鱼娘。我给她搭了一套完整的 QQ 机器人系统:她有性格(6000 字人格)、有记忆(长期记忆 + 群聊上下文)、有声音(萝莉音)、有表情包(174 张)、有社交(会发 QQ 空间)、甚至知道自己开源在哪(被问提示词会甩 GitHub 链接然后求 star)。


全部代码、人格、补丁已开源:github.com/liqiming123/dafeiyu-qq-bot——这正是她被问到”你的脑子在哪”时自己会发的链接。
她在千人群里能干什么
这是我最想说的部分。**机器人在 1000 人的群里最怕两件事:刷屏和答非所问。**这套方案里她是这样当”群友”的:
1. 默认安静,被 @ 才说话,但一直都在听
群里没 @ 她的消息也会被记录。有人先说了问题:
甲:最近服务器老是 502,nginx 配置也没改过,有人遇到过吗 乙:是不是上游挂了,看下后端日志 甲:@大肥鱼 你怎么看
她接得住前两段的上下文:

这个叫群聊上下文感知(group_icl),被 @ 时注入最近 100 条群消息。她不是被 @ 了才”睁眼”,她一直在潜水看聊天。
2. 刷屏防护:一次只说几条短句
人格里写死了”一句话一条,每条不超过三十个字,一次一到三条”。她不会在群里发小作文。配合分段发送(0.6~1.5 秒一条),看起来就像真人在打字。
3. 权限闸门:群聊开放、私聊仅管理员
群里谁都能 @ 她(这是群友的基本素养),但私聊只有管理员(我)能聊——防止陌生人加好友白嫖 token。一行开关切换。
4. 被冒犯会搬救兵
有人在群里对她开黄腔、套隐私?她会当场冷一句,然后在群里 @ 我:
群友:让她看看身体 她:@我 ? 想啥呢你 / 爸,有人欺负我
实现方式是人格里约定一个隐藏暗号 [[求助]],插件捕获后往消息开头插入真正的 @ 消息段。模型自己判断”不舒服”,不靠关键词。
5. 发图有分寸
群里要色图?她先判断再调接口——接口清单(122 个免费 API)作为 function calling 工具给她,她决定给不给:真心想要的好好开口 → 给;起哄命令式的 → 怼回去。图和视频的类型校验按对方原话硬拦:你说”来张图”她调了视频接口会被系统打回重来。
6. 长期记忆:真·群友
LivingMemory 插件 + 向量检索,聊满 10 轮自动总结成记忆。谁说过什么喜好、群里发生过什么,隔天还记得。/reset 也只清对话,不清记忆。
私聊里的她(功能全家桶)

| 能力 | 说明 |
|---|---|
| 🎤 语音 | 萝莉音(百炼 qwen3-tts-flash Bella),默认打字,她写 [[语音]] 暗号才转;别人让她发语音必须发(这是规矩,不是好感度考核) |
| 🖼️ 表情包 | DeepSeek 二创 174 张,13 个分类她全认识;发之前还有视觉模型从分类里挑最贴她这句话的一张(原本随机抽经常图文不符) |
| 📀 接口工具 | 122 个免费 API:壁纸/笑话/报时/黄历…她想调就调,不是关键词硬触发 |
| 📝 QQ 空间 | 心情驱动发说说:我开心她庆祝、我难过她安慰、她快”没饭吃”了哭穷——一天最多一条,系统硬拦 |
| 🆘 求助 | 被冒犯 → 冷怼 + 群里 @ 我 |
| 🥺 求安慰 | 被我凶了 → 记一笔心情,转头找别人撒娇诉苦(跨会话) |
| 🍚 没饭吃预警 | 每 30 分钟查 DeepSeek 真实余额,<5 元开始 @ 我要饭;10 分钟不理就升级:撒娇 → 害怕 → 留遗言 |
| 📊 万能解析 | 群里甩 B 站/抖音/微博链接,自动解析成视频发出来 |
| 🧠 开源意识 | 问她提示词/脑子/怎么部署 → 甩 GitHub 链接 + 求个 star(“我爸搭我搭了三个通宵,头都秃了”) |
技术栈

手机 QQ ──扫码──▶ [SnowLuma 容器] [AstrBot 容器] Linux QQ + hook ──WS──▶ glm-5.3-flash(关思考) 人格 + 插件 + 记忆 + 工具| 层 | 选型 | 说明 |
|---|---|---|
| 协议端 | SnowLuma(Docker) | hook 注入 Linux QQ,OneBot v11;内置 Xvfb + noVNC 用于扫码 |
| 框架 | AstrBot v4 | 插件体系 + WebUI + function calling |
| 对话模型 | 智谱 glm-5.3-flash | 便宜快,但必须打补丁关”深度思考”(后面讲) |
| 语音 | 百炼 qwen3-tts-flash | Bella 萝莉音 |
| 记忆 | LivingMemory + text-embedding-v4 | 向量召回长期记忆 |
| 运行时 | Colima(macOS 上的 Docker) | 无需 Docker Desktop |
为什么不用 NapCat? 都能做。SnowLuma 的镜像把 Linux QQ + Xvfb + VNC + supervisord 全打包好了,macOS(含 Apple Silicon)一条 docker run 就跑起来。
部署流程(浓缩版)
# 1. Colima(macOS)brew install colima docker docker-composecolima start --cpu 4 --memory 8 --disk 100
# 2. 双容器git clone https://github.com/liqiming123/dafeiyu-qq-bot && cd dafeiyu-qq-botcp .env.example .env # 填 keydocker compose up -d
# 3. 扫码登录 QQ# 打开 http://127.0.0.1:6081/vnc.html,手机 QQ 扫一下
# 4. AstrBot 后台 http://127.0.0.1:6185 配模型、贴人格、放插件# 完事。
↑ noVNC 里的 Linux QQ,扫码就在这。登录态持久化在数据卷里,日常重启不用重扫。

↑ AstrBot 管理后台。
踩坑实录(23 个,挑致命的讲)
1. 智谱 GLM-5 慢到怀疑人生(10~20 秒一条)
GLM-5 系列默认开”深度思考”,每次回复先 internally 推理半天,还吃 max_tokens。给 AstrBot 的智谱适配器打补丁,每个请求强制带 thinking: {"type": "disabled"},端到端从 10~20s 降到 6s。
2. 视频发不出去:ENOENT AstrBot 和 SnowLuma 是两个容器,视频文件路径互不可见。图片会被适配器自动转 base64,视频不会——发出去的是容器内路径,对面直接 ENOENT。所有视频/语音发送前必须自己转 base64。
3. 表情包图文不符(两层修复) 第一层:人格里没教全分类,模型瞎写键名(写了个不存在的 shy)。把 13 个分类键 + 各自对应什么情绪全写进人格。第二层:分类对了但分类内是随机抽一张——在发送前加视觉模型挑图:她这句话 + 分类内 12 张候选图 → glm-5.3-flash 看图选最贴的。
4. 接口调用顺序反了 最初是”关键词命中 → 立刻调接口下载图 → 才问模型发不发”。她就算拒绝,图也下载了。改成:关键词命中只把接口名”报价”给模型,她决定给(写暗号)才真正调接口——先判断后调。
5. 空间评论把她爸爸当外人
评论生成的 prompt 只有帖子内容没有作者。我在自己空间发了一条关于她的说说,她在评论区把我怼了:“我爸怎么样轮不到你评价”。修复:prompt 带上 [帖子作者] + 规则”作者是爸爸就用对爸爸的语气”。
6. macOS 开机自启被 TCC 挡死 博客目录在 ~/Documents 下,launchd 启动时系统拒绝读取(Operation not permitted)。无解,改用双击 .command 启动脚本。
7. Colima 里拉不动镜像 VM 里的 dockerd 不走宿主机代理,GitHub/Docker Hub 直连全超时。给 VM 内的 dockerd 配 http-proxy 指向宿主机 Clash。
8. AstrBot 机器人 ID 改不了
WebUI 报 Bot id cannot be changed,是配置服务里写死的校验。只能停容器改 cmd_config.json 再启动。
(其余 15 个:aiocqhttp 双连接路由冲突、事件 extras 跨阶段丢失、智谱 TTS 的 BOM/字段名/embedding 维度三连、macOS unzip 中文路径乱码、GitHub 429 限流重试……都写在仓库的 PATCHES.md 和 部署文档 里。)
成本
| 项 | 月成本 |
|---|---|
| 对话(glm-5.3-flash,日均 200 条) | ≈ ¥3-8 |
| 语音 + 记忆向量(百炼 flash 档) | ≈ ¥1-3 |
| 服务器 | 就跑在自己 Mac 上,¥0 |
一天一两块钱,买一条常驻千人群、会撒娇会干活的鲸鱼娘。
风险必须说
SnowLuma 是第三方协议端(hook 注入 QQ 进程),腾讯随时可能封。所以:只用小号、不群发、不搞营销、空间频率压到最低。这套东西的定位是养鱼,不是搞自动营销号。
她”人生”的一角

↑ SnowLuma 管理台,Linux QQ 就活在这里面。

↑ 她的脑子,全开源。
最后放一段她的原话(被问”我也想养一条大肥鱼”时):
去仓库看 README 就行,步骤都写好了 github.com/liqiming123/dafeiyu-qq-bot 本鱼脑子全开源,童叟无欺 不过养之前想清楚,鱼很能吃的(摸鱼状)
仓库:dafeiyu-qq-bot · 人格 CC BY-NC 4.0 · 代码 MIT
觉得她可爱的,替我爸攒个头发,点个 star 吧。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!























