书接上回,折腾完家里老电脑的Debian系统后,我就打算在上面部署一个QQ机器人。最近所有人都在讨论OpenClaw,也有AstrBot这样的AI QQ机器人框架,但是我目前没有这样的需求,也不习惯和AI聊天,就打算部署一个不接AI的传统QQbot。我现在能想到的主要需求很简单:

  • 返回服务器(老电脑)状态
  • 定时检查并返回学院官网的新通知
  • 定时检查并返回学校教育邮箱的新邮件
  • 返回服务器上qBittorrent客户端的统计信息

这些任务也完全不需要麻烦AI来完成(但是插件代码都是AI写的,因为我不会)。

开始在服务器上部署机器人。我选择的是NapCat(协议端)+NoneBot2(逻辑端)。

配置NapCat

在我的电脑上ssh登录服务器后直接运行NapCat安装命令:

curl -o \
napcat.sh \
https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh \
&& bash napcat.sh \
--docker n \
--cli y

其中我选择不使用docker,并安装cli(实则后面都用ssh和WebUI配置了)。然后就可以打开WebUI登录机器人QQ号。WebUI默认端口为6099,token可在日志中看到,也可以在/opt/QQ/resources/app/app_launcher/napcat/config/webui.json中查看(Linux)。可以使用扫码登录,但是机器人QQ号最好实名认证,不然可能会被踢下线。AI说扫码异地登录也有风险被踢,但是我实测没被踢。

登录成功后在WebUI点击网络配置新建WebSocket客户端(Reverse),URL填ws://127.0.0.1:port/onebot/v11/ws,此处的port可自行设置(与WebUI端口不同),用于与NoneBot对接。

配置NoneBot

接下来安装NoneBot。首先安装python。

sudo apt install python3 python3-pip python3-venv git -y

然后进入想要创建项目的目录创建bot目录。

mkdir bot-Multi
cd bot-Multi

创建虚拟环境。

python3 -m venv .venv

激活环境。

source .venv/bin/activate

安装nb-cli。

pip install nb-cli

然后就可以创建项目了:nb create。按提示进行配置,其中Driver要包含WebSockets,Adapters要选OneBot v11。

创建完成后,打开.env文件:nano .env写入相应内容。

DRIVER=~fastapi+~websockets
HOST=0.0.0.0
PORT=6100
COMMAND_START=[""]
API_TIMEOUT=30.0

其中PORT即为NapCat中配置的WebSockets客户端端口,COMMAND_START默认为"/",可以改为空。

最后安装依赖。

pip install nonebot-adapter-onebot
pip install "nonebot2[fastapi,websockets]"

就可以启动bot了。

nb run

successfully ran

因为我用ssh操作,直接退出bot会停止,所以使用screen工具给NapCat和NoneBot分别开一个窗口保证一直运行。

安装插件

目前机器人还没有任何功能。可以在NoneBot插件商店下载常用插件。

# 返回服务器状态
nb plugin install nonebot-plugin-status
# 基础定时功能
nb plugin install nonebot-plugin-apscheduler

我还使用AI写了定时返回学院官网新通知、定时返回邮箱新邮件和返回qBittorrent统计新信息的脚本。其中获取邮件必须开启邮箱的IMAP/SMTP服务,并使用专用授权码,而不是邮箱密码。以我们学校使用的Coremail(盈世邮箱)为例,在网页端打开设置->安全设置->客户端专用密码->生成专用密码,选择IMAP协议,记下授权码(仅能查看一次),即可使用。

plugins


不知从什么时候开始,AI圈好像进入了一种疯狂的竞赛,不断有新的产品出现,不断有新的名词被提出,人们更是被裹挟进“跟不上时代”的焦虑中。这看似生机勃勃的景象也充满炒作、利益、资本的暗流涌动。就如这两天OpenClaw的病毒式爆火,起初我觉得这是一个好的项目,即使不完善,但打通AI和其他软件甚至系统的联系,当然也是AI的一个发展方向。可当我看到互联网上铺天盖地的宣传和追捧,甚至各类企业官方的入局和模仿,让我对这个项目失去了好感。可是鄙夷的同时,我又该如何面对这一势不可挡的浪潮,在这一充满机遇的时代,跟上脚步的同时找寻自我?我还没有找到问题的答案。

fxxking ai

在这张梗图上,OpenClaw还叫ClawdBot