Skip to content

QQ 机器人

使用 NapCat 协议框架搭建非官方 QQ 机器人

前言

相比官方机器人(需要审核、权限受限),使用 NapCat 这类第三方协议框架可以让普通 QQ 账号直接作为机器人,功能更自由、接入门槛更低。

但代价是:这类框架模拟正常客户端行为,属于非官方手段,存在被腾讯封号的风险。

所以在正式部署之前,有必要先做好「养号」工作。

风险说明

注意

使用 NapCat / LLOneBot / Lagrange 等协议框架,违反了 QQ 用户协议,随时可能遭遇:

  • 账号被限制登录
  • 账号被永久封禁

建议使用小号操作,不要用绑定了重要信息的主账号。

第一步:养号

新注册或长期未活跃的 QQ 号直接挂机器人,非常容易被风控。养号的目的是让账号看起来「像正常人在用」。

养号方法

  • 时间:至少养 1~2 周,越久越好
  • 正常聊天:加几个活跃群,偶尔发言,不要只潜水
  • 登录行为:用手机 QQ 正常登录,避免频繁异地登录
  • 不要急着挂脚本:养号期间不要运行任何自动化程序

判断养号是否到位

  • 账号可以正常加群、发消息,没有频繁弹出验证码
  • 登录时不频繁触发设备锁或安全验证

第二步:安装 NapCat

NapCat 是目前比较流行的 QQ 协议框架,基于 NTQQ 内核,支持 OneBot 11 协议,可以配合 n8n、koishi、nonebot2 等框架使用。

安装方式

NapCat 提供 Docker 和本地两种部署方式,以 Docker 为例:

bash
docker run -d \
  --name napcat \
  -e ACCOUNT=你的QQ号 \
  -p 3000:3000 \
  mlikiowa/napcat-docker:latest

启动后访问 http://localhost:3000 进行扫码登录。

配置 OneBot WebSocket

登录成功后,在 NapCat 的网页控制台中开启 正向 WebSocket(或反向 WebSocket),端口默认 6700,后续机器人框架通过这个接口与 QQ 通信。

第三步:接入机器人框架

NapCat 实现了 OneBot 11 协议,可以对接多种框架:

框架语言特点
NoneBot2Python插件生态丰富,适合复杂业务
KoishiTypeScript可视化配置,上手简单
n8n-无代码工作流,适合简单自动化

以 NoneBot2 为例,连接 NapCat:

python
# .env
DRIVER=~fastapi+~websockets
ONEBOT_WS_URLS=["ws://localhost:6700"]

降低封号风险的建议

  • 控制消息发送频率,不要每秒发多条消息
  • 避免大量加群、批量添加好友
  • 机器人只在固定几个群活动,不乱发广告
  • 定期「休息」,模拟人类使用习惯(凌晨少活跃)
  • 出现验证码时及时人工处理,不要忽略

参考资料