NapCat 接入¶
本篇把 NapCat 的正向 WebSocket 接到月璃。 先完成后端安装,准备机器人 QQ 和用户本人 QQ 两个不同账号。 群聊准入与回复规则见接入总览。
安装并登录协议端¶
Windows 可使用 NapCat 的 Shell 发行包。
安装与该发行版兼容的桌面 QQ,从 NapCat 发布页面取得 NapCat.Shell.zip 并解压。
协议端应解压到独立目录,不应放入月璃的适配器插件目录。
Windows 11 运行包内 launcher.bat,Windows 10 使用 launcher-win10.bat。
按启动提示完成机器人账号扫码登录,保持协议端进程运行。
使用其他安装形态时,以协议端自身的安装提示完成 QQ 依赖和登录。
月璃的 uv sync 不会安装协议端,npm ci 也不会替协议端登录。
通过启动日志提供的 NapCat WebUI 地址进入协议端管理界面;该界面与月璃面板相互独立。
登录后按界面要求更新管理密码,确认页面显示的 QQ 号与机器人账号一致。
管理页面可访问不代表 OneBot WebSocket 已启用,仍需配置网络服务。
创建正向 WebSocket 服务端¶
在 NapCat WebUI 打开网络配置,点「新建」,选择「WebSocket 服务端」。 它是正向连接:NapCat 等待月璃适配器来连。 WebSocket 客户端或仅启用 HTTP 服务端均不满足本接入方式的要求。
同机部署可使用下面这一组值:
| 协议端设置 | 示例值 | 月璃中对应内容 |
|---|---|---|
| 启用 | 打开 | 插件连接段也设 enabled = true |
| 监听主机 | 127.0.0.1 |
host = "127.0.0.1" |
| 监听端口 | 8095 |
port = 8095 |
| 访问令牌 | 自定义令牌 | 将相同值填入 token |
| 消息上报格式 | array |
由适配器按消息段解析 |
必须把 messagePostFormat 设为 array。
字符串消息格式会使消息段解析失败,文本和 @ 不能按当前契约处理。
保存并启用服务;只保存草稿而未启用不会开始监听。
不同机器或容器部署时,监听地址与端口映射要让后端能访问。
适配器 host 填连接目标,不能填服务端的通配监听地址 0.0.0.0。
选择插件并填写连接¶
在月璃的 config/adapter.toml 设置:
使用连接模板,
真实文件放在 adapters/yueli-napcat-adapter/config.toml。
修改其中已有段;以下号码仅示范两个不同身份:
[napcat]
enabled = true
self_qq = "123456789"
host = "127.0.0.1"
port = 8095
token = ""
[owner]
qq = "987654321"
若协议端设置了令牌,把空 token 改成该值。
这里的令牌是 WebSocket 服务端访问令牌,不是 NapCat 管理面板密码,
也不是月璃启动时打印的后端 token。
self_qq 必须与协议端实际登录一致,owner.qq 填写用户本人的聊天账号。
保留模板的版本、重连与访问名单配置;启用前核对实际 QQ 号。
启动与确认¶
保持 NapCat 在线,在月璃项目根运行:
检查后端终端中的适配器启动、协议连接及登录身份信息。 由本人 QQ 私聊发一句短消息,确认有入站记录、模型结果和 QQ 实际收到的回复。 将测试群加入插件群白名单后,使用 QQ 的 @ 功能提及机器人。 只有后端面板显示回复而 QQ 没收到时,继续检查出站动作错误。
连不上的常见原因¶
| 现象 | 核对项 |
|---|---|
| 连接被拒绝或超时 | NapCat 是否运行、正向 WS 是否启用、8095 是否与实际监听一致 |
| 握手返回 401/403 | 核对 WS 访问令牌是否被误填为管理页面密码 |
| 握手失败或方法不可用 | 是否把 WebUI/HTTP 端口填成了 WS 端口 |
| 登录号不匹配 | self_qq 与当前连接账号不一致,或连到了另一个实例 |
| 连接正常但解析报错 | messagePostFormat 是否为 array |
| 本人私聊正常,其他私聊或群聊无回复 | 私聊访问名单、群白名单与回复触发分别检查 |
| 找不到对应配置段 | 文件必须在所选插件内,连接段必须是 [napcat] |
断线重连间隔和动作等待时间在插件配置内;延长它们不会修复令牌或端口错误。 戳一戳需要能力探测通过且群聊动作开关开启;普通文字成功不能证明戳一戳可用。 只读配置检查见适配器配置,它不替代网络与真实投递验收。