EduOpenAI Core 文档/插件架构

插件架构

瘦内核 + 胖插件,上游升级零侵入

EduOpenAI 遵循「瘦内核 + 胖插件」原则:主框架仅提供运行时容器和基础 API,所有业务功能通过插件(plugins/edu-*)实现。插件零侵入主框架代码,确保主系统(OpenMAIC 基线)可独立升级。

分层模型

升级安全分层
┌─────────────────────────────────────────────────┐
│ 上游 OpenMAIC 基线(app/ components/ lib/ 等)  │ ← 升级被覆盖,PATCH 是唯一侵入点
├─────────────────────────────────────────────────┤
│ 品牌覆盖层(site_settings / env / 覆盖文件)     │ ← 配置驱动,非代码修改
├─────────────────────────────────────────────────┤
│ lib/plugin/ PluginAPI 桥接层(8 模块)          │ ← 升级安全区
├─────────────────────────────────────────────────┤
│ plugins/edu-* 业务插件                          │ ← 升级安全区
├─────────────────────────────────────────────────┤
│ app/api/edu/[...slug]/route.ts Catch-All 路由   │ ← 唯一基线挂载点,接口稳定
└─────────────────────────────────────────────────┘

功能实现优先级

优先级实现方式侵入性适用场景
P0插件(plugins/edu-xxx/)不侵入所有业务功能:API、UI、数据模型、迁移
P1扩展点注册(ExtensionPoints)不侵入向基线注入行为(导航项、设置 Tab、首页模块)
P2配置覆盖(site_settings / env)不侵入品牌文字、功能开关、默认值
P3PATCH 基线修改侵入仅限 P0-P2 无法实现场景(需 CTO 审批 + 登记 patch-registry)

升级安全区

目录说明升级冲突风险
plugins/edu-*/业务插件(manifest/api/components/migrations)零冲突(上游不触碰)
lib/plugin/PluginAPI 桥接层(registry/extension-points/event-bus/api-router 等 8 模块)零冲突(上游不触碰)
app/api/edu/[...slug]/route.tsCatch-All 插件 API 挂载点低(接口稳定)
注意
红线:禁止在基线新增 API 端点/数据库表/UI 页面/业务逻辑;基线 PATCH 仅限白名单并登记 patch-registry.md(PATCH 编号连续登记)。