1. 文档目的
本文档用于从实施级视角说明 OpenMAIC 新一代课程内核的目标架构。
本文件以 [15-课程内核重构蓝图(V1).md](./15-%E8%AF%BE%E7%A8%8B%E5%86%85%E6%A0%B8%E9%87%8D%E6%9E%84%E8%93%9D%E5%9B%BE%EF%BC%88V1%EF%BC%89.md) 和 [16-课程内核重构工程推进路线图(V1).md](./16-%E8%AF%BE%E7%A8%8B%E5%86%85%E6%A0%B8%E9%87%8D%E6%9E%84%E5%B7%A5%E7%A8%8B%E6%8E%A8%E8%BF%9B%E8%B7%AF%E7%BA%BF%E5%9B%BE%EF%BC%88V1%EF%BC%89.md) 为最高基线。
2. 架构定位
系统本质不是“AI 课堂页面平台”,而是:
课程工厂教学运行内核
其中:
课程工厂负责把教材、知识点、诊断证据、能力目标转成稳定课程资产教学运行内核负责把课程资产转成课堂过程、训练过程和回挂过程
总体策略固定为:
单引擎、多策略、多投影
第一阶段实现形态固定为:
模块化单体
3. 顶层原则
- 课程内核优先于平台外壳
- 领域模型优先于页面结构
- 生成链与运行链分离
- 包级边界优先于框架选型
- 基础能力通过 adapter 接入,不写进内核主流程
- 先稳定生成课程主干,再逐步增强质量、交互和多模态深度
4. 主骨架
课程主骨架已固定为:
Stage -> Unit -> Scene
其中:
Stage表示一门完整课程或一个完整课堂实例Unit表示面向教学目标的组织块Scene表示课堂运行的最小教学场景
PracticePlan 已进入课程主干,不再只是课后附属题单。
运行层的 Action 仍然保留,但它属于:
Scene的运行附属对象runtime-engine的消费对象
而不是课程主骨架本身。
5. 目标架构分层
5.1 核心包
packages/domain-modelpackages/generation-contractspackages/course-kernelpackages/runtime-enginepackages/subject-enhancerspackages/infra-adapters
5.2 应用壳层
apps/apiapps/web
5.3 分层职责
domain-model
负责稳定领域对象,不承载生成算法和页面实现。
重点包括:
Stage / Unit / Scene / PracticePlanKnowledgePoint / CompositeKnowledgeChainProblemSolvingPattern / CapabilityUnitGapProfile / RemediationCoursePlanCourseStrategy / LessonIntent / AssemblyMode / UnitType
generation-contracts
负责统一三条正式主线的输入输出协议。
重点包括:
GenerationInputV2StagePlan / UnitPlan / ScenePlanStageArtifact / Projection- 任务状态、阶段日志、错误协议
course-kernel
负责课程装配主流程,是课程工厂的编排中枢。
重点包括:
- 输入理解与上下文归一化
- 三条主线入口分流
- 正向组课
- 诊断补救反向组课
- 能力专题反向组课
PracticePlan装配
runtime-engine
负责消费课程资产并驱动课堂运行,不参与组课决策。
重点包括:
- Scene 切换
- Action 执行
- 检查点与小测事件
- 训练回挂与运行快照
subject-enhancers
负责学科增强注入。
重点包括:
- 学科表达策略
- 模式库
- 图示、题型、讲评和补救建议
infra-adapters
负责接入外部能力。
重点包括:
- LLM
- Image / Video
- TTS / ASR
- PDF 解析
- Web Search
- PostgreSQL / Redis / MinIO
apps/api
负责请求接入、任务编排、持久化和对外暴露。
apps/web
负责老师与学生消费界面,不承载课程协议本体。
6. 包级依赖规则
允许的主方向如下:
查看结构源码
flowchart LR
WEB["apps/web"] --> API["apps/api"]
API --> GC["packages/generation-contracts"]
API --> CK["packages/course-kernel"]
API --> RT["packages/runtime-engine"]
API --> IA["packages/infra-adapters"]
CK --> DM["packages/domain-model"]
CK --> GC
CK --> SE["packages/subject-enhancers"]
CK --> IA
RT --> DM
RT --> IA
SE --> DM
IA --> EXT["External Providers / DB / Storage"]禁止的反向依赖:
domain-model不得依赖任何应用层或基础设施层generation-contracts不得依赖apps/*runtime-engine不得依赖course-kernelsubject-enhancers不得改写主骨架协议apps/web不得直接依赖 provider SDK
7. 两条主链
7.1 生成链
GenerationInputV2 -> StagePlan -> UnitPlan -> ScenePlan -> PracticePlan -> StageArtifact
7.2 运行链
StageArtifact -> RuntimeSession -> SceneSwitch -> ActionExecution -> CheckpointFeedback -> RuntimeSnapshot
8. 三条正式主线
统一通过 GenerationInputV2.learningSessionMode 区分:
forward_designdiagnostic_remediationcapability_reverse_design
它们共享同一套内核,但采用不同装配策略。
9. 当前阶段的架构优先级
当前工程优先级固定为:
- 先稳定
forward_design主链 - 再补
diagnostic_remediation - 再补
capability_reverse_design - 最后抬升课程质量、交互深度和 AI 深覆盖
这意味着当前不是微服务拆分阶段,也不是平台外壳优先阶段。
10. 结论
当前推荐的正式目标架构是:
- 单仓
monorepo - 服务端为权威
- 模块化单体
- 课程工厂与教学运行内核分离
- 课程主骨架稳定为
Stage -> Unit -> Scene
后续无论是否拆服务,都不得破坏这条主线。