ai-companion-kit 是 pinganbbOvO 维护的 MIT 项目,目标很具体:给聊天模型补上两样东西,一是记得住人、说话有节奏的陪伴层,二是能操作安卓手机的手。仓库由几个可以分开使用的包组成,拼在一起就是一只住在 QQ 里、还能点手机屏幕的 AI。
给聊天模型补上记忆和手
普通聊天助手有两个共同短板。对话结束后不记得你,第二天要从头介绍;回复瞬间整段出现,群聊、私聊、深夜都用同一种客服腔。另一个短板是碰不到设备:它能写代码、查资料,却开不了 App、点不了按钮、看不到手机屏幕。这个项目分别用 companion 和 phone-mcp 回应这两件事。
三个可拆开的部件
ai-companion 负责陪伴。记忆按人存,不按会话存,同一个人在群里和私聊里说过的事能共享;角色卡决定说话方式,还带一个检查命令,防止把角色写成客服手册;拟人化发送会控制打字时长、分条和条间停顿;唤醒策略决定什么消息该回、什么场合应该安静。
phone-mcp 通过 adb 驱动真机或模拟器,提供 34 个 MCP 工具,覆盖点按、滑动、中文输入、截图、录屏和连招。qzone 与 qzone-mcp 让 AI 自己发 QQ 空间,七个工具分别负责发说说、看动态、点赞和评论,并内置限额:发说说每分钟 3 次、每天 20 次,评论每 10 分钟 2 条、每天 10 条。图片只能从白名单目录发,没有删除和拉黑工具。
own-life 是定时静默唤醒:每 2.5 小时往上下文里投一条提示,凌晨 3 点到 8 点不叫,一天最多 6 次,状态存在本地文件里,重启不会补发一堆。
跑通最小陪伴
先只跑聊天,不要一上来就接手机。README 给出的最小流程是:
cd packages/companion |
npm start 需要一个 OneBot 实现作为 QQ 网关,README 提到的 SnowLuma 不在仓库里,这一步没有一行命令能完成,需要照教程配置。手机部分单独安装:
cd packages/phone-mcp |
然后在 MCP 客户端里加上:
{ |
运行需要 Node.js 18 及以上。以下内容按官方 README 整理,未在本机完整实测;QQ 网关、手机型号和系统权限都可能改变实际结果。
一个陪聊加备用机的场景
把旧安卓手机插上电源、打开开发者调试,只装聊天和签到类应用。白天 AI 在 QQ 上按拟人节奏回消息,记得你昨天提过的事;晚上用 phone-mcp 打开某个 App 完成签到,遇到验证码就停下来等人处理。日记功能把“她自己的一天”单独存成 JSONL 和每日 Markdown,和关于你的记忆分开,不会把两本账混在一起。
与普通 QQ 机器人框架的区别
常见的 QQ 机器人框架以命令和插件为中心,适合做查询、提醒和群管理;这个项目把重点放在人设、长期记忆和说话节奏上,再往外接设备控制。和“把聊天记录整段塞进上下文”的做法相比,按人存记忆、日记单独存放,更不容易在长对话里丢失重点。市面上的陪伴类 App 通常封闭且不能自托管,这套工具则允许改角色卡、换模型、看本地数据。
风控、隐私与权限
腾讯对 QQ 自动化有风控。README 的作者记录过,用每分钟 20 条左右的频率持续发送后,服务端直接不回包,所以项目里的限额是踩坑之后调出来的,不建议为了响应速度调大。账号被限速甚至封禁的风险由使用者承担。
phone-mcp 交出的是真手机的完整操作权。README 明确建议不要接在装着支付、银行 App 的主力机上,优先用模拟器或备用机。companion 会把对话存在本地 data/ 目录,除了发给模型的部分不出本机;换模型供应商前要看清对方的数据政策。自动发消息只应对知情且同意的联系人使用,批量加人、营销和骚扰都不在合理用途内。
适合谁折腾
适合愿意折腾 Node、OneBot 网关和 adb 的开发者,或想做陪聊、个人助理原型的人。完全不想碰命令行的人即使有一键安装脚本,也会卡在网关和手机权限上。需要稳定商用客服系统的团队,应选有审计、权限和合规支持的产品。
仓库与文档
- 仓库:pinganbbOvO/ai-companion-kit
- 快速开始:15 分钟跑起来
- 完整教程:从零搭一只小鲸鱼
- 许可:MIT
