基于 LangBot + NapCatQQ的QQ AI Bot实战记录
基于 LangBot + NapCatQQ的QQ AI Bot实战记录
实战核心记录
启动
启动langbot
cd C:\Users\lihe4\LangBot
docker compose up
http://127.0.0.1:5300/home/bots
cd 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/LangBot
LangBot 是一个开源的多平台智能机器人开发平台,它的定位并不是单纯的 QQ Bot,而是一个连接大语言模型和即时通讯平台的机器人框架。
官方介绍中,它支持:
- Telegram
- Discord
- 微信
- 飞书
- 钉钉等平台
同时支持接入:
- OpenAI
- DeepSeek
- Claude
- Gemini
- Ollama 等模型服务。
LangBot 最大的特点是提供了 Web 管理界面,可以直接通过浏览器管理机器人。
启动后访问:
http://127.0.0.1:5300/home/bots
即可进入后台管理页面。
相比传统自己编写 QQ Bot,LangBot 提供了:
- Bot 管理
- 插件系统
- 模型配置
- 消息处理流程
- Web 可视化管理
降低了开发门槛。
2. NapCatQQ:连接 QQ 的桥梁
项目地址:
https://github.com/NapNeko/NapCatQQ
NapCatQQ 是基于 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.OneBot
Lagrange.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-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"
$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。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)