通过AstrBot搭建一站式 Agentic 聊天机器人平台
利用Astrbot框架,搭建一个QQ个人账号的机器人,在用上里面的各种插件实现一些稀奇古怪的功能,可以自行开发插件完成自己想要的功能。
下面的提到的内容在官方文档里都有更详细的介绍,下面只是简化后的必须步骤,可比较容易理解。
AstrBot项目源码地址:https://github.com/AstrBotDevs/AstrBot
AstrBot官方文档:https://docs.astrbot.app/what-is-astrbot.html
NapCatQQ项目源码地址:https://github.com/NapNeko/NapCatQQ
NapCatQQ官方文档:https://napcat.napneko.icu/guide/start-install
准备条件
1.一台电脑最好是云服务器,可以长期运行Windows系统也可以部署但未尝试过,可以直接参考官方文档。
2.本次在Ubuntu 22系统上部署的,默认电脑已经安装docker ,并支持Compose部署。
直接源码部署
一·、运行环境安装
改项目依赖于Python,并且版本大于3.10
1. Python运行环境
有些云服务系统默认安装了Python
python3 --version
如果出现的是版本号并且大于3.10就可以不用安装了,没有出现版本号就要安装。
更新系统包列表
二、AstrBot项目部署
本次采用手动部署方式,不使用任何第三方的平台部署。
1.获取项目源码
通过Git获取
git clone https://github.com/AstrBotDevs/AstrBot && cd AstrBot
这一步已经进入到了AstrBot 目录下
在AstrBot 目录下安装项目的所有依赖
uv sync
2.后台运行项目
下面指令都在AstrBot 目录下执行
cd /root/AstrBot
后台编译运行项目
三、消息平台部署
消息平台可以接入很多个我们接下来接入QQ个人号
1.NapCatQQ安装部署
通用安装,安装过程全部默认即可
curl -o \
napcat.sh \
https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh \
&& bash napcat.sh
出现下面界面及安装完成

使用TUI-CLI 工具启动napcat
napcat
2.修改配置登录QQ
接下来就是使用界面配置和登录QQ的过程,登录过程需要进行扫码。
在配置里面开启开机自动启动和WebUI,配置时要设置登录的token。


出现下面界面及配置完成

通过IP加端口6099方式访问WebUI

3.配置WebSocket客户端
新建WebSocket客户端

配置参数
选择启用
名称自定义一个
URL填写 ws://localhost:6199/ws
Token自定义一个,记住后面配置AstrBot要用

4.AstrBot添加消息平台
添加消息平台,选择QQ个人号

填写配置
名称自定义
启用选择
主机地址一般默认0.0.0.0
端口号6199,上一步配置的端口号
token填写上一步配置的

点击保存
5.验证是否配置成功
前往 AstrBot WebUI 控制台,如果出现 aiocqhttp(OneBot v11) 适配器已连接。 相关蓝色的日志,说明连接成功。
此时,你的 AstrBot 和 NapCatQQ 应该已经连接成功。使用 私聊 的方式在 QQ 对机器人发送 /help 以检查是否连接成功。
四、文转图工具本地部署
1.Docker 安装
端口不要修改。最好部署在和机器人同一台电脑上。
docker run -itd -p 8999:8999 soulter/astrbot-t2i-service:latest
2.服务应用
在配置界面系统配置里面找到API地址输入即可。
http://localhost:8999

保存后自动重启。
Docker Compose部署
一、AstrBot部署
AstrBot.yml 配置文件
version: '3.8'
# 当接入 QQ NapCat 时,请使用这个 compose 文件一键部署: https://github.com/NapNeko/NapCat-Docker/blob/main/compose/astrbot.yml
services:
astrbot:
image: soulter/astrbot:latest
container_name: astrbot
restart: always
ports: # mappings description: https://github.com/AstrBotDevs/AstrBot/issues/497
- "6185:6185" # 必选,AstrBot WebUI 端口
- "6199:6199" # 可选, QQ 个人号 WebSocket 端口
# - "6195:6195" # 可选, 企业微信 Webhook 端口
# - "6196:6196" # 可选, QQ 官方接口 Webhook 端口
environment:
- TZ=Asia/Shanghai
volumes:
- ./data:/AstrBot/data
# - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro映射端口,后续可根据安装的插件进行端口增加。
二、AstrBot 文转图服务部署
t2i.yml文件
version: "3.9"
services:
astrbot-t2i:
image: soulter/astrbot-t2i-service:latest
container_name: astrbot-t2i
restart: always
ports:
- "8999:8999"
stdin_open: true
tty: true
在AstrBot中配置文转图服务的地址时要是使用宿主机的真实IP,不能使用127.0.0.1等指向本机的地址。
三、NapCat部署
napcay.yml文件
# docker-compose.yml
services:
napcat:
environment:
- NAPCAT_UID=${NAPCAT_UID:-1000}
- NAPCAT_GID=${NAPCAT_GID:-1000}
ports:
- 3000:3000
- 3001:3001
- 6099:6099
container_name: napcat
network_mode: bridge
restart: always
image: mlikiowa/napcat-docker:latest
volumes:
- ./napcat/config:/app/napcat/config
- ./ntqq:/app/.config/QQ镜像安装完成后进行容器终端,查看输出的二维码,QQ扫码登陆。
因为这几个容器是独立安装的,没有进行组网,ws代理的地址也要填写宿主机的真实地址。