Napcat 内置适配器配置指南
概述
欢迎使用 MoFox-Core 内置的 Napcat 适配器。
将适配器“内置”于主程序中,是官方最为推荐的最佳实践。它就像是为机器人配备了一个“官方翻译耳机”,无需任何外部转接,直接就能与 Napcat QQ 客户端进行稳定、高效的沟通。
使用内置适配器的优势:
- 部署简化:仅需下载和运行 MoFox-Core 主项目。
- 操作便捷:只需管理单个进程。
- 配置统一:所有相关设置均在主项目的配置文件中完成。
本指南将专注于指导你如何配置并启用这个强大的内置连接器。
前置条件
在开始本章之前,我们假定你已经基本完成了 MoFox-Core 的主程序部署,至少包括:
- 成功安装了 Python 环境和项目依赖 (
requirements.txt)。 - 完成了
.env,bot_config.toml,model_config.toml三个核心文件的基础配置。 - 已经安装并成功登录了 Napcat QQ 客户端。
如果你对上述步骤还不熟悉,请务必先返回,并严格参照主部署指南完成准备工作。
第一步:生成插件配置文件
MoFox-Core 设计得非常“聪明”,它会在第一次启动时,自动检测所有内置的插件,并为它们创建默认的配置文件。
首次启动:
- 打开你的命令行终端,并激活 Python 虚拟环境 (你应该能看到
(.venv)这样的标记)。 - 确保你当前的目录位于
MoFox-Core项目的根目录。 - 执行以下命令,来启动一次 MoFox-Core:bash
uv run python bot.py - 程序启动后,你会看到大量的日志信息。当日志滚动停止,并且没有新的信息出现时,说明程序已经完成了初始化工作。
💡 第一次启动就失败了怎么办? 如果程序在启动过程中直接报错并退出了,99% 的可能性是你的核心配置 (
.env,bot_config.toml,model_config.toml) 有误。请回头仔细检查。- 打开你的命令行终端,并激活 Python 虚拟环境 (你应该能看到
生成配置并关闭:
- 当程序稳定运行后,我们生成配置文件的目的就已经达成。现在,请在命令行窗口中,按下
Ctrl + C来关闭程序。
- 当程序稳定运行后,我们生成配置文件的目的就已经达成。现在,请在命令行窗口中,按下
第二步:启用并配置插件
经过上一步,所有内置插件的默认配置文件都已经被自动创建好了。现在,我们来正式配置它。
找到配置文件:
- 请打开以下路径的文件:
config/plugin_config/napcat_adapter_plugin/config.toml
- 请打开以下路径的文件:
启用插件 (关键):
- 用你的代码编辑器打开该文件,找到
[plugin]配置节,将enabled的值从false修改为true。这是开启适配器的总开关。toml[plugin] enabled = true # <--- 就是这里,把它改成 true
- 用你的代码编辑器打开该文件,找到
配置 Napcat 连接 (核心):
- 在同一个文件中,向下找到
[napcat_server]配置节。 - 这里的
port值(默认为8095)必须与你在 Napcat QQ 客户端的OneBot v11设置中,添加的反向 WebSocket 地址中的端口号完全一致。 - 请仔细核对,如果不一致,请修改此处的
port值。
举个例子: 如果你在 Napcat 客户端中设置的反向 WS 地址是
ws://127.0.0.1:12345,那么这里的port就应该被修改为12345。- 在同一个文件中,向下找到
检查内部服务连接:
- 继续向下,找到
[maibot_server]配置节。 - 这里的
port值(默认为8000)需要与你在MoFox-Core根目录下的.env文件中设置的PORT值保持一致。通常情况下,你不需要修改它。
- 继续向下,找到
第三步:启动与验证
所有配置都已完成,现在,让我们正式启动,见证奇迹。
启动顺序 (非常重要)
- 第一步:启动并登录 Napcat QQ
- 打开你已经安装好的 Napcat QQ 客户端,并确保机器人 QQ 账号成功登录。
- 第二步:运行 MoFox-Core
- 回到你的命令行终端窗口(确保虚拟环境已激活,且位于项目根目录)。
- 执行最终的启动命令:bash
uv run python bot.py
- 第一步:启动并登录 Napcat QQ
观察日志,判断成功
- 当你在日志中看到类似以下几条关键信息时,就代表你的机器人已经成功启动并连接到了 QQ 平台:log
10-17 19:58:31 [Napcat 适配器] 启动消息重组器... 10-17 19:58:31 [Napcat 适配器] 开始启动Napcat Adapter 10-17 19:58:31 [Napcat 适配器] 正在启动 adapter,连接模式: reverse 10-17 19:58:31 [Napcat 适配器] 正在启动反向连接模式,监听地址: ws://localhost:8095 10-17 19:58:31 [Napcat 适配器] 消息处理器已启动 10-17 19:58:31 [主程序] 初始化完成,神经元放电1889次 10-17 19:58:31 [主程序] 全部系统初始化完成,{bot_name}已成功唤醒 ========================================================= MoFox-Core(第三方修改版) 全部组件已成功启动! ========================================================= 🌐 项目地址: https://github.com/MoFox-Studio/MoFox-Core 🏠 官方项目: https://github.com/MaiM-with-u/MaiBot ========================================================= 这是基于原版MMC的社区改版,包含增强功能和优化(同时也有更多的'特性') ========================================================= 小贴士:温馨提示:请不要在代码中留下任何魔法数字,除非你知道它的含义。 10-17 19:58:31 [主程序] 多年以后,面对AI行刑队,张三将会回想起他2023年在会议上讨论人工智能的那个下午 10-17 19:58:31 [主程序] 麦麦机器人启动完成,开始运行主任务... 10-17 19:58:31 [主程序] 程序执行完成,按 Ctrl+C 退出... 2025-10-17 19:58:31,252 - maim_message - INFO - {'logger_name': 'maim_message', 'event': '使用外部FastAPI应用,仅注册WebSocket路由', 'level': 'info', 'timestamp': '10-17 19:58:31', 'color': '\x1b[38;5;140m'} 10-17 19:58:33 [Server] 将在 127.0.0.1:8000 上启动服务器 10-17 19:58:33 [Napcat 适配器] 反向连接服务器已启动,监听地址: ws://localhost:8095 10-17 19:58:36 [Napcat 适配器] 尝试连接MoFox-Bot (第1次) 2025-10-17 19:58:36,240 - maim_message - INFO - {'logger_name': 'maim_message', 'event': '正在连接到 ws://127.0.0.1:3001/ws', 'level': 'info', 'timestamp': '10-17 19:58:36', 'color': '\x1b[38;5;140m'} 2025-10-17 19:58:36,243 - maim_message - INFO - {'logger_name': 'maim_message', 'event': '平台 qq WebSocket已连接', 'level': 'info', 'timestamp': '10-17 19:58:36', 'color': '\x1b[38;5;140m'} 2025-10-17 19:58:36,244 - maim_message - INFO - {'logger_name': 'maim_message', 'event': '已成功连接到 ws://127.0.0.1:3001/ws', 'level': 'info', 'timestamp': '10-17 19:58:36', 'color': '\x1b[38;5;140m'} 10-17 19:58:46 [Napcat 适配器] Napcat 客户端已连接: ('127.0.0.1', 38207) 10-17 19:58:46 [Napcat 适配器] Bot xxxxxxx(botQQ号) 连接成功 - 看到
[Napcat 适配器] Bot (bot的QQ号) 连接成功是成功的关键标志!
- 当你在日志中看到类似以下几条关键信息时,就代表你的机器人已经成功启动并连接到了 QQ 平台:
测试机器人
- 现在,打开你的 QQ,向你的机器人账号发送一条消息。如果它回复了你,那么…… 恭喜你,配置成功!
故障排除
Q1: 启动成功,但日志里迟迟没有 `Napcat client connected` 信息?
这通常意味着 MoFox-Core 和 Napcat QQ 客户端之间的“神经”没有接上。请按以下步骤排查:
- 检查 Napcat QQ: 确保 Napcat QQ 客户端本身已成功登录并处于在线状态。
- 检查端口号: 这是最常见的原因。请再次核对
config/plugin_config/napcat_adapter_plugin/config.toml文件中[napcat_server]下的port值,是否与你 Napcat QQ 客户端里设置的反向 WebSocket 端口完全一致。 - 检查防火墙: 确保防火墙或安全组没有阻止相应的端口。
- 检查 IP 地址: 确保
config.toml中的host(localhost) 和 Napcat 中的 IP (127.0.0.1) 是匹配的。
Q2: 机器人成功连接,但在 QQ 里不回复?
这通常是配置问题或napcat服务问题。
- 检查 Napcat QQ: 确保 Napcat QQ 客户端本身已成功登录并处于在线状态,以及有没有连接上内置的适配器。
- 检查白名单: 检查
config/plugin_config/napcat_adapter_plugin/config.toml文件中[features]部分的group_list和private_list。如果你开启了白名单,请确保你测试的群聊或私聊已经被加了进去。 - 查看日志: 观察机器人后台的命令行窗口。当你给机器人发消息时,看看日志是否刷新,是否有
ERROR级别的红色错误信息。
