04. LangBot 配置

LangBot 在这套系统里的角色

LangBot 是机器人中枢。它接收 NapCat 传来的 QQ 消息,然后决定这条消息怎么处理。

它主要负责:

  • 管理机器人实例,比如 qq bot
  • 管理模型配置,比如 deepseek-chat
  • 管理流水线,比如普通聊天流水线、GPT 高级分析流水线。
  • 管理触发条件,比如群聊是否必须 @、是否需要 /gpt 前缀。
  • 管理提示词,比如“神盾局特工 26 号”的性格。
  • 管理上下文、知识库、插件、日志。

它不负责:

  • 不负责登录 QQ。
  • 不直接处理 QQ 协议细节。
  • 不保存 QQ 登录态。

这些由 NapCat 做。

可以把它理解为:

LangBot = 机器人调度中心 / 大脑外壳 / 消息路由器

例子:

NapCat 收到群消息:@神盾局特工26号 你好
        |
        v
LangBot 检查:
  - 这是不是 qq bot 的消息?
  - 群聊 @ 规则是否命中?
  - 应该走哪条流水线?
  - 这条流水线用哪个模型?
        |
        v
调用 New API 的 deepseek-chat
        |
        v
生成回复并交给 NapCat 发回 QQ

打开 WebUI

浏览器访问:

http://服务器公网IP:5300

如果打不开:

docker ps | grep qqbot-langbot
docker logs --tail 80 qqbot-langbot
ss -tlnp | grep 5300

初始化账号

LangBot 第一次进入 5300 页面时需要初始化管理员账号。它不是固定默认账号登录。

页面如果要求邮箱和密码,就填写自己的邮箱和强密码。创建后用这组信息登录。

模型配置

本次模型走 New API。

LangBot 后台:

模型配置 / 模型供应商 / OpenAI 兼容

填写:

Base URL:http://172.17.0.1:3000/v1
API Key:New API 里给机器人的 token
Model:deepseek-chat

如果 LangBot 和 New API 不在同一台服务器:

Base URL:http://服务器公网IP:3000/v1

为什么使用 deepseek-chat

deepseek-chat 适合 QQ 日常聊天:

  • 快。
  • 便宜。
  • 不容易输出 <think>

如果使用 deepseek-reasoner,可能会在回复里带:

<think>...</think>

除非需要推理过程,否则 QQ Bot 建议用 deepseek-chat

机器人配置

LangBot 后台:

机器人 -> 添加机器人 / qq bot

选择:

协议:OneBot v11
端口:2280
启用:是

然后绑定到对应流水线。

这里的“机器人”不是 QQ 账号本身,而是 LangBot 里的一个接入配置。

QQ 账号在 NapCat 里登录;LangBot 里的机器人只是告诉 LangBot:

有一个 OneBot v11 连接会从 2280 进来。
这些消息应该交给哪条流水线处理。

流水线配置

LangBot v4 里,消息必须匹配某条“流水线”才会被处理。

流水线可以理解为“处理规则 + AI 能力 + 输出规则”的组合。

比如:

流水线 A:qq bot
触发:群聊 @ 机器人
模型:deepseek-chat
人设:神盾局特工 26 号
用途:日常聊天

再比如:

流水线 B:qq bot gpt
触发:/gpt 前缀
模型:gpt-5.4
用途:复杂分析

同一条 QQ 消息进入 LangBot 后,LangBot 会根据触发条件决定交给哪条流水线。

新建流水线:

名称:qq bot
AI 能力:选择 deepseek-chat 对应模型配置
绑定机器人:选择 OneBot / qq bot

触发条件见 05-trigger-rules.md

测试链路

测试顺序:

  1. NapCat 登录 QQ。
  2. NapCat WebSocket Client 连接 ws://qqbot-langbot:2280/ws
  3. LangBot 日志出现 GET /ws 1.1 101
  4. 用另一个 QQ 私聊机器人。
  5. 群聊里 @机器人 你好
  6. New API 后台能看到调用日志。

完整链路:

QQ -> NapCat -> LangBot -> New API -> DeepSeek