跳转至

System Design

这份文档只描述当前仓库的大致设计,不把它写成一个已经完全稳定的大平台。

当前系统核心

项目目前最核心的链路是:

QQ / NapCat
    ↓ webhook
Python bot service
    ↓
message parsing / skill routing
    ↓
chat skill / reminder skill / other skills
    ↓
NapCat HTTP API / 本地模型工作流 / 本地 JSON

从工程上看,项目现在最重要的部分是:

  • QQ webhook 接入
  • Python bot 服务
  • skill routing
  • scheduler / reminder
  • 本地 JSON 持久化

私聊与群聊

当前系统已经区分:

  • 私聊消息处理
  • 群聊消息处理

这意味着后续可以继续分别扩展:

  • 私聊里的个人助手行为
  • 群聊里的规则化回复和触发策略

Skill Routing

这个项目的一个核心思路,是不要把所有消息都直接丢给大模型。

而是先做本地路由:

  • reminder / schedule 查询,优先程序直答
  • 普通自由对话,再走聊天链路
  • 文件 / 图片 / 自动化等消息,可交给独立 skill

这样能减少:

  • 不必要的 token 消耗
  • 错误回答
  • reminder / schedule 这类结构化信息被模型“瞎猜”

Reminder / Scheduler

项目当前已经有主动提醒能力,链路大致是:

QQ 私聊添加提醒
    ↓
本地 reminder store(JSON)
    ↓
scheduler 后台线程
    ↓
NapCat API 主动发私聊

这部分能力很重要,因为它说明项目已经不只是“被动聊天机器人”。

本地持久化

当前主要使用本地 JSON 文件来保存:

  • reminders
  • scheduler state
  • schedule
  • 其他轻量配置 / 状态

这对个人项目足够简单直接,也便于调试。
如果后续复杂度继续上升,再考虑数据库并不迟。

后续演进方向

当前设计已经为后面几条路线预留了空间:

1. Playwright 浏览器自动化

用于更稳定的网页登录、流程执行、内容抓取和状态保留。

2. 桌面自动化

用于和实体机上的本地环境联动,承接更强的自动化能力。

3. ESP32 桌宠 / 硬件端

把提醒、状态、消息和陪伴能力延伸到桌面设备侧。

当前阶段的重点

现阶段并不是把功能堆得越多越好,而是先把以下部分做稳:

  • 消息链路
  • skill 路由
  • reminder / scheduler
  • 主动消息发送
  • 本地调试与日志

这些基础稳定之后,后续扩展 Playwright 和硬件能力会顺很多。