基于 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,而是一个连接大语言模型和即时通讯平台的机器人框架。

官方介绍中,它支持:

  • QQ
  • 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。


Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐