Skip to content

快速开始

本指南带你在 5 分钟内从零跑起一个 AniaBot 机器人。

前置准备

依赖版本要求说明
Go1.25+go.mod,交叉编译友好
NapCat任意近期版本QQ 平台协议端,提供 OneBot v11 接口(不玩 QQ 可跳过)
QQ 官方机器人任意QQ 官方平台:QQ 开放平台创建机器人获取 AppID/AppSecret,WebSocket 收事件无需公网地址(不玩可跳过)
飞书自建应用任意飞书平台:开放平台创建应用 + 开通权限(不玩飞书可跳过)
Telegram Bot Token任意Telegram 平台:向 @BotFather 创建机器人获取 Token,长轮询无需公网地址(不玩 Telegram 可跳过)
Discord Bot Token任意Discord 平台Developer Portal 创建应用获取 Token 并开启 Message Content Intent,Gateway WebSocket 无需公网地址(不玩 Discord 可跳过)
Redis可选缓存后端之一;默认使用内存缓存,无需安装
LLM API Key可选启用 AI 对话时需要(DeepSeek / OpenAI 等)

想用 Redis?

默认缓存驱动为 memory(零依赖,重启清空)。在面板「配置管理」页将 bot.store.cache.driver 改为 redis 并填写地址即可,多实例部署时建议切换。

第一步:部署 NapCat

AniaBot 不直接实现 QQ 协议,而是通过 NapCat 连接 QQ。请先按照 NapCat 官方文档完成部署并登录你的机器人 QQ 号,然后开放网络接口(二选一):

  • WebSocket 服务端:端口如 4455(推荐,事件推送更及时)
  • HTTP:开放 HTTP 服务端(如 6680)并配置 HTTP 客户端上报到 AniaBot 的监听地址

第二步:获取源码

bash
git clone https://github.com/jeanhua/AniaBot.git
cd AniaBot
go mod tidy

第三步:启动与配置

bash
go run cmd/main.go

AniaBot 的配置存储在数据库中,首次启动会自动写入默认配置,并在控制台打印 Web 控制面板的随机初始密码(仅显示一次):

============================================================
  Web 控制面板初始密码(仅显示一次,登录后可修改):
    Xx9aBcDeFg
============================================================

使用该密码登录 http://127.0.0.1:7700,首次登录会自动进入设置向导:先在「平台接入」步骤勾选要启用的平台(QQ(NapCat) 默认勾选,QQ 官方 / 飞书 / Telegram / Discord 可选,填写对应连接配置与管理员 ID),再填 AI 模型配置(Base URL / API Key / 模型),保存后一键重启即可生效。

默认启用 QQ 平台。要同时接入 QQ 官方 / 飞书 / Telegram,在向导中勾选对应平台并填写 AppID/AppSecret 或 Bot Token 即可(或稍后在「配置 → 平台适配器」启用,详见 QQ 官方适配器飞书适配器Telegram 适配器)。多平台可同时在线;QQ 官方与 Telegram 都无需部署额外协议端,Telegram 国内部署可在配置中填写代理或自建 API 网关地址。

完整配置项说明见 配置详解,面板使用见 Web 控制面板

第四步:开始使用

看到插件注册日志后,机器人就已上线:

  • 私聊机器人发送 /help —— 查看已加载插件
  • 群里 @机器人 发送 /help —— 群聊版帮助
  • @机器人 随便说点什么 —— 开始 AI 对话 🎉

启动成功后,系统插件会自动私聊管理员发送「AniaBot启动成功」。

构建发布

bash
make linux     # 交叉编译 Linux amd64 → build/AniaBot
make windows   # 编译 Windows → build/AniaBot.exe
make web       # 重新构建 Web 面板前端(修改 web/ 后需要)
make clean     # 清理 build/

所有存储后端均为纯 Go 实现(无 CGO),交叉编译开箱即用。Web 面板前端产物(ot/adminpanel/dist)不随仓库提交,通过 go:embed 嵌入二进制——全新克隆后需先执行一次 make web(或 cd web && npm run build)再编译,详见 Web 控制面板

目录结构速览

AniaBot/
├── cmd/main.go            # 入口:空白导入平台适配器包(init 注册)+ 注册插件 + 启动
├── web/                   # Web 控制面板前端(Vite + Vue3 + Tailwind)
├── common/
│   ├── adapter/           # 平台适配器抽象:Adapter(公共契约)+ QQExt(可选能力)+ Definition/Register 注册表
│   ├── bot/               # bot.Bot(公共能力)+ bot.QQ(QQ 专属可选接口)
│   ├── plugin/            # 插件接口:Meta / Plugin / PlatformEventHandler
│   └── model/             # message(通用消息段)/ msgchain(消息构造器)/ command
├── bot/
│   ├── core/              # 核心:插件生命周期、事件分发、多适配器容器 + ID 前缀路由、DI、配置中心
│   ├── adminpanel/        # Web 控制面板后端(配置/状态 API + 内嵌前端)
│   ├── adapter/napcat/    # NapCat WebSocket / HTTP 适配器(QQ 平台)
│   ├── adapter/qqofficial/ # QQ 官方适配器(QQ 开放平台 API v2,WebSocket 网关)
│   ├── adapter/feishu/    # 飞书适配器(官方 SDK,长连接 / Webhook)
│   ├── adapter/telegram/  # Telegram 适配器(Bot API,长轮询)
│   ├── adapter/discord/   # Discord 适配器(discordgo,Gateway WebSocket)
│   ├── component/         # AI 引擎:aichat / llmtool / functool
│   ├── plugins/           # 七个内置插件(系统/日志/复读/防撤回/请求拦截/AI/每日新闻)
│   └── utils/             # 命令解析、消息提取等工具
└── custom/                # 自定义插件示例与模板

新增平台(如 Telegram)= 在 bot/adapter/ 新建一个实现公共 Adapter 接口的包,init()adapter.Register(...) 注册,然后在 cmd/main.go 加一行空白导入即可,框架核心零改动。

配置存于数据库(默认 ./data/aniabot.db,可用环境变量调整,见 配置详解)。

下一步

基于 MIT 许可证发布