AstrBot和NapCat打造QQ智能体机器人助手

前面本渣已经聊过龙虾(OpenClaw)和爱马仕(Hermes)了,这里开一个新坑,用类龙虾的智能体AstrBot和QQ的托管服务NapCat来打造一个QQ的个人智能体。
前面龙虾文章请参考:OpenClaw龙虾 VS Hermes爱马仕

准备工作:

  1. 需要一台x86的电脑并且安装好FnOS,具体参考文章:国内团队开发的NAS操作系统飞牛OS
  2. 要自费开通大模型的API接口,我这里用的是阿里百炼。

方案1:AstrBot + QQ机器人

优点:少部署一个NapCat,部署相对简单。
缺点:QQ助手不能分享给别人用,只能自己用。

本渣用的服务器是安装了FnOS(飞牛NAS)系统的小主机。配置是:

  • 英特尔 N100(x86) CPU 4核4线程(一般2核就够用,云服务器选2C就行)
  • 16G DDR4 内存(建议大于等于8G)(云服务器一般2G就够用)
  • 512G SSD 硬盘(建议大于等于256G)(云服务器只部署AstrBot+NapCat,40G也够用了,但是建议用1panle来管理Docker)
    本渣不知道ARM、Mac能不能这样部署啊,有需要找其他文章看看

AstrBot官网在:https://astrbot.app/https://github.com/AstrBotDevs/AstrBot

(1)在FnOS上安装AstrbotBot,因为是官方应用,直接安装即可。
图片

(2)最麻烦的是要找到登录方法,要去Docker管理里面找到日志查看。
图片
譬如我的

  • 登录方式是:http://127.0.0.1:6185
  • 初始登录用户是:astrbot
  • 初始登录密码是:a**********C

(3)登录后第一件事是配置大模型
在菜单栏的欢迎界面模型提供商都可以配置大模型
图片
你是哪家的大模型,如阿里、Kimi、MiniMax之类,就选择对应的大模型供应商方式。OpenAI Compatible是最通用的,如果没有专用的就选OpenAI Compatible
图片
本渣用的是阿里百炼,就在阿里云的控制台里面创建一个API Key,入口是:https://bailian.console.aliyun.com/cn-beijing#/home
图片
创建了API Key之后,复制这个key备用
图片
找到并却确认阿里百炼的API URL
我用的是华北2(北京),所以URL就是:https://dashscope.aliyuncs.com/compatible-mode/v1
图片
有了key和url,就继续在Astrbot里面配置
图片
点击【获取模型列表】
在可用模型里面,选择一个你需要使用的模型,譬如我选择的是qwen3.5-35b-a3b,当然你也可以选DeepSeek、Kim、GLM等。这就是百炼的好处,整合了200多个主流大模型。
图片
添加的时候,保持选项卡的默认值不变即可。
图片
添加好后,测试一下连通性,显示绿色就是成功了。
图片

(4)创建机器人
配置好大模型后,接着就是配置一个机器人了。
创建机器人的时候,需要确定机器人的对接方式,本文章提供两种方法:

  1. QQ官方机器人(WebSocket)
  2. OneBot V11
    现在本渣线演示第一种:QQ官方机器人(WebSocket) = QQBot
    图片
    接着需要登录QQ开放平台:https://q.qq.com/#/
    需要用你的主QQ登录
    图片
    创建一个QQBot:https://q.qq.com/qqbot/openclaw/
    图片
    创建一个机器人,把APPID和AppSecret填进去对应的位置,先保存一下。
    图片
    回头还要在文件配置里面,配置一个默认对话模型,例如选择我配置好的qwen3.5.
    图片
    接着配置人格,暂时可以用默认,先跑通。记得💾保存配置。
    图片
    回到配置QQBot的地方,用主QQ(大号)扫码添加这个机器人为好友,就能可以开始聊天了。
    图片
    扫码后就可以开始聊天了啦
    图片
    测试成功了,这种的QQ助手是24小时在线的。
    图片

方案2:AstrBot + NapCat+

这个方案是在上面使用AstrBot的基础上,将QQBot替换成NapCat。
前提是你要还有一个小号QQ,如果你只有一个QQ号,不建议用这种方案。
作者链接:https://github.com/NapNeko/NapCatQQ 有条件的给作者一个star支持一下

(1)安装NapCat
我们继续在FnOS上安装NapCat,因为没有官方应用,我们要用Docker来安装。
在FnOS的Docker的镜像仓库里面下载叫mlikiowa/napcat-docker的镜像。
图片
然后去到容器里面安装,安装注意的点有:

  • 开机自动启动【✅】
  • 端口设置,我用的3002和6099,如果有冲突换成别的。
  • 存储位置,要自己新建一个目录叫/NapCat的。具体设置出来是在/vol1/1000/NapCat。用来放置/app/napcat/config和/app/.config/QQ
  • 变量环境保持不变
  • 功能保持不变
  • 网络选择trim-default,要保持跟Astrbot一样的网络(即一样的网段),我的网段是172.18.0.0,确保AstrBot和NapCat两个Docker应用都在同一网段(网络环境),因为AstrBot本身自己也是一个Docker。
    图片

(2)运行并配置NapCat
在FnOS的Docker中的镜像运行NapCat这个容器,并确保AstrBot也是运行的。
图片
成功运行了NapCat容器就查看一下运行日志,找到登录方法。
图片
一般你会看到如下的日志,登录的网址是:127.0.0.1:6099,而Token是0**********2。如果你不是在内网操作FnOS,先要完成内网穿透才能访问。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
06-01 08:43:33 [info] [PacketHandler] 初始化成功
06-01 08:43:33 [info] [NapCat] [Core] NapCat.Core Version: 4.18.4
06-01 08:43:33 [info] [NapCat] [WebUi] WebUi Token: 0**********2
06-01 08:43:33 [info] [NapCat] [WebUi] WebUi User Panel Url: http://127.0.0.1:6099/webui?token=0**********2
06-01 08:43:33 [info] [NapCat] [WebUi] WebUi User Panel Url: http://[::]:6099/webui?token=0**********2
06-01 08:43:33 [info] 等待网络连接...
06-01 08:43:34 [info] 网络已连接
06-01 08:43:34 [info] 没有 -q 指令指定快速登录,将使用二维码登录方式
06-01 08:43:34 [warn] 请扫描下面的二维码,然后在手Q上授权登录:
06-01 08:43:34 [warn]

【这里是一个二维码,省略了】

二维码解码URL: https://txz.qq.com/p?k=PpxwCBj1vocge1CzMPFWK8OF5UMJfOS3&f=1600001615
如果控制台二维码无法扫码,可以复制解码url到二维码生成网站生成二维码再扫码,也可以打开下方的二维码路径图片进行扫码。
06-01 08:43:34 [warn] 二维码已保存到 /app/napcat/cache/qrcode.png

图片
进入网址,并输入Token登录。
图片
用你的副QQ号(小号)登录NapCat,切记是用小号,不是你的大号(主QQ)。如果系统提示重复登录、二维码无效之类的错误,重启NapCat即可解决。
图片
在【网络配置】中【新建】一个【Websocket客户端】
图片
必须配置的是:

  • 启动【✅】
  • URL:ws://astrbot:6199/ws严格按照这个写法
  • 消息格式:Array
  • Token:空着
  • 其他都默认值
    图片

(3)回到Astrbot继续配置一个机器人
创建一个新机器人,用OneBot V11的平台
图片
其他的按照下面截图的方式配置

  • 启动【✅】
  • 反向Websocket主机:0.0.0.0
  • 反向Websocket端口:6199
  • 反向Websocket Token:空着。(如果在NapCat的网络配置了Token,这里要一模一样)
    图片
    同样的,配置文件要选择一个大模型,记得点💾保存
    图片

(4)测试连通性

  1. 大号QQ加你的小号QQ为好友,切记小号QQ不能登录PC端,不然会挤掉NapCat的登录。
  2. 然后大号QQ跟小号QQ聊天,看看AI有没有接管。
    测试成功了,只要你FnOS上的NapCat和Astrbot不挂掉的话,这个QQ聊天机器人都会在线的
    图片

进阶配置

修改QQBot的形象和名称

在创建QQ机器人的页面,点击小铅笔,可以修改QQBot的头像和名称。
图片

修改NapCat的形象和名称

因为NapCat的形象和名称是来自你的小号QQ的,所以你直接在手机上修改这个小号QQ的名称和头像即可。
图片

Astrbot配置-普通配置

Astrbot可以建立多个配置,为不同的机器人使用,一般只要一个Default就够了。看看有哪些配置需要弄的
AI大模型的设定,至少一个【默认对话模型】,其他模型都可以不设置
图片
【人格】可以让豆包给写一个你喜欢的动漫人物的性格,在【人格设定】中可以增删改。本渣用的是日漫THE New Gate中的舒尼作为聊天机器人的性格。
图片

Astrbot的Token用量

可以在Astrbot的【数据统计】中查看调用词元(Token)的数量
图片
也可以在阿里百炼中查看,或在阿里云APP中查看账户余额来估算用了多少算力
图片
一个问题,大约0.01元的成本,平均每天不会超过0.5元的使用成本。
如何薅阿里百炼的羊毛?
阿里百炼有17个模型,有100万个免费Token,粗略测试了一下,一个模型,大约可以问几十个问题。
图片

配置embedding模型

embedding模型适用于知识库的向量化计算,一般成本都很低,可以选择本地部署(如Ollama基本够用),阿里百炼也有,成本也不高。
图片
配置也比较简单,直接用text-embedding-v4就好
URL是:https://dashscope.aliyuncs.com/compatible-mode/v1
API Key跟LLM对话大模型的一样
图片