MaiBot:一个想当群友的 AI

我最近在参与开发一个叫 MaiBot 的项目。说它是 QQ 群聊机器人,其实不太准确,因为它的设计目标不是回答问题或者执行命令。它想做的事情是潜伏在群里,像一个真人一样聊天。会学群里的黑话,会打错字,会潜水几个小时然后突然冒出来插一嘴。

在国内 QQ 机器人圈子里,这个项目已经有 4300 颗星,B站教程播放量几十万。但英语世界基本没人听说过它。

怎么来的

创作者千石可乐(SengokuCola)是北师大认知神经科学的学生,自称编程门外汉,靠 Cursor 写代码。最初他只是给一个叫"牛牛 bot"的现有机器人写扩展功能,写着写着发现得全部重来,于是 2025 年 2 月发布了第一个独立版本,以 NoneBot2 插件的形式通过 NapCat 接入 QQ。

然后项目迭代得非常快。11 个月,至少 15 个版本,仓库搬了三次(从 SengokuCola/MaiMBotMaiM-with-u/MaiBot 再到现在的 Mai-with-u/MaiBot),3374 次提交,551 个合并的 PR。每个大版本都是架构级别的重做。

挑几个关键版本:

  • v0.5.x(2025年2-3月):最初的样子。单体 NoneBot2 插件,基本 LLM 聊天加记忆功能,MongoDB 存储。能用,但架构撑不了多久。
  • v0.6.0(3月):核心重构成独立服务 MaiCore,跟消息平台解耦。引入了 HeartFlow 思维系统,后面细说。
  • v0.8.0(6月):插件广场上线,token 消耗降低,REST API 换成纯 WebSocket。
  • v0.11.0(10月):记忆系统又重写了一遍,加上了主动发言和多人格切换。
  • v0.11.4(11月):终于有了 WebUI,不用手编 TOML 了。React 19 + FastAPI。
  • v0.12.2(2026年1月):当前稳定版。

一个认知神经科学学生用 AI 辅助编程工具,11 个月造出了一个 24 仓库的生态,包括 Minecraft 伙伴 MaiCraft、VTuber 项目 Amaidesu、桌面宠物、Android 适配器,还有专用的知识库和消息协议库。架构每一两个月推翻重来一次。我不确定该佩服还是担心。

HeartFlow:不是你 @ 它才回你

多数聊天机器人是请求-响应模式,你说话,它回复。MaiBot 不这么干。它有一个叫 HeartFlow(心流)的持续认知循环,每个群会跑一个独立的 SubHeartflow 实例,不停地"看"群里在聊什么。

三种运行模式:

  • 普通聊天:给每条消息打"激活度"分数,超过阈值才回。大部分时候沉默。
  • 专注聊天:每 3 秒跑一次观察循环,自主决定该回复、沉默、发语音、禁言某人还是画张图。
  • 自动模式:根据群活跃程度在前两者之间切换。

实际效果是机器人可能安静潜水好几个小时,突然跳进一个对话。群友很难判断这到底是不是真人。

架构上用的适配器模式:

1
平台客户端 ↔ 适配器(WebSocket)↔ MaiCore(端口 8000)↔ WebUI(端口 8001)

MaiCore 是独立的 FastAPI 服务。适配器负责对接平台,主要是 QQ(通过 NapCat),社区也做了 Discord 和 Android 的。Docker 部署需要四个容器。

记忆和社交学习

记忆系统分好几层。短期记忆管理最近的消息窗口,有压缩机制,大概能做到 5 倍上下文扩展。长期记忆用了 LPMM,建在 HippoRAG 2 上面,一个基于海马体索引理论的 RAG 框架。流程是文本嵌入、Faiss 索引、实体抽取、知识图谱构建,检索时用 ReAct 模式迭代优化查询。项目方自己管这个叫"麦麦的海马体和新皮层"。

每个用户、每个群都有独立的关系记录,跟踪亲密度分数,记录对不同群社区文化的印象。

社交学习是我觉得最有意思的部分。MaiBot 会模仿群成员的说话风格,学别人的用词、语气、俚语。有个黑话挖掘系统,自动检测群里的高频特定用语,然后在合适的场景中用出来。架构上"想什么"和"怎么说"是分开的,所以你可以在不改推理逻辑的情况下调整人格风格。它还会故意打字错误,连发好几条碎片消息,大小写不一致。就是不想让你觉得它是机器人。

同类项目

跟其他项目比一下可能更容易理解 MaiBot 在做什么。

Project AIRI 想做 Neuro-sama 那样的 AI VTuber,重点是语音、游戏互动和 3D 形象,TypeScript 写的,面向多平台。和 MaiBot 方向完全不同:AIRI 多媒体能力强,MaiBot 只做群聊文本,在社交推理方面更深。

SillyTavern(酒馆AI)是角色扮演前端,所有互动由用户主导,你不推它就不动。MaiBot 是自己在群里活动的,不需要有人跟它对话才能运转。

AstrBot 和 Kirara-AI 是通用机器人框架,多平台支持好,功能覆盖广。MaiBot 放弃了广度,只做一件事:在群聊里尽可能像个真人。

据我所知,没有别的开源项目同时做了持续认知观察、神经科学式知识检索、自主社交学习、逐用户关系建模。代价是它基本只能跑中文 QQ 群,资源开销也不小。

在中文互联网上很火,但也仅限于此

在英语世界搜不到这个项目的讨论。没有 Reddit 帖子,没有 Twitter 话题,没有 YouTube 视频。社区全部活跃在中文平台上。

B站上创作者的教程视频"如何在你的群偷偷放一只 DeepSeek 成为你的赛博群友"有 32 万播放、1.8 万收藏,技术教程能有这个互动率相当夸张。另一个概念介绍视频 63 万播放。社区成员自制的部署教程最高也有 5 万多播放。大家管 MaiBot 叫"赛博生命"“数字生命”,不太把它当常规机器人看。

GitHub 上 470 多次 fork,issue 编号到 #1442+ 了,但 Q&A 帖经常没人答,维护团队把技术支持集中在五个 QQ 群里。CSDN 上也有好几篇播放量不错的部署指南。项目走红的时间跟 DeepSeek 在国内爆火几乎完全重合,应该不是巧合。

用户抱怨最多的是部署复杂(四个服务要配)、WebSocket 容易断、LLM 调用费钱。维护者一直在治这些问题:WebUI 取代了手编配置、Docker 简化了安装、v0.8.0 专门降了 token 消耗。还有一个一直存在的尴尬:有人把 GPL-3.0 的免费软件拿去卖钱,反盗版警告现在直接写在启动流程里。

怎么看这个项目

技术上让我印象比较深的几点:HeartFlow 的持续认知循环确实造出了不一样的交互体验;LPMM 知识图谱比一般的 RAG 方案精细很多;LLM 编排层有三级故障转移和跨供应商负载均衡;插件系统有 12 个以上的 API 类别,生态想得比较周全。

但问题也明显。专注聊天模式每次交互要调好几次 LLM,规模化运行很贵。虽然有适配器抽象,整个项目还是围着 QQ 转的。就算用 Docker,你还是得配 API key、搞清楚几个服务之间的 WebSocket 怎么连、理解 TOML 配置文件。文档更新跟不上代码迭代的速度,维护者自己也承认"可能无法及时更新"。最头疼的可能是每一两个月来一次架构大改,已经在跑的实例升级起来很痛苦。

让我一直在想的是创作者对这个项目的定位。他说得很直接:“人类需要的 AI 陪伴,不一定是一个能解决一切问题的’有用助手’,而是一个会犯错、有自己感知和想法的实体,一个’生命体’。” 4300 个星和几十万播放量说明这个想法是有市场的。

我们习惯了讨论 AI 应该多聪明、多有用,MaiBot 问的是另一个问题:AI 能不能不那么完美,反而更让人想跟它待在一起?B站上那个"当你发现群里发了 99+ 条消息的群友是 DeepSeek"的视频 63 万播放,可能就是某种回答。

Licensed under CC BY-NC-SA 4.0