The project's README from github.com/whyever77/dafeiyu-astrbot. As one markdown file: README.md.
一只住在 QQ 里的蓝色鲸鱼娘:会看、会听、会说话、有记忆、会主动找你, 还能进群和你的朋友打成一片,也会嘴硬地催你吃饭。基于 AstrBot + NapCat + DeepSeek + 阿里云百炼 搭建。
大肥鱼是 DeepSeek 蓝鲸 logo 的社区二创形象(非官方),本项目把「让她住进 QQ 里」 的全套实践开源出来:一个高完成度的 AstrBot 插件、一套完整人格、以及踩过所有坑的实录。
记忆星海 v0.3:深蓝星域记忆星图、相机透视与环视、时间线、遗忘模拟和来源检查。已接通运行中的 LivingMemory 2.7.0-beta.2,只读展示真实文档、记忆原子和来源关系,支持手动和每 60 秒自动同步;曲线与线索检索仍为本地模拟,不修改 QQ 中的记忆行为。使用已有运维 SSH 配置,在仓库根目录运行 python -B -m deploy.memory_observatory.server --port 8767 --livingmemory-ssh,打开 http://127.0.0.1:8767。不加 --livingmemory-ssh 则使用虚构演示数据。实测与边界见接入验收。
生活决策 v0.1:复用已有调度、目标与预算,根据自己的兴趣、未完成项目和近期尝试选择研究、写作、探索或休息,记录理由并支持主人查询。2026-10-29 已部署并开启,首轮真实决策为 writing;休息不调用模型、不发消息、不写入虚构经历。
主动联系协调 v0.1:生活分享与 proactive_chat 共用联系额度、间隔和未回应记录,主人正在聊天时先让出时间。2026-10-30 已部署云端并开启,社区补丁已安装,额度 1/120/5/1;真实 QQ 联动 smoke 尚未执行。
生活节律 v0.1(本地、默认关闭):按上海时间安排晨间续篇、白日探索、睡前整理与休息;根据已结束运行的实际经过时间留白,保留原权限、免打扰与预算。房间展示有日期的节律选择,休息不生成虚构经历。完整阶段与下一项见自主生活进化清单。
经历记忆 v0.1(本地、默认关闭):普通经历7天后显示概要、60天后淡出默认回忆,主人明确偏好和未完成任务证据保留;原始来源可按ID取回。不同实际视频支持的自身兴趣经判重形成巩固快照,复用 LivingMemory 现有写入队列,不额外修改其全库衰减。485项离线回归通过(11 skip);真实写入、召回与长期效果尚未验证,星海曲线仍为本地模拟。
近况回顾与自我表达 v0.1(本地、默认关闭):结合当前目标、有来源的兴趣变化、完成记录和已知中断原因,为相关话题提供自然表达的依据;保留现有人格与情绪上下文。df_self_reflect 只读查看,不生成情绪分数或新经历,不进入公开回复监听。518项离线回归通过(11 skip),真实模型/QQ表达尚未验证。
跨日自主项目 v0.1(本地、默认关闭):将已有目标和作品组织成有限项目,完成阶段后默认隔24小时回看,留下收获、局限与可选的新问题;下一阶段等原调度器再选择。默认最多两个项目、每个三阶段,保留作品版本、来源与中断恢复。df_project 管理,df_life_status 查看索引;网页作品集尚未接入。551项离线回归通过(11 skip),真实长期运行未验证。
她的小小房间 v0.2 使用已确认的大肥鱼鲸鱼娘女仆形象:总览待机、平滑走向书桌写字、书架阅读、窗边看景、休息角睡觉,窗景随上海时间变化。房间与星海统一浅蓝奶白风格;记忆按形状/类型分区、关联高亮、遗忘动画连续变化。真实 LivingMemory 与活动账本只读联调通过;角色表演与实际记录分开,不改变生活或记忆策略。
本分支新增B站评论区互动 v0.5:在现有提议、主人批准、操作账本和回读链上扩展点赞/取消赞、投币、弹幕、互动配额与风控、回复监听和评论区观察。默认仍逐条审批,新增开关默认关闭;verified 与公开可见性分别报告。保留研究方法复用、来源笔记与自主续写及既有真实 smoke。v0.5 只完成本地代码和离线测试,未部署、未操作真实账号;开启、低配额建议、回滚和主人小号 smoke 见互动文档。
审查修复已按社区维护的 B站 Web API 文档校正点赞/弹幕参数、buvid3 和 WBI 请求;真实端点可用性仍待小号 smoke。新增主人 /bili互动 清理不确定,先查看账本再明确确认,释放未决提议但不重发原操作。弹幕 accepted(接口受理)、verified(回读核实)、visibility(公开可见性)分别报告。
| 感官 | 能力 | 实现 |
|---|---|---|
| 👁️ 看 | 图片 / 表情包 / 视频(默认覆盖前 5 分钟,最多 16 帧) | qwen3-vl 转述 + ffmpeg 抽帧 |
| 🎧 听 | 语音消息 / 视频音轨(默认前 5 分钟,每 60 秒一段) | NapCat 转码 + qwen3-asr-flash |
| 🎙️ 现场听 | 模拟器里正在播放的视频原声(B 站等) | Windows loopback 录音 + SSH -L 8012 + qwen3-asr-flash |
| 🔊 说 | 语音条(含自定义音色) | 百炼音色复刻 + qwen-audio-3.1-tts-flash |
| 😀 表情 | 真 QQ 表情(326 张脸) | 自研插件把 [旺柴] 变成真实表情段 |
| 🧠 记 | 长期记忆 | livingmemory + bge-m3 嵌入(本地 Ollama / 硅基流动托管) |
| 📚 知识 | 功能手册 / 热梗词典(聊天里现查现答) | AstrBot 知识库 + bge-m3 嵌入 |
| 🏠 群聊 | 进群聊天:@ / 引用 / 喊「大肥鱼」都能唤醒 | NapCat 群消息 + 唤醒词 |
| 👥 认人 | 分得清谁在说话:群里看昵称、访客标「朋友」 | 插件注入身份标记(对方不可见) |
| 🔐 隔离 | 每个私聊 / 每个群各一册记忆,互不串账 | livingmemory session 作用域 |
| 📲 主动 | 随机 + 沉默触发,可按需联网找话题;每天 20:30 自己逛 B 站,说去逛必须当轮真调工具 | proactive_chat + AnySearch + cron |
| 🧭 日程 | 每轮知道自己名下真实存在的定时任务,不再说“我没有日程” | schedule_awareness 实时注入 cron_jobs(只读、按会话隔离) |
| 📱 手机 | 看截图、读 UI、坐标点击、中文搜索、逛 B 站;开机自启先等雷电就绪再起服务与隧道 | PhoneMCP + ADB + ADBKeyboard |
| 🛠️ 运维 | 一键体检、日志、二维码、受控重启 | dafeiyu-admin MCP(SSH,只读优先) |
| 🌐 网页 | 只读浏览、搜索、提取网页信息(独立 Chrome) | Browser Use + BrowserMCP(SSE 8010 / SSH 反向隧道) |
| 🛡️ 防护 | 白名单 / 防注入 / 文本橡皮擦 | 多层设计,见踩坑合集 |
plugin/astrbot_plugin_face_convert/ ← 核心插件(AstrBot 插件,直接可装)
plugin/astrbot_plugin_schedule_awareness/ ← 🧭 把她的定时任务实时注入系统提示词
plugin/astrbot_plugin_bili_activity/ ← 自主浏览、持续目标、截图、来源笔记与研究方法
persona/大肥鱼-人格.md ← 人格提示词(可直接导入 AstrBot)
persona/课程记忆-模板.md ← "让她自己悟"的教学记忆模板
docs/部署指南.md ← 从零搭建的路线图
docs/导入指南.md ← 人格 / 课程记忆 / 音色 手把手导入教程
docs/指令手册.md ← 指令速查表(语音开关 / 画图自拍 / 点歌 / 表情包…)
docs/生图玩法.md ← 生图与自拍:模型选择 / 参考图 / 调参笔记
docs/知识库笔记.md ← 知识库接线:功能手册 + 热梗词典怎么搭
docs/知识库-热梗词典示例.md ← 现成的热梗词典(含接法),可直接导入
docs/踩坑合集.md ← ⭐ 最有价值的部分:所有坑与解法
deploy/ ← ☁️ 云上安家套件(Docker Compose / 备份 / 嵌入切换)
deploy/phone_mcp/ ← 📱 模拟器接入(PhoneMCP / 反向隧道 / 启停与开机自启)
deploy/ops_mcp/ ← 🛠️ 云端运维 MCP(health/logs/qr + 受控 restart/heal_ws)
deploy/browser_use/ ← 🌐 只读浏览器任务(Browser Use MCP / 反向隧道 / 启停)
deploy/bili_activity/ ← B站服务、活动开关、升级及验证说明
deploy/incident_20261020/ ← 🧹 旧测试记录隔离脚本与复盘
CHANGELOG.md ← 更新日志
deploy/ ← 云服务器部署套件(Docker Compose + 补丁 + 备份 + 运维笔记)
tests/ ← 回归测试(插件文本规则 / 路径解析)
assets/avatars/ ← 头像素材(18 张,v3-20261025 新立绘)
assets/voice-demo/ ← 音色样本与复刻链路说明
docs/部署指南.md 搭好 AstrBot + NapCat + QQ 小号plugin/astrbot_plugin_face_convert/ 放进 AstrBot 的 data/plugins/
(语音/视频理解优先读插件 config.json 的 asr_api_key 或环境变量 DASHSCOPE_API_KEY,不再绑定 TTS provider)persona/大肥鱼-人格.md 的正文整段粘贴(v2 单块提示词,无需拼接;详见导入指南)docs/导入指南.md 继续deploy/README.md(Docker 一键编排,已实弹演练)astrbot_plugin_face_convert 是一个「出站整形 + 入站翻译」双通道插件:
出站(她说什么)
[旺柴] [吃瓜] 等中括号表情名 → 真正的 QQ 表情段(QQ 不会渲染机器人发的纯文本表情码)['…', '…'] 或消息对象数组时,发送前还原成正常句子,不再冒出方括号和引号入站(她看到什么)
[旺柴] 文本[昵称(QQ号)](管理员标「主人」)、访客私聊标「主人的朋友」——
让她分得清谁在说话;标记只进她的上下文,对方看不到;群里只喊名字没内容时,自动补
「(喊了你一声)」的回应由头可调参数(可选):插件目录下放 config.json 可覆盖 hedge_eraser(嘴硬橡皮擦开关)、
face_cooldown_minutes 和媒体处理参数。3~5 分钟视频已作为默认配置,
旧 config.json 会覆盖新默认值,升级时请按 视频识别说明 合并更新。
回归测试:python tests/test_face_rules.py、python tests/test_video_processing.py。
以下都在 AstrBot 官方插件市场里,与本项目零冲突(都是踩过坑验证过的组合):
| 插件 | 玩法 |
|---|---|
链接解析 parser |
丢 B站/抖音/小红书链接,她自动解析内容接着聊 |
点歌 music |
"我想听xx" → 她发歌/语音条 |
戳一戳 pokepro |
被戳触发反应(反戳/回话/表情)※记得关掉它默认的定时戳任务 |
表情包偷取 stealer |
她"偷"你们聊到的表情包、自动分类,聊天时按情绪发(需配视觉模型) |
表情包生成 memelite |
现做沙雕表情 |
生图 omnidraw |
/画 xxx、/自拍 场景(需配生图 API,如硅基流动有免费模型档) |
💡 小贴士·定时服务配方:AstrBot 内置的「未来任务」能让机器人定时带着人设自己醒来发消息。 两个实测好用的配方,照抄即可(目标会话=你们的私聊,人格选她):
服务 时间 任务说明(照抄) 🌙 催睡觉 每晚 23:30 现在是晚上 23:30 左右。请用平常聊天的语气催主人早点睡觉:嘴上嫌弃他「又熬夜!」,心里舍不得、想多陪一会儿;一两句话就好,然后用发消息工具发给主人。 ☀️ 叫起床 每天 07:00 现在是早上 7 点。请叫他起床:元气满满的早安、嫌弃他赖床,催他别磨蹭;一两句话就好,语气像平时的她,然后用发消息工具发给主人。 💡 装插件时如果卡 GitHub:给安装接口传
proxy前缀加速(见《踩坑合集》#17)。
MIT(见 LICENSE)。人格文本与插件代码可自由使用,转载注明出处即可。