框架核心
框架核心指与 NapCat 连接、消息分发、插件装载、存储、WebUI 等与 LLM Agent 无关的宿主层。它提供了 Agent 运行所需的全部基础设施:消息如何进来、配置存哪里、日志怎么记、插件如何被加载。
flowchart LR
N["NapCat<br/>OneBot WebSocket"] --> B["BotClient"]
subgraph H["MerryBot 宿主"]
B --> L["Logic<br/>装配、重连与分发"]
L -->|"入站群消息"| M["MessageService<br/>本地化与异步入库"]
M --> I["MessageIngress<br/>本地消息快照"]
I -->|"同步分发"| P["插件系统<br/>加载、配置与依赖注入"]
L -.->|"启动时装配"| P
L --> C["ClockService<br/>持久化 cron 调度"]
L --> W["WebUI<br/>Blazor 管理后台"]
M --> S["LiteDB + storage/"]
P --> S
C --> S
end
P --> A["AgentPlugin"]
A -->|"读取历史/资源、写 AI 审计"| M
A --> G["Agent 引擎<br/>LLM、工具与会话"]
模块划分
| 模块 | 文档 | 职责 |
|---|---|---|
| 核心宿主 | 核心宿主 | 启动流程、组件装配(Logic)、配置管理、生命周期、消息处理链、统一日志 |
| 消息与 NapCat | 消息与 NapCat | OneBot 入站消息、消息链、本地资源引用与插件分发 |
| 存储 | 存储 | 插件数据(plugin_data.db)与历史记录(group_history.db + 对象存储)两大存储体系 |
| 插件子系统 | 插件子系统 | Plugin 抽象、互操作接口、内置插件一览 |
| WebUI 子系统 | WebUI 子系统 | Blazor 历史后台、Minimal API、安全模型 |
启动装配
整个宿主只有一个入口(MerryBot/Entry.cs,顶层语句),核心装配逻辑在 Logic(internal partial class,拆分为 Logic.cs / Logic.Plugins.cs / Logic.Message.cs / Logic.Config.cs / Logic.Event.cs / Logic.Groups.cs 等文件)。装配顺序参见核心宿主。
与 Agent 架构的关系
AgentPlugin是接收群消息的普通插件;AgentServicePlugin为 Agent 和 WebUI 提供 Skills、记忆和上下文快照服务。- 宿主提供定时任务调度器,Agent 只注册执行器;调度器的会话边界见 定时任务。
LlmProviderPlugin负责 Provider/Key 的存储与加密;Agent 通过LlmClient/LlmBackend发起请求。