通过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

出现下面界面及安装完成

Snipaste_2025-10-08_15-18-30.png

使用TUI-CLI 工具启动napcat

napcat 

2.修改配置登录QQ

接下来就是使用界面配置和登录QQ的过程,登录过程需要进行扫码。

在配置里面开启开机自动启动和WebUI,配置时要设置登录的token。

Snipaste_2025-10-08_15-26-58.png
Snipaste_2025-10-08_15-46-46.png

出现下面界面及配置完成

Snipaste_2025-10-08_15-30-21.png

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

Snipaste_2025-10-08_15-47-17.png

3.配置WebSocket客户端

新建WebSocket客户端

Snipaste_2025-10-08_15-50-00.png

配置参数

选择启用

名称自定义一个

URL填写 ws://localhost:6199/ws

Token自定义一个,记住后面配置AstrBot要用

Snipaste_2025-10-08_15-51-31.png

4.AstrBot添加消息平台

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

Snipaste_2025-10-08_16-15-41.png

填写配置

名称自定义

启用选择

主机地址一般默认0.0.0.0

端口号6199,上一步配置的端口号

token填写上一步配置的

Snipaste_2025-10-08_16-15-55.png

点击保存

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代理的地址也要填写宿主机的真实地址。