QQ 机器人接大模型,真正容易出问题的不是调用一次 Chat API,而是消息从 QQ 客户端到模型再回到 QQ 的每一段是否可观测。2026-09-14 发布的 CSDN 社区教程《QQ 机器人怎么接上 AI?用 AstrBot + NapCat 搭一套可扩展的 DeepSeek 助手》给出了一条可复现路径。需要先说明:它不是 AstrBot、NapCat 或 DeepSeek 的官方公告,而是一篇社区实践教程;下面涉及的端口、命令、默认账号、指令都按该教程的做法归因,不代表官方默认值或兼容性结论。

架构分层

教程的核心是把系统拆成两个组件。NapCat 负责 QQ 登录,并通过 OneBot v11 接口把消息交给 AstrBot;AstrBot 负责机器人逻辑、模型接入、人设、插件与 MCP;Docker 统一拉起两套服务。这个拆法的工程价值在于排查路径清楚:QQ 登录失败看 NapCat;收不到消息查 OneBot 链路;AI 不回复查模型提供商;人设、插件或 MCP 不生效则回到 AstrBot 配置。

两条链路是:第一段 QQ → NapCat → AstrBot;第二段 QQ → NapCat → AstrBot → DeepSeek → QQ 回复。教程建议先验证第一段,再接入 DeepSeek 验证第二段。这个顺序比一上来配模型更稳,因为如果第一段没通,模型配置正确也无法在 QQ 里得到回复。

部署与验证入口

教程给出 Windows 11 环境做法:Windows PowerShell 一键命令是 irm https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.ps1 | iex。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;也可使用 curl -fsSL https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.sh | bash。这些命令和脚本地址均来自该教程,实际使用前应自行核对来源与版本。

容器启动后,教程要求先确认两个 Web 服务可访问:AstrBot 是 http://localhost:6185,NapCat 是 http://localhost:6099。这两个端口是教程给出的验证入口,不应直接当成所有部署的固定端口。

NapCat 登录 QQ:访问 http://localhost:6099/,首次进入需要 Token。教程说 Token 来自部署控制台输出,也可以用 docker logs napcat | Select-String "Token" 查询。填回 Token 后,使用准备作为机器人的 QQ 账号扫码登录。完成后 NapCat 具备「QQ 在线且可通过 OneBot 接口被调用」的条件。

AstrBot 初始化:访问 http://localhost:6185,教程给出的默认账号密码均为 astrbot,首次登录后按提示修改。在【机器人 → 创建机器人】选择消息类别「QQ个人号」并启用保存。然后用另一个 QQ 号发消息,观察 AstrBot 平台日志能收到消息,即验证第一段链路 QQ → NapCat → AstrBot。这里默认账号属于教程描述,生产环境必须修改,不能沿用。

接入 DeepSeek

https://platform.deepseek.com 创建 API Key,教程提示密钥只显示一次。回到 AstrBot【模型提供商 → 新增模型提供商 → 接入 DeepSeek】填入 Key 并保存,点【测试】通过后回 QQ 对话验证。第二段链路成立:QQ → NapCat → AstrBot → DeepSeek → QQ 回复。教程没有展开 DeepSeek 的计费、并发、限流或密钥权限模型,这些需要以 DeepSeek 官方文档为准。

人格、插件与 MCP

教程提到 AstrBot 默认人设提示词为「你是一个乐于助人、友好的助手……」。【更多功能 → 人格设定】可新建人格 ID 与系统提示词。对话指令包括:/persona 查看、/persona list 列表、/persona <人格ID> 切换、/reset 清空上下文。切换人格前建议先 reset。回复过长可在 AstrBot 配置中启用流式/分段回复。这里值得关注的是人格与上下文分离:人格决定系统提示词,reset 决定会话上下文,排障时不要混在一起。

插件方面,教程以点歌插件为例:进入 AstrBot【插件】的插件市场,搜索「音乐」安装,可 GitHub 加速并做连通性测试选低延迟节点;安装后在 QQ 对话执行 /点歌 <歌曲名> 返回歌曲卡片。教程把插件定位为给 AstrBot 增加一个已封装好的具体功能。

MCP 方面,教程定义 MCP 是把外部工具/服务以标准化方式交给模型调用。示例是 12306-mcp:进入 AstrBot【MCP】同步服务器,跳转 https://www.modelscope.cn/mcp 找到 12306-mcp,复制配置 {"mcpServers":{"12306-mcp":{"command":"npx","args":["-y","12306-mcp"]}}},回 AstrBot【新增服务器】粘贴并测试保存。回 QQ 做真实车票查询验证:AstrBot → MCP → 12306-mcp → 返回结果(列车号、时间、座位、价格)。从工程角度看,MCP 让模型调用外部工具,但也增加了一个依赖进程和配置入口;npx 拉起方式是否适合长期运行、网络与权限如何隔离,教程没有展开,需要按 MCP 服务器自身文档核验。

远程管理

本地跑通后,教程用 cpolar 把 AstrBot 的 6185 管理页暴露到公网。教程明确说这只处理管理页远程访问,与 QQ 消息链路无关。Windows 安装 cpolar,cmd 确认 cpolar version,注册账号后 http://127.0.0.1:9200 进入 Web UI。隧道管理 → 隧道列表编辑 website 隧道指向 6185,状态 → 在线隧道列表得到 astrbot-6185 的 http/https 公网地址,用 https 地址访问验证 AstrBot 页面可打开。这里的安全边界要特别小心:把管理页暴露公网,等于把机器人管理面暴露到外部,必须结合访问控制、强密码和最小暴露面处理。

工程判断与未说明边界

这篇教程的价值在于把「QQ 机器人 + 大模型」从黑盒变成可分段验证的链路。NapCat、AstrBot、DeepSeek 各自负责一段,排障时先看消息有没有到 AstrBot,再看模型提供商测试是否通过,最后看人格、插件、MCP 是否影响回复。这个分层对开发团队更友好,也方便后续替换模型或扩展插件。

但边界同样明确:教程没有给出 AstrBot/NapCat 的版本兼容矩阵、OneBot v11 协议细节、DeepSeek 计费与并发行为、生产级安全加固方案,也没有证明这些端口和默认账号是官方默认值。涉及这些内容时,应以 AstrBot、NapCat、OneBot、DeepSeek 各自官方文档为准进一步核验。对想快速验证链路的开发者,按教程顺序部署和验证是可行的;对要上生产的团队,至少要把默认密码、公网管理页、密钥轮换、MCP 外部进程和模型成本监控列为检查项。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐