基于 NapCat 与本地 RAG 的群聊 AI 机器人方案(ARM64 部署)

关键词 :QQ机器人、NapCat、OneBot、RAG、嵌入式LLM、ARM64部署、Node.js

适用场景:群聊智能应答、角色风格模拟、低成本本地部署


一、项目背景与目标

1.1 背景

在群聊场景中,我们希望拥有一台能模拟特定人物说话风格(简洁、带口头禅、爱吐槽)的自动回复机器人,用于娱乐或社群互动。同时要求低成本部署 (ARM64机顶盒)、隐私保护 (RAG向量库本地存储)、拟人化响应(可变延迟、随机忽略)。

1.2 目标

  • 基于 NapCat(QQ无头协议)实现消息收发

  • 内置 Timing Agent 规则引擎,控制回复时机与概率,模拟人类行为

  • 结合本地 RAG(检索增强生成),召回历史对话片段作为 Few-shot 示例

  • 调用外部 LLM API(如 DeepSeek)生成符合目标风格的回复

  • 全部服务运行在 ARM64 机顶盒(8GB RAM) 上,几乎零额外成本


二、整体架构

text

复制代码
机顶盒 (ARM64, 8GB RAM)
┌────────────────────────────────────────────┐
│  NapCat (QQ协议层, Node.js)                 │
│    ↓ WebSocket OneBot V11 (端口3001)        │
│  Bot 调度器 (Node.js)                       │
│    ├── Timing Agent (规则引擎)              │
│    ├── RAG 检索 (sqlite-vec, 本地)          │
│    └── LLM API 调用 (外部)                  │
│                                              │
│  附: Embedding Server (0.6B GGUF, CPU)      │
│  附: SQLite 向量数据库 (~189MB)             │
└────────────────────────────────────────────┘
                ↓
         外部 LLM API (DeepSeek/硅基流动等)
  • NapCat:负责QQ协议接入,提供 WebSocket 接口(OneBot V11 标准)。

  • Bot调度器:核心业务逻辑,包含消息过滤、时机决策、RAG检索、LLM调用。

  • Embedding Server:本地运行 Qwen3-Embedding-0.6B GGUF 模型,为查询生成向量。

  • SQLite向量库:存储预计算的历史对话块(1024维),支持ANN快速检索。


三、可行性分析

3.1 技术可行性

模块 方案 状态 风险
QQ协议 NapCat (NTQQ无头) ✅ 成熟开源 小号可能被风控,建议准备备用号
消息收发 OneBot V11 WebSocket ✅ 标准协议
回复时机 规则引擎(基于数据分析) ✅ 简单if-else 需实际调参
内容生成 外部LLM API ✅ 通用方案 依赖API可用性/成本
RAG检索 sqlite-vec (本地) ✅ 单次0.09s
嵌入服务 Qwen3-0.6B GGUF (CPU) ✅ 单次0.11s,占用~1.2GB
存储 SQLite向量库 ✅ 189MB
部署 ARM64 Linux机顶盒 ✅ 资源充足 需确认系统版本

3.2 资源消耗预估

资源 需求 说明
RAM ~2GB NapCat 60MB + Node.js 30MB + Embedding 1.2GB + DB缓存
磁盘 ~300MB(模型可外置) NapCat 80MB + DB 189MB + 模型 610MB(可选)
网络 外网访问 LLM API + NapCat登录
CPU ARM64,无特殊要求 嵌入推理CPU足够

3.3 风险与应对

风险 等级 应对措施
QQ小号被封 中高 准备2~3个备用号,先养号再使用
NapCat协议被封堵 社区活跃,更新及时
LLM API不稳定 准备多家Key(DeepSeek/硅基流动/通义)
硬件故障 数据库可备份迁移

四、功能需求清单(优先级分级)

P0 -- 必须实现

  • □ NapCat 启动 + 扫码登录 + 维持在线

  • □ 通过 WebSocket 接收群消息/私聊并发送回复

  • □ 调用 LLM API 生成回复(无延迟控制)

  • □ 配置化管理(API Key、目标群号、端口等)

P1 -- 拟人化增强

  • Timing Agent:基于消息长度、时段、连发状态、对话轮次动态调整等待时间,并引入5%忽略概率

  • □ 对话上下文追踪(最近N条消息,维护会话状态)

  • □ 多媒体消息识别(图片/文件/表情,合理忽略或提示)

P2 -- 个性化(RAG + 风格)

  • □ RAG检索本地历史对话库,召回Top-5相关片段

  • □ 系统Prompt融入目标说话风格(简短、口头禅、吐槽)

  • □ 将RAG结果作为Few-shot示例拼入Prompt

P3 -- 运维保障

  • □ 心跳保活(NapCat异常自动重启)

  • □ 日志记录(收到消息、回复、API调用量)

  • □ 错误重试与降级回复

  • □ 群白名单机制

P4 -- 未来扩展(可选)

  • 私聊应答、图片生成、命令系统、群管理、Web面板等

五、核心组件设计

5.1 NapCat 配置

  • 项目NapCatQQ

  • 安装git clone + pnpm install + pnpm build:shell

  • 运行 :Node.js 18+,默认 WebSocket 地址 ws://127.0.0.1:3001

  • 内存:约50~100MB

  • 登录:终端扫码

5.2 Bot 调度器(Node.js)

使用 npm 包:

  • ws -- WebSocket 客户端

  • better-sqlite3 + sqlite-vec -- 向量检索

  • openai -- LLM API 调用(兼容接口)

核心文件结构:

text

复制代码
~/qq-bot/
├── package.json
├── config.js         # 所有配置项
├── index.js          # 入口,WS连接与消息循环
├── timing.js         # 规则引擎(延迟/忽略)
├── rag.js            # RAG检索封装
├── llm.js            # LLM调用封装
├── context.js        # 上下文管理
└── tools/status.js   # 健康检查

5.3 Timing Agent 规则(示例)

text

复制代码
收到消息 → 计算等待时间(秒):
  1. 消息长度 ≤2字  → 3~7s
  2. 长度 11~20字   → 22±10s
  3. 长度 ≥21字     → 60±20s
  4. 深夜 (23~1点)  → ×0.5
  5. 同一人连发     → 1~3s (秒跟)
  6. 对话已超50条   → ×1.5 (疲劳)
  7. 5% 概率        → 忽略不回复
  8. 极长延迟 (P95) → 2~70分钟(模拟忙碌)

5.4 RAG 检索参数

  • 嵌入模型:Qwen3-Embedding-0.6B (GGUF Q8_0)

  • 向量维度:1024

  • 检索方式:sqlite-vec 的 ANN 索引,单次耗时 ~0.09s

  • 数据库:约18k个chunk,总大小189MB

  • 召回数量:Top-5

5.5 LLM Prompt 模板(脱敏版)

text

复制代码
系统: 你正在模仿一位群友的说话风格。其特点:
- 句子简短,平均6~7字
- 常用口头禅:吼吼、啊这、离谱、确实、妈的
- 爱吐槽,极少提问,多为陈述/感慨
- 与群内某位好友关系熟络,对话随意

历史相关对话 (RAG召回):
{rag_chunks}

当前说话人: {sender} 说: {message}
你的回复:

六、实施计划(预估5天)

阶段 任务 耗时
Day1 环境准备:安装Node.js、NapCat、扫码登录、拷贝嵌入模型与DB、启动Embedding Server 1天
Day2-3 调度器开发:WS连接、消息解析、Timing规则、RAG模块、LLM调用、集成调试 2天
Day4 Prompt调优:风格注入、RAG格式、长度控制、多场景测试 1天
Day5 上线打磨:小群实测、参数调整、错误处理、日志监控 1天

最快Demo:若不使用RAG和Timing,仅NapCat + LLM直调,1~2小时即可跑通。


七、成本预估

项目 费用
NapCat 免费开源
本地Embedding 免费(CPU推理)
LLM API(DeepSeek) ~¥1/百万token,日常用量极低
机顶盒电费 可忽略
QQ小号 免费(需自行注册)
总计 接近零成本

八、已有资产(可直接复用)

  • 历史聊天数据(脱敏后用于构建向量库)

  • 预生成的向量数据库(189MB,含约1.8万条块)

  • Qwen3-Embedding GGUF 模型文件

  • RAG查询脚本(已调优ANN索引)

  • 聊天特征分析报告(用于制定Timing规则)

  • NapCat源码(已拉取)

需新准备

  • 外部LLM API Key(推荐硅基流动领取免费额度)

  • 机顶盒系统确认(uname -m 是否为 aarch64

  • 备用QQ小号2~3个


九、开发建议

  1. 先跑通再完善 -- 首日先实现 NapCat + 基础LLM回复,能说话再逐步添加Timing和RAG。

  2. API Key优先 -- 没有Key无法调用LLM,建议提前注册。

  3. 注意账号安全 -- 小号需正常养号,避免频繁操作触发风控。

  4. 日志一定要加 -- 方便调试和监控,尤其在生产群中。


十、总结

本方案提供了一个低成本、可落地、高度拟人化的群聊AI机器人完整架构,充分利用了本地RAG和轻量级嵌入模型,在ARM64设备上即可流畅运行。通过灵活的规则引擎和外部LLM API,既可保证回复质量,又能模拟人类响应节奏,适合社群娱乐、内部测试等场景。

技术栈亮点 :Node.js + NapCat + sqlite-vec + GGUF嵌入式 + 外部LLM

部署形态:纯本地(除LLM API外无云端依赖),数据自主可控。

相关推荐
工业HMI实战笔记1 小时前
解放双手,声控未来:抗噪语音交互如何革新嘈杂车间的HMI操作体验
人工智能·学习·自动化·制造
ai产品老杨1 小时前
AI视频分析并发优化参数配置说明
人工智能·音视频
怪奇云呼军1 小时前
G.711、Opus 和重采样会拖慢识别吗?闪电智能VoiceAgent 的音频入口怎么选
java·人工智能·python·算法·云计算·音视频
chen_zn951 小时前
《VLA 系列》π0 | Flow Matching 动作专家 | 跨本体机器人策略 | 论文与源码解析
人工智能·具身智能·vla
观远数据1 小时前
先进制造业BI价值交付:三个车间数据场景与它们的ROI账本
大数据·人工智能
星辰_mya1 小时前
国内气象数据平台业务规则——自用
大数据·人工智能
jikemaoshiyanshi1 小时前
2026 AWS 中国峰会有哪些 AI Agent 专题演讲?按团队场景分层指南
大数据·人工智能
必须会一定会1 小时前
DeepSeek API 峰谷定价实战:计算 8 月 17 日后的 Agent 成本,并启动 Harness 预览版
人工智能·ai编程
搞科研的小刘选手1 小时前
【河南省科学院、河南工业大学主办 | 郑州举办】2026年计算机视觉与具身智能国际学术会议(CVEI 2026)
人工智能·计算机视觉·具身智能·学术会议·会议推荐