
基于 LangBot NapCatQQ的QQ AI Bot实战记录实战核心记录启动启动langbotcd C:\Users\lihe4\LangBot docker compose uphttp://127.0.0.1:5300/home/botscd C:\Users\lihe4\Downloads\Lagrange.OneBot_win-x64_net9.0_SelfContained\Lagrange.OneBot\bin\Release\net9.0\win-x64\publish .\Lagrange.OneBot (因配置文件反复出错此方案废弃相关文件已经清理)启动linux qq启动napcat# 切换到包含空格的工作目录 Set-Location D:\zhuo mian\qqbottes # 设置环境变量 $env:QQPath C:\Users\lihe4\Downloads\QQ.exe $env:NAPCAT_PATCH_PACKAGE $PWD\qqnt.json $env:NAPCAT_LOAD_PATH $PWD\loadNapCat.js $env:NAPCAT_INJECT_PATH $PWD\NapCatWinBootHook.dll $env:NAPCAT_LAUNCHER_PATH $PWD\NapCatWinBootMain.exe $mainPath $PWD\napcat.mjs # 将 \ 转换为 /用于 JS 的 file:// 导入 $mainPathWeb $mainPath -replace \\,/ # 写入 loadNapCat.js Set-Content -Encoding UTF8 -Path $env:NAPCAT_LOAD_PATH -Value (async () {await import(file:///$mainPathWeb)})() # 启动 NapCat 启动器 $env:NAPCAT_LAUNCHER_PATH $env:QQPath $env:NAPCAT_INJECT_PATH 3354642262登录网址http://127.0.0.1:6099/webui/network最终实战可行完整方案整理成文从零搭建个人 QQ AI Bot基于 LangBot NapCatQQ项目背景最近在 GitHub 上浏览一些开源 AI Bot 项目时发现很多开发者已经将大语言模型与即时通讯平台结合实现了自动回复、知识问答、群管理、AI 助手等功能。因此我尝试在自己的 Windows 电脑上搭建一套完整的 QQ AI Bot 系统。本次实践没有选择云服务器而是直接利用个人电脑作为服务器通过 Docker 部署机器人框架并连接本机 QQ实现一个属于自己的 QQ 智能机器人。最终采用的技术方案如下QQ客户端 | | NapCatQQ | | OneBot11 协议 | LangBot | | 大语言模型 / 插件系统其中NapCatQQ 负责 QQ 消息协议层LangBot 负责机器人逻辑、AI 对话以及插件管理Docker 负责运行后端服务。项目组成介绍1. LangBot机器人核心平台项目地址https://github.com/langbot-app/LangBotLangBot 是一个开源的多平台智能机器人开发平台它的定位并不是单纯的 QQ Bot而是一个连接大语言模型和即时通讯平台的机器人框架。官方介绍中它支持QQTelegramDiscord微信飞书钉钉等平台同时支持接入OpenAIDeepSeekClaudeGeminiOllama 等模型服务。LangBot 最大的特点是提供了 Web 管理界面可以直接通过浏览器管理机器人。启动后访问http://127.0.0.1:5300/home/bots即可进入后台管理页面。相比传统自己编写 QQ BotLangBot 提供了Bot 管理插件系统模型配置消息处理流程Web 可视化管理降低了开发门槛。2. NapCatQQ连接 QQ 的桥梁项目地址https://github.com/NapNeko/NapCatQQNapCatQQ 是基于 NTQQ 的 OneBot 协议实现。简单理解QQ 本身并不会直接提供给机器人调用接口而 NapCatQQ 相当于在 QQ 客户端和机器人框架之间增加了一层转换。结构如下QQ | | NapCatQQ | | OneBot API | | 机器人框架它负责接收 QQ 消息发送 QQ 消息获取群信息获取好友信息调用 QQ 接口官方 README 中也说明 NapCatQQ 是基于 NTQQ 的现代化协议端框架并提供 OneBot 接口能力。第一次方案尝试Lagrange.OneBot最开始选择的是 Lagrange.OneBot。部署方式cd C:\Users\lihe4\Downloads\Lagrange.OneBot_win-x64_net9.0_SelfContained\Lagrange.OneBot\bin\Release\net9.0\win-x64\publish .\Lagrange.OneBotLagrange.OneBot 同样属于 QQ OneBot 生态中的实现方案。但是在实际配置过程中遇到了较多问题配置文件容易出错参数需要手动调整登录流程调试复杂。由于反复修改配置仍然无法稳定运行最终放弃该方案。相关文件也进行了清理。这也是本次实践中比较重要的一点开源项目不一定是越底层越好实际使用时稳定性和社区生态同样重要。最终方案NapCatQQ LangBot最终选择QQ | NapCatQQ | OneBot | LangBot | AI模型相比 Lagrange.OneBot这套方案配置更加直观。LangBot 部署首先进入 LangBot 项目目录cd C:\Users\lihe4\LangBot使用 Docker Compose 启动docker compose up启动成功后访问http://127.0.0.1:5300/home/bots进入 LangBot 管理后台。Docker 的优势环境隔离不需要手动安装大量依赖启停方便方便后续迁移到服务器。NapCatQQ 部署过程NapCatQQ 运行依赖 QQ 客户端因此需要先准备 QQ 环境。我的目录D:\zhuo mian\qqbottes由于路径中存在空格所以 PowerShell 使用Set-LocationD:\zhuo mian\qqbottes随后配置环境变量$env:QQPath C:\Users\lihe4\Downloads\QQ.exe$env:NAPCAT_PATCH_PACKAGE $PWD\qqnt.json$env:NAPCAT_LOAD_PATH $PWD\loadNapCat.js$env:NAPCAT_INJECT_PATH $PWD\NapCatWinBootHook.dll$env:NAPCAT_LAUNCHER_PATH $PWD\NapCatWinBootMain.exe生成加载文件$mainPath$PWD\napcat.mjs$mainPathWeb$mainPath-replace\\,/写入Set-Content-Encoding UTF8 -Path$env:NAPCAT_LOAD_PATH -Value(async () {await import(file:///$mainPathWeb)})()最后启动$env:NAPCAT_LAUNCHER_PATH $env:QQPath $env:NAPCAT_INJECT_PATH 3354642262启动成功后进入 NapCat 管理页面http://127.0.0.1:6099/webui/network在这里可以配置OneBot 网络连接WebSocket 地址API 参数整个系统运行流程完整消息链路如下用户发送 QQ 消息例如用户 你好介绍一下TCP协议消息首先进入QQ然后QQ ↓ NapCatQQ ↓ OneBot接口 ↓ LangBot ↓ AI模型AI 生成回复TCP是一种面向连接的可靠传输协议...再通过相反路径返回 QQ。