快速部署 QQ 智能机器人:AstrBot+NapCat+DeepSeekAI 实操教程(1)
本文聚焦如何快速搭建 QQ 智能机器人,核心用到 AstrBot(AI 机器人框架)和 NapCat(QQ 协议适配工具),借助 Docker 一键部署,接入 DeepSeekAI 实现智能对话。AstrBot 支持多 AI 模型、插件扩展与人格定制,NapCat 保障 QQ 稳定登录,两者结合让 QQ 机器人兼具智能回复、群管理、实时查询等能力,还可通过 cpolar 实现公网访问,摆脱局域网限
前言
本文聚焦如何快速搭建 QQ 智能机器人,核心用到 AstrBot(AI 机器人框架)和 NapCat(QQ 协议适配工具),借助 Docker 一键部署,接入 DeepSeekAI 实现智能对话。
AstrBot 支持多 AI 模型、插件扩展与人格定制,NapCat 保障 QQ 稳定登录,两者结合让 QQ 机器人兼具智能回复、群管理、实时查询等能力,还可通过 cpolar 实现公网访问,摆脱局域网限制,5 分钟即可完成部署,大幅降低搭建门槛,满足个人或小群体的智能消息处理需求。
1 项目介绍
1.1 AstrBot是什么?

AstrBot 是一个专为 AI 大模型设计的开源聊天机器人框架,它让你可以轻松地把 ChatGPT、DeepSeek、Claude 等 AI 接入到 QQ、企业微信、Discord 等各种聊天平台。
核心特点:
- 🤖 原生支持主流 AI 模型:DeepSeek、OpenAI、Claude、GLM、通义千问等开箱即用
- 🔌 丰富的插件生态:天气查询、图片生成、语音合成、群管理等功能一键安装
- 🌐 多平台适配:支持 QQ、QQ频道、Discord、Telegram 等多个平台
- 🎯 开箱即用:提供 Docker 镜像和 WebUI 管理界面,无需复杂配置
- 📦 模块化设计:通过 OneBot 标准协议对接各类消息平台,扩展性强
简单来说,AstrBot 就是一个"AI 机器人中枢",帮你把"AI 能力"和"聊天平台"连接起来,让你专注于功能本身,而不用操心底层实现。
1.2 NapCat 是什么?
NapCat 是一个基于 NTQQ(QQ 官方 Linux 版本)的 OneBot 协议实现框架,说人话就是:它能让你的 QQ 账号通过标准化接口被机器人程序调用。
在以前,大家常用的 go-cqhttp 已经停止维护,而 NapCat 作为新一代解决方案,具有以下优势:
核心特点:
- ✅ 稳定可靠:基于官方 QQ Linux 版本,不是逆向破解,稳定性更好
- 🔄 持续维护:项目活跃开发中,及时跟进 QQ 版本更新
- 📡 标准协议:完整实现 OneBot v11 协议,兼容性强
- 🚀 功能完善:支持消息收发、群管理、文件传输、语音图片等全部常用功能
- 🐳 Docker 友好:官方提供 Docker 镜像,部署简单
- 🔐 安全登录:支持扫码登录,无需担心密码泄露
为什么要用 NapCat?
因为 QQ 本身不提供公开的 API 接口给开发者,而 NapCat 就像一个"翻译官",把 QQ 的操作翻译成标准的 OneBot 协议接口,让 AstrBot 这样的机器人框架可以通过 HTTP/WebSocket 来控制你的 QQ 账号收发消息。
简单来说:NapCat 负责登录 QQ 并提供接口,AstrBot 负责处理逻辑和调用 AI,两者配合就能让你的 QQ 变成智能机器人。
2 使用Docker一键部署AstrBot + NapCat
本教程演示在Windows11操作系统上的Docker一键部署,部署方式在其他环境也一致。如果您还没有安装Docker的话,可以到cpolar官网参考如下教程:Docker安装——Linux、Windows、MacOS
安装好Docker以后,电脑键盘按快捷键Windows + R键,输入powershell回车,打开Windows PowerShell窗口,输入如下命令:
irm https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.ps1 | iex

可以看到,命令执行了检查Docker及状态,创建文件夹,下载astrbot的docker-compose文件astrbot.yml,然后启动容器,以及输出容器的访问地址等。
如果是Linux部署,可以依次执行如下命令即可(官方命令):
mkdir astrbot
cd astrbot
wget https://raw.githubusercontent.com/NapNeko/NapCat-Docker/main/compose/astrbot.yml
sudo docker compose -f astrbot.yml up -d
也可以执行如下Linux一键部署命令:
curl -fsSL https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.sh | bash
控制台提示部署好后,我们依次访问一下,首先访问Astrbot(访问的IP请查看控制台输出的IP,或者使用本地回环地址localhost也可以):
http://localhost:6185

可以发现,成功的访问到啦,接下来再试试访问NapCat:
http://localhost:6099

好啦,都访问成功啦!
3 配置NapCat
首先,在浏览器中打开如下地址,访问NapCat的web登录界面:
http://localhost:6099/

页面上提示,需要输入token进行登录,我们回到控制台,可以看到有一行输出了Token:
如果控制台日志清了,可以通过查看docker容器日志找到,输入如下命令进行查看:
docker logs napcat | Select-String "Token"

将token复制下来,填写web页面中,即可进行登录:
接着,登录上你想要作为机器人的QQ账号,可以选择侧边的扫码登录,登录完成后,会自动跳转到首页:

4 配置AstrBot关联上NapCat
4.1 初始化AstrBot配置
输入AstrBot的访问地址,访问到AstrBot的Web登录界面:
http://localhost:6185

输入用户名和密码astrbot,然后点击登录,登录成功后首次会提示修改账号信息,修改一下然后重新登录即可:

4.2 AstrBot关联NapCat
登录进来后,点击侧边的机器人,然后在页面点击创建机器人按钮,在弹出的窗口中,消息类别选择QQ个人号,并且启用,保存即可:

保存弹出安全提醒的话,直接无视警告并继续创建即可(因为是在本地进行,所以也无需设置Token,当然也可以设置一下),创建好后,会有成功提示:
点击展开平台日志,然后用另一个QQ账号给机器人账号发送消息测试,是否成功通信:

可以看到,成功的接收到了来自另一个账号发送的消息。
5 配置DeepSeek接入AstrBot中
5.1 获取DeepSeek的Api密钥
首先,前往DeepSeek官网的用量信息页面,未登录会先跳转登录页面,登录即可,在该页面可以看到余额和消耗:
https://platform.deepseek.com

接着,点击API keys,进入该页面:

在页面上点击创建 API key的按钮,然后设置一个名称(用于辨识),创建完成后点击复制按钮进行复制(注意,只会显示一次,不用刻意记忆,忘记删除重新创建即可):

好了,这样就获取到了deepseek的Api密钥了,留着备用。
5.2 将API密钥配置到AstrBot中
首先,在AstrBot的后台侧边栏点击模型提供商菜单,然后点击页面上的新增模型提供商按钮,在弹出的窗口中选择接入DeepSeek:
在配置页面中点击修改按钮,将前面获取到DeepSeek的API密钥填入其中,然后点击保存:
保存后,即可看到新增的模型提供商了,点击测试按钮,可以测试是否可用:
5.3 简单对话测试是否可用
使用另一个账号,给前面扫码登录NapCat账号(即机器人)发送消息,进行测试是否成功接入了AI:
可用看到,成功的回复响应了我们的提问。
6 更换人设和配置文件相关修改
到这一步,你的 QQ AI 机器人已经能正常工作了。从如下图中可用看到,默认的回答很标准机器人一样:
这是因为AstrBot的默认人设给的提示词为:
你是一个乐于助人、友好的助手……

我们可用创建一个新的人格设定,首先,打开AstrBot后台页面,选择侧边栏的更多功能下的人格设定项,然后在该页面点击创建人格,在弹出的窗口中输入人格ID,和系统提示词即可:
这里提供一些收集到的人设,自行获取即可(人设全部为官方群获取,群友上传,非个人创建,个别人设可能有点…你懂的):
123云盘永久链接:https://www.123865.com/s/3jOKVv-GSNzH?pwd=1314#
提取码:1314
填写完成后,点击保存即可,即可在人格设定页面看到保存的人格:
创建好人格后,我们可以在对话框中直接输入指令进行查看和切换,输入如下指令,可以查看人格相关的指定:
/persona

接着,查看一下人格情景列表,看看之前在后台创建的人格设定是否能够查询到:
/persona list

可以看到,成功的查询到了添加的人格设定,接着切换一个测试一下:
/persona 猫娘(请替换为你创建好的人格ID名称)

接着来发送消息测试一下:
可以看到,人格生效了,但是回复的内容太长了,我们可以让它分段回复,更加适合聊天的方式。回到后台页面,点击配置文件,下拉找到流式回复,启用它,不支持流式回复的会自动实时分段回复,然后点击右下角的保存按钮即可:
接着再来发送测试一下:
可以看到,现在就能够分段式的回复了。想要切换其他人设,同样使用如下命令切换即可,但是要注意上下文,所以一定要执行/reset清空上下文:
# 切换人设
/persona <你要切换的人格设定ID名称>
# 清空上下文,防止原人格对话影响现人格
/reset

再次测试一下新的人格设定,是否生效:
可以看到,成功的生效且分段回复啦,到这儿,人格设定创建和切换就搞定啦!
7 AstrBot插件功能
前面我们已经配置好了人设相关配置了,接下来我们来添加一些插件,让它支持更多功能。我们回到后台页面,点击插件侧边菜单栏,在插件市场中可以看到许多的插件:
这里安装一个插件测试一下,以点歌插件为例,在右上角搜索音乐,找到点歌插件进行安装:
在弹出的窗口中,可以选择使用GitHub加速,然后测试一下连通性,选择一个较低延迟的点击安装:
安装完成后弹出说明文档:
接着回到对话框发送指令测试一下:
/点歌 恋人(你想要点歌的歌曲名字)

可以看到成功的推送了这首歌的歌曲卡片给我,安装上了插件,就拥有了更多的玩法啦!
8 AstrBot的MCP服务
到这一步,你的 QQ AI 机器人已经具备了基础对话能力和丰富的插件功能。但你可能会想:**能不能让 AI 机器人更智能一点?比如自动查天气、查车票、搜索资料、执行复杂任务?**这就是 MCP(Model Context Protocol,模型上下文协议) 要解决的问题。
8.1 什么是 MCP?
MCP 是一个由 Anthropic 提出的开放协议,它让 AI 模型能够通过标准化接口调用外部工具和服务。简单来说,MCP 就像给 AI 装上了"手和脚",让它不再局限于纯文本对话,而是能主动调用工具、获取实时信息、执行具体操作。
而 AstrBot 正是支持 MCP 协议的机器人框架之一。通过配置 MCP 服务,你的 QQ AI 机器人可以:
- 🌤️ 实时查询天气、新闻、股票等信息
- 🔍 联网搜索最新资料并总结回复
- 🛠️ 执行自定义工具,比如数据库查询、API 调用等
- 📊 处理复杂任务,让 AI 自主选择合适的工具组合完成目标
接下来,我们就来看看如何在 AstrBot 中启用和配置 MCP 服务,让你的 QQ AI 机器人真正"智能"起来。
8.2 安装Mpc服务
回到AstrBot后台页面,点击侧边菜单栏的MCP,然后点击页面上的同步服务器按钮,在弹出的窗口中点击蓝色字体ModelScope 平台,进行跳转:
即如下地址,以12306-mcp为例,点击进入:
https://www.modelscope.cn/mcp

进入后,点击滚动到下方,找到MCP服务器配置,点击复制按钮进行复制:
{
"mcpServers": {
"12306-mcp": {
"command": "npx",
"args": [
"-y",
"12306-mcp"
]
}
}
}

复制下来后,回到astrbot后台页面,点击新增服务器按钮,然后在弹出的窗口中设置一个服务器名称,服务器配置部分内容粘贴先前复制下来的mcp配置,最后点击测试,测试可用直接点击保存即可:

8.3 测试MCP服务
接着,我们直接回到聊天对话窗口,询问一下我们之前配置好的AI机器人:
可以看到,完整的告诉了我普通的快速列车和高铁动车的相关车票信息,包含具体的列车号、出发时间、到达时间、座位及价格,完美的将12306的MCP服务接入进来啦!
9 穿透AstrBot实现公网访问
到这一步,你的 QQ AI 机器人已经跑得很完美了——能聊天、能切换人设、能调用插件、还支持 MCP 服务。但很快你就会发现一个问题:人在外面想调整配置?不行,必须连家里的局域网。机器人突然不回复了? 机器人直接"失联"。 这时候你会意识到,本地部署虽然简单,但"只能本地用"这个限制实在太致命。
不过转折就在这里:用 cpolar 做个内网穿透,几条命令搞定,你的 AstrBot 立刻拥有一个公网域名——这意味着你可以在地铁上用手机调机器人,切换API key相关操作,可以把管理面板发给异地的朋友访问查看。接下来,我们就用 cpolar 打通这"最后一公里"。
9.1 什么是cpolar?

- cpolar 是一款内网穿透工具,可以将你在局域网内运行的服务(如本地 Web 服务器、SSH、远程桌面等)通过一条安全加密的中间隧道映射至公网,让外部设备无需配置路由器即可访问。
- 广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,并提供一键安装脚本方便部署。
9.2 下载cpolar
打开cpolar官网的下载页面
点击立即下载 64-bit按钮,下载cpoalr的安装包:

下来下来是一个压缩包,解压后执行目录种的应用程序,一路默认安装即可,安装完成后,打开cmd窗口输入如下命令确认安装:
cpolar version

出现如上版本即代表安装成功!
9.3 注册及登录cpolar web ui管理界面
访问cpolar官网,点击免费注册按钮,进行账号注册

进入到如下的注册页面进行账号注册:
注册完成后,在浏览器中输入如下地址访问 web ui管理界面:
http://127.0.0.1:9200

输入刚才注册好的cpolar账号登录即可进入后台页面:

9.4 穿透AstrBot
9.4.1 随机域名方式(免费方案)
随机域名方式适合预算有限的用户。使用此方式时,系统会每隔 24 小时 左右自动更换一次域名地址。对于长期访问的不太友好,但是该方案是免费的,如果您有一定的预算,可以查看大纲9.4.2 的固定域名方式,且访问更稳定。
点击左侧菜单栏的隧道管理,展开进入隧道列表页面,页面下默认会有 2 个隧道:
- remoteDesktop隧道,指向3389端口,tcp协议
- website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

点击编辑website的隧道,修改成我们AstrBot需要的信息:

接着,点击左侧菜单的状态菜单,接着点击在线隧道列表菜单按钮,可以看到有2个astrbot-6185的隧道,一个为http协议,另一个为https协议:
注意:每个用户创建的隧道显示的公网地址都不一样!

接下来在浏览器中访问astrbot-6185隧道生成的公网地址(http和https皆可),这里以https为例:

可以看到成功访问啦!
9.4.2 固定域名方式
通过前面的配置,我们已经成功实现了AstrBot的远程访问,但免费随机域名方案的局限性也逐渐显现:每24小时左右自动更换域名地址,意味着你需要频繁更新书签、重新分享链接,甚至可能因为忘记更新而无法访问。固定域名方案正是为了解决这些痛点而生,能够让你拥有一个永久不变的专属地址。
好啦,接下来开始固定保留二级子域名教程!
首先,进入官网的预留页面:
https://dashboard.cpolar.com/reserved
选择预留菜单,即可看到保留二级子域名项,填写其中的地区、名称、描述(可不填)项,然后点击保留按钮,操作步骤图如下:

列表中显示了一条已保留的二级子域名记录:
- 地区:显示为
China Top。 - 二级域名:显示为
astrbot。
注:二级域名是唯一的,每个账号都不相同,请以自己设置的二级域名保留的为主
接着,进入侧边菜单栏的隧道管理下的隧道列表,可以看到名为astrbot-6185的隧道,点击编辑按钮进入编辑页面:

修改域名类型为二级子域名,然后填写前面配置好的子域名,点击更新按钮:

来到状态菜单下的在线隧道列表可以看到隧道名称为astrbot-6185的公网地址已经变更为二级子域名+固定域名主体及后缀的形式了:

这里以https协议做访问测试(加载稍慢,需耐心等待一下):

访问成功!这样一来,你就拥有了一个永久不变的专属域名,再也不用担心24小时域名更换的问题。
总结
本教程从部署到优化,完整呈现了 AstrBot+NapCat 组合搭建 QQ 智能机器人的全流程。从 Docker 一键部署基础环境,到配置 NapCat 登录 QQ、关联 AstrBot 接入 DeepSeekAI,再到定制人格、安装插件、启用 MCP 服务拓展功能,最后通过 cpolar 实现公网访问,每一步都简化了操作难度。
这套方案兼顾易用性与功能性,无需复杂的开发基础,就能让 QQ 拥有智能对话、工具调用等能力,无论是日常消息处理还是个性化需求,都能轻松满足,为普通用户打造专属智能 QQ 机器人提供了便捷路径。
更多推荐



所有评论(0)