生命是一种语言,它为我们转达了某种真理;如果以另一种方式学习它,我们将不能生存。—— 叔本华

OpenMAIC:一键生成沉浸式多智能体课堂,让学习从听课走向参与

传统课堂往往从一份讲义开始。

先有标题,再有知识点,然后是幻灯片、练习题、讲解、讨论与作业。每个环节都很重要,却也常常彼此分散:材料在文档里,讲解在屏幕上,互动在另一处,提问与反馈又落在不同工具中。

OpenMAIC 想做的,是把这些本来分散的学习环节汇聚成一间能够生成、播放、互动和持续编辑的 AI 课堂。

它的全名是 Open Multi-Agent Interactive Classroom,是一个开源 AI 平台。用户可以输入一个主题,或上传相关材料,将其转化为丰富的互动式课堂体验。系统通过多智能体编排,让 AI 教师与不同角色的 AI 同伴参与讲解、讨论、提问和互动,使一堂课不止有内容,也拥有过程、节奏与参与感。

项目地址:https://github.com/THU-MAIC/OpenMAIC

从一句学习需求开始,生成完整课程

学习常常从一个朴素的问题开始。

想学什么。

想弄懂什么。

手里的资料究竟该怎样消化。

OpenMAIC 提供一键式课程生成功能。用户可以描述希望学习的主题,也可以附上参考材料,系统会据此构建完整课程。

它支持将多种材料送入内容处理流程,包括 PDF、Word、PowerPoint、电子表格、文本、图片、音频与视频。经过已配置的提取能力处理后,这些来源会成为课程生成的输入内容。

课程生成采用两阶段流程。

第一阶段是大纲。

AI 会分析输入内容,并生成结构化课程大纲。

第二阶段是场景。

大纲中的每一项会进一步变成丰富的教学场景,可能是幻灯片、测验、交互模块,或项目式学习活动。

这条流程让课程不必从空白页面里一点点堆叠。

一个主题可以先形成结构。

结构再逐渐成长为页面、讲解、练习与互动。

材料不再只是被上传后静静躺在文件区,而有机会参与课程内容的生成过程。

多智能体进入课堂,学习不再只是单向播放

OpenMAIC 的核心特征之一,是多智能体课堂。

在这里,AI 不只是回答一个问题的单独助手,也可以成为课堂中的不同角色。AI 教师与 AI 同伴能够讲课、讨论,并与学习者进行实时互动。

课程中的互动形式包括课堂讨论、圆桌辩论、问答模式与白板协作。

在课堂讨论中,智能体可以主动发起话题,学习者可以随时加入,也可能被邀请参与。

在圆桌辩论中,多个拥有不同角色设定的智能体围绕主题展开讨论,并配合白板图示帮助表达观点。

在问答模式中,学习者可以自由提出问题,AI 教师能够通过幻灯片、图表或白板绘制作出回应。

共享白板则让智能体可以实时绘制内容,例如逐步书写公式、绘制流程图,或用图形方式解释概念。

课堂于是拥有了一种更接近现场交流的状态。

知识不再只是从一张张页面中向下流动。

问题可以出现。

不同观点可以相遇。

图示可以被即时画出。

讲解也可以随着互动继续延展。

幻灯片、测验、模拟与项目式学习,共同组成课程场景

OpenMAIC 并不将课程局限于一种页面形式。

它提供多种课堂场景,让不同类型的知识能够以不同方式被呈现和参与。

幻灯片:让讲解拥有声音、焦点与节奏

幻灯片是课堂中最熟悉的表达形式之一。

在 OpenMAIC 中,AI 教师可以通过语音旁白进行讲解,并结合聚光效果与激光笔动画推进内容。知识点不只是被放置在画面上,而是可以随着讲解节奏被强调、被指向、被展开。

对于课程来说,幻灯片承担了内容组织与讲解呈现的角色。

对于学习者来说,它则成为进入主题的第一块屏幕。

测验:让理解能够被即时回应

学习并不只需要输入,也需要反馈。

OpenMAIC 支持互动测验,包括单选题、多选题和简答题。AI 可以对答案进行实时评分并给出反馈。

测验不再只是课程结束后的检查点。

它可以出现在学习过程之中。

当一个知识点刚刚讲完,学习者可以立刻回应。

当答案出现,AI 也能及时给出反馈。

理解、作答与反馈因此更紧密地连接在一起。

交互式模拟:让抽象知识可以被动手探索

有些知识并不适合只靠文字或静态图像理解。

OpenMAIC 提供基于 HTML 的交互式实验内容,用于支持可视化与动手式学习。物理模拟器、流程图及其他交互内容,都可以成为课堂场景的一部分。

学习者不只是观看一个结论,还可以通过操作去观察变化。

条件发生改变时,过程如何演进。

参数被调整后,结果如何响应。

抽象概念如何在交互中显露出自己的结构。

交互式模拟让知识不再总是停留在描述层面,而拥有了可以探索的空间。

项目式学习:在任务与里程碑中协作

OpenMAIC 也提供项目式学习场景。

学习者可以选择角色,并与 AI 智能体围绕结构化项目进行协作。项目中包含里程碑与交付物,让学习不只是完成一次问答,也可以围绕目标逐步推进。

项目式学习为课程增加了行动感。

知识不只是被理解,也可以被带入任务。

学习者不只是听讲,也可以在项目中承担角色,与智能体共同完成一段有结构的工作过程。

深度互动模式:从被动听讲到主动探索

OpenMAIC 将快速生成课堂内容的方式称为标准模式。

而深度互动模式,则进一步面向可探索、可操作、可参与的学习体验。

它强调的不是单纯接收信息,而是让学习者在课堂中动手。

深度互动模式包含五类交互式界面。

三维可视化

三维可视化用于呈现抽象结构。

当复杂对象拥有空间形态,学习者可以通过三维表达更直观地观察其组成与关系。

模拟环境

模拟环境用于展示动态变化与实验结果。

过程不再只是被描述,而可以通过变化中的状态被观察。

知识小游戏

知识型小游戏通过互动挑战帮助强化理解与记忆。

学习过程不必总是线性阅读,也可以在完成挑战的过程中推进。

思维导图

思维导图帮助学习者组织知识结构。

零散的概念可以被放到更清晰的框架中,帮助建立整体理解。

在线编程

在线编程支持在浏览器中编写与即时运行代码。

学习者可以通过书写、测试和反复调整参与学习过程,让编程知识不只停留在观看示例上。

在这些互动界面中,AI 教师还可以主动操作界面,突出重点区域、设置条件、给出提示,并在合适的时刻引导学习者关注关键内容。

生成的交互式界面支持桌面、平板与移动设备。

一堂课不再只是一段固定播放内容,也可以随着设备与操作方式自然呈现。

Pro 工作台:与课程构建智能体持续对话

OpenMAIC 1.0.0 引入了 Pro 工作台。

它在经典的一键生成体验之外,增加了一个以对话为中心的课程构建空间。用户可以和课程构建智能体交流,让它规划、构建与修改完整课程。

这一能力让课程生成不止是一次性动作。

用户可以继续提出后续要求。

可以在课程构建过程中调整方向。

可以让智能体围绕已有结果继续修改。

工作台中的会话是可持久保存的。服务端支持的运行过程能够在工作进程重启后继续恢复,用户可以取消任务、恢复任务,也可以在运行中继续引导任务方向。

Pro 工作台由可折叠的导航区域、对话区域与课堂区域组成。已经打开的课程会以标签页形式保留在课堂区域中,用户可以在课程内容与对话构建过程之间来回切换。

这种体验让课程构建更像一次持续协作。

不是输入一句需求后等待结果。

而是在生成、查看、修改与继续推进之间,和智能体共同完成课程。

课程构建智能体能做什么

OpenMAIC 的课程构建智能体通过明确且经过验证的工具完成工作,而不是直接修改不可见的内容块。

它能够规划多课时课程,创建课程与文件夹,也可以重命名和移动课程。

在编辑方面,它可以读取和搜索课程场景描述内容,对单个场景进行原子化修改,也能够生成、复制、插入、删除与重新排序页面,同时编辑旁白和课程结构。

在材料使用方面,智能体可以接收上传文件,提取文档、音频与视频内容,搜索提取后的文本,获取受信任的网页地址,并复用材料中的媒体内容。

在媒体创作方面,它可以通过已配置的服务端提供商生成图片与视频,也可以生成旁白音频。

在导入与检查方面,它支持导入 .pptx 幻灯片并保留原有布局,并在可用时渲染场景预览,用于视觉检查。

在课堂配置方面,它可以列出可用声音,设置智能体阵容,并在已配置可插拔注册适配器时克隆或注册声音。

OpenMAIC 内置二十项技能,覆盖课程规划、深度研究、互动教学、讲授式教学、研讨式教学、职业教育风格、幻灯片与场景制作、PPTX 导入、编辑与样式复用等方向。

用户也可以创建自己的技能。这些用户定义技能会按所有者保存,并且可以通过同一套运行时创建、读取与修改。

持久会话与服务端运行时

Pro 工作台并不是默认启用的能力。

它需要通过构建时入口和服务端运行时共同启用,并使用与服务端持久化相同的 PostgreSQL 连接。

1
2
3
4
NEXT_PUBLIC_PRO_WORKBENCH_ENABLED=true
OPENMAIC_AGENT_RUNTIME_ENABLED=true
DATABASE_URL=postgres://openmaic:openmaic-dev@postgres:5432/openmaic
MODEL_ROUTES='{"maic-agent-driver":{"model":"openai:gpt-5.5","api":"openai-completions"}}'

工作台启用后,课程构建会话由数据库支持,并具有租约、心跳、崩溃恢复、取消与后续指令引导能力。

系统还通过数据库维护的修订计数器,让课程场景与页面的新鲜度持续递增。工作台因此可以只重新获取发生变化的场景,而不是每次都重新加载全部内容。

服务端路由以提供商中立的方式解析大语言模型、媒体、语音识别、语音合成与搜索配置。凭据不会传递到浏览器中。对于服务端提供的能力,也可以通过统一的开关关闭。

如果模型路由没有被正确解析,系统会明确失败,而不是猜测应使用哪个服务商。

存储可以从浏览器开始,也可以进入 PostgreSQL

OpenMAIC 默认无需数据库即可运行。

课程文档、学习者运行记录、设备或账户键值数据,以及资源文件,都可以使用浏览器存储。

项目中的 @openmaic/storage 包定义了可替换的存储能力,并支持 PostgreSQL 形式的课程文档、学习者运行数据、资源、持久 Agent 会话、会话材料与用户技能。

当启用服务端持久化后,运行时会话与课程文档会存放在服务端。浏览器中仍会保留设备级数据,例如匿名设备学习者标识与播放位置。

启用 PostgreSQL 服务端持久化时,可以使用如下配置方式:

1
2
3
cp .env.example .env.local
printf '\nDATABASE_URL=postgres://openmaic:openmaic-dev@postgres:5432/openmaic\nPERSISTENCE_DEV_TOKEN=openmaic-local-dev\n' >> .env.local
NEXT_PUBLIC_PERSISTENCE=1 NEXT_PUBLIC_PERSISTENCE_TOKEN=openmaic-local-dev docker compose --profile server-persistence up --build

这一部署配置会运行 OpenMAIC 应用与 PostgreSQL 两个容器。持久化 HTTP 服务嵌入在应用中的 /api/persistence 路径下,并不存在单独的持久化服务。

课程数据可以从浏览器存储逐步迁移到已配置的服务端存储中。迁移以课程为单位,在课程首次被访问时触发。

让材料进入课程,而不是停留在上传区

材料是学习的重要起点。

OpenMAIC 支持把文档、音频和视频等内容带入会话材料流程。课程构建智能体可以围绕这些材料生成内容,也可以搜索已经提取出的文本。

对于 PDF,项目提供统一接口以支持多种解析提供商。

内置的 unpdf 用于基础文本提取和图片提取,不需要额外配置。

本地部署的 MinerU 则能够提供更丰富的 PDF 解析能力,包括保留 Markdown 布局的文本提取、表格识别、LaTeX 公式提取、更好的 OCR 支持,以及 Markdown、JSON、docx、HTML 与 LaTeX 等输出形式。

OpenMAIC 还可以使用本地音视频提取能力。

如果系统安装了 ffmpeg,并且 ffmpegffprobe 可以通过 PATH 执行,系统可以在本地提取带时间戳的转录内容与准备好的视频关键帧。

对于本地语音识别,OpenMAIC 支持通过 FunASR 的 OpenAI 兼容服务进行转录。内置提供商支持 SenseVoiceSmall、Paraformer 与 Fun-ASR-Nano,不需要 API Key。

1
2
3
4
python -m pip install torch torchaudio
python -m pip install "funasr==1.4.0" fastapi uvicorn python-multipart
python -m pip install vllm
funasr-server --device cuda --model fun-asr-nano

随后可以将 OpenMAIC 指向本地语音识别服务:

1
ASR_FUNASR_BASE_URL=http://localhost:8000/v1

对于仅使用 CPU 的环境,可以使用 SenseVoice 模型启动服务。

本地模型、本地语音与本地媒体能力

OpenMAIC 支持 Lemonade 作为本地 AI 提供商。

Lemonade 可以用于大语言模型、图像生成、语音合成与语音识别,并兼容 OpenAI 风格接口,不需要 API Key。

1
2
3
4
LEMONADE_BASE_URL=http://localhost:13305/v1
TTS_LEMONADE_BASE_URL=http://localhost:13305/v1
ASR_LEMONADE_BASE_URL=http://localhost:13305/v1
IMAGE_LEMONADE_BASE_URL=http://localhost:13305/v1

在语音合成方面,OpenMAIC 还提供对 VoxCPM2 的适配能力。

用户可以在自己的硬件上运行 VoxCPM 后端,再在 OpenMAIC 的设置中选择对应后端并填写基础地址。VoxCPM2 支持自动声音、提示词声音与克隆声音三种模式。

自动声音会根据每个智能体的角色设定,在合成时生成声音提示。

提示词声音允许用自然语言描述声音风格。

克隆声音则允许上传短参考音频或在浏览器中录制音频,并在每次合成时发送给 VoxCPM 后端。

1
TTS_VOXCPM_BASE_URL=http://localhost:8000/v1

这些本地能力让课程中的模型、语音、图像与识别服务不必只有单一来源,而可以根据已配置的服务端或本地服务进行组合。

支持多种模型提供商

OpenMAIC 允许用户接入不同的大语言模型提供商。

只需在环境配置中至少填写一个模型提供商 Key,即可开始使用。README 中列出的支持对象包括 OpenAI、Azure OpenAI、Anthropic、Amazon Bedrock、Google Gemini、DeepSeek、Qwen、Kimi、MiniMax、Grok、OpenRouter、Doubao 等。

例如,使用 OpenAI 可以这样配置:

1
2
OPENAI_API_KEY=sk-...
DEFAULT_MODEL=openai:gpt-5.5

使用 Amazon Bedrock 时,可以设置区域、模型与默认模型:

1
2
3
BEDROCK_REGION=us-east-1
BEDROCK_MODELS=us.anthropic.claude-sonnet-5,us.anthropic.claude-opus-4-8
DEFAULT_MODEL=bedrock:us.anthropic.claude-sonnet-5

也可以通过 server-providers.yml 维护服务端提供商配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
providers:
openai:
apiKey: sk-...
azure:
apiKey: ...
baseUrl: https://YOUR-RESOURCE.openai.azure.com/openai
models:
- YOUR-DEPLOYMENT-NAME
anthropic:
apiKey: sk-ant-...
bedrock:
models:
- us.anthropic.claude-sonnet-5
- us.anthropic.claude-opus-4-8

OpenMAIC 的提供商设计强调明确配置。

服务端会发现可用能力并解析模型路由,用户可以通过开关禁用特定能力。模型与服务提供商的关系不依赖隐式猜测,而是通过清晰的配置进入课程生成和运行流程。

课堂可以导出为 PowerPoint、互动网页与课程包

一堂生成完成的课,并不必须停留在 OpenMAIC 的浏览器界面中。

项目支持多种导出形式。

格式 内容
PowerPoint .pptx 可编辑的幻灯片,包含图片、图表与 LaTeX 公式
互动 HTML 包含交互式模拟内容的独立网页
课堂 ZIP 包含课程结构与媒体内容的完整课堂导出包

导出 .maic.zip 课堂或资源包时,OpenMAIC 会将交互场景引用的外部资源内联,使课堂能够用于离线或内网环境。

视频导出则是一项可选能力。

课程中的导出视频菜单会在浏览器中构建自包含的 Hyperframes 项目。若要将其渲染为 MP4,需要 Chromium 与 FFmpeg,因此项目提供独立的渲染服务。

启动视频导出服务可以使用:

1
docker compose --profile video-export up --build

渲染服务以异步方式处理任务。

用户提交渲染任务后,可以查询状态与进度,并在任务成功后下载 MP4。渲染任务支持取消,状态包括排队、运行、成功、失败与已取消。

渲染服务将不受信任的上传归档限制在明确的边界中,例如归档条目数量、单个条目展开大小、总展开大小与压缩比。课程页面随后会在无头 Chromium 中执行,服务还通过网络隔离与出口限制来约束渲染环境。

从本地开发开始启动课堂

运行 OpenMAIC 需要 Node.js 20 或更高版本,以及 pnpm 10 或更高版本。

安装依赖后,可以复制环境配置文件:

1
2
pnpm install
cp .env.example .env.local

.env.local 中至少配置一个大语言模型提供商 Key 后,启动开发环境:

1
pnpm dev

应用会运行在本地 3000 端口。

如果需要构建生产版本,可以执行:

1
pnpm build && pnpm start

项目也支持 Docker 部署。

1
2
cp .env.example .env.local
docker compose up --build

对于共享部署,可以通过 ACCESS_CODE 设置站点级访问密码。设置后,访问者进入应用前需要输入密码,API 路由也会受到保护。

1
ACCESS_CODE=your-secret-code

从浏览器课堂到消息应用中的课程生成

OpenMAIC 支持与 OpenClaw 集成。

通过这一集成,用户可以从飞书、Slack、Discord、Telegram、WhatsApp 等消息平台中发起课堂生成。用户只需要向自己的 AI 助手表达希望学习的内容,助手便可以进入相应的生成流程。

OpenClaw 技能支持托管模式与自托管模式。

托管模式使用访问码,不需要本地部署。

自托管模式则会引导用户完成克隆、依赖安装、API Key 配置与服务启动。

技能还会提交异步生成任务并轮询任务状态,在课程准备完成后返回结果。每一个步骤都会先请求用户确认,而不是进行不可见的自动操作。

安装对应技能的命令为:

1
clawhub install openmaic

这让 OpenMAIC 的课程生成入口不只停留在应用首页,也可以进入用户平时使用的聊天平台。

面向不同学习场景的课堂形式

OpenMAIC 可以围绕不同主题生成课堂。

它可以用于从零开始学习编程,也可以用于解释规则、分析材料或拆解论文内容。

但它并不将课程限定在某一种学科。

课程生成从主题或材料出发。

多智能体课堂提供讲解、讨论与问答。

幻灯片承担讲述。

测验提供反馈。

互动模拟支持探索。

项目式学习提供角色、里程碑与交付物。

白板让概念以图形、公式和流程的形式出现。

语音、图片、视频与网页内容则可以进入课程构建过程。

因此,一堂课可以不是单一媒介的排列,而是一组围绕学习主题组织起来的场景。

结语

OpenMAIC 想构建的,不只是一个自动生成课件的工具。

它更像一间会随着主题、材料与对话不断成形的数字课堂。

输入一句学习需求,课程可以开始拥有大纲。

上传一份资料,内容可以进入生成流程。

选择一个角色,项目式学习可以开始推进。

提出一个问题,AI 教师可以通过讲解、图示或白板回应。

打开 Pro 工作台,课程又可以成为一段持续协作的构建过程。

从一键生成,到多智能体互动。

从幻灯片与测验,到模拟、游戏、思维导图与在线编程。

从浏览器存储,到 PostgreSQL 支持的持久会话。

从本地模型、语音与识别能力,到可导出的 PowerPoint、互动 HTML、课程包与视频。

OpenMAIC 让课程不再只是静态内容的容器,而成为一个能够生成、讲解、讨论、操作、编辑与延续的学习空间。