OpenMAIC 技术解读:清华团队开源多智能体课堂,一键把任何主题变成能对话的网课

一个开源项目把"听网课"这件事整个重做了:老师在讲,同学在举手,白板上有推导,你随时插话提问

OpenMAIC 技术解读:清华团队开源多智能体课堂,一键把任何主题变成能对话的网课

OpenMAIC 官方横幅

8 月 27 日,清华 THU-MAIC 团队发布了 OpenMAIC v1.0.0,并在 GitHub Trending 上冲到榜首,日增 star 超过 1600。这个项目的定位一句话可以说清:输入一个主题或者一份文档,几分钟内生成一节完整的互动课堂——AI 老师对着幻灯片讲课,AI 同学参与讨论,白板上实时推导公式,你随时可以举手插话。

它想替代的东西,是我们都熟悉的录播网课:几十分钟的视频,倍速看完,提问靠评论区,答疑靠缘分。

从 MOOC 到 MAIC:一篇论文先回答了"为什么要重做网课"

OpenMAIC 不是先有代码再找故事。团队在《Journal of Computer Science and Technology》2026 年刊发了论文《From MOOC to MAIC: Reimagine Online Teaching and Learning through LLM-driven Agents》,系统论述了他们眼中学历教育的核心:不仅是内容传递,还有课堂里的即时反馈——老师根据学生的表情和提问调整节奏,同学之间的讨论互相纠偏。录播网课恰恰把这一半砍掉了,只剩下单向的内容投喂。

MAIC(Multi-Agent Interactive Classroom)的思路,是用多个 LLM 驱动的智能体把砍掉的那一半补回来:老师智能体负责讲授,同学智能体负责提问和讨论,白板和语音负责表达。OpenMAIC 把这套研究做成了可自部署的开源平台,MIT 协议,任何人可以拿去改、拿去商用。

生成管线:大纲先行,场景逐个生成

深度交互模式的 3D 太阳系模拟

打开 OpenMAIC,经典模式下你只需要描述想学什么,或者丢给它一份 PDF、Word、PPT、音频、视频。生成走两阶段管线:第一阶段把输入分析成一份结构化的课程大纲,第二阶段把大纲的每一项展开成一个"场景"。

场景是 OpenMAIC 里比"页"更丰富的单位,包含四类:

  • 幻灯片:AI 老师带语音讲解,带聚光灯效果和激光笔动画;
  • 测验:单选、多选、简答,AI 实时批改反馈;
  • 交互模拟:HTML 形式的可动手实验,比如物理仿真、流程图;
  • PBL 项目制学习:选一个角色,和 AI 智能体协作完成带里程碑的项目。

深度交互模式(Deep Interactive Mode)是它区别于普通"AI 做 PPT"的关键。生成的交互场景有五种形态:3D 可视化、模拟实验、知识小游戏、思维导图、浏览器内在线编程。上面截图里的 3D 太阳系公转模拟就是官方示例之一——更关键的一点是,AI 老师可以直接操作这个界面:高亮关键区域、设置条件、在合适的时机给提示。交互 UI 全部响应式,桌面、平板、手机都能跑。

课堂进行时:多智能体怎么协作

生成完成之后,课堂由一条 LangGraph 状态机驱动。播放引擎管理"待机、播放、实时"三个状态,动作引擎执行 28 种以上的动作类型:语音、白板绘制、书写、图形、图表、聚光灯、激光笔。

课堂形态有四种:课堂讨论(智能体主动发起,你可以随时插话或被点名)、圆桌辩论(多个不同人设的智能体就一个主题互相辩论,配白板演示)、自由问答(你随时提问,老师用幻灯片、图表或白板画回答)、以及白板协作(智能体在共享白板上实时画图,一步步解方程、画流程图)。

语音是双向的:TTS 让老师开口说话,ASR 让你用麦克风直接提问。TTS 侧可以接入 VoxCPM2(OpenBMB 开源的语音模型)自建,支持音色克隆——录一段参考音频,老师就用你的声音讲课。

v1.0.0 的主角:把"生成课程"变成一个 agent 任务

v1.0.0 除了经典的一键生成,新增了 Pro 工作台,这是本次大版本真正的主角:一个对话式 agent,你跟它聊,它规划课程结构、逐页生成、按你的反馈修改。

它的架构和市面上"用 LLM 生成一坨 JSON 就完事"的做法有几个清晰的差异:

持久会话。 agent 会话直接落在 PostgreSQL 里,带租约(lease)、心跳、崩溃恢复、取消和运行中转向(steer)语义。worker 重启,会话可以接着跑;任务进行到一半,你可以插一句话改变方向。

显式工具,不是改黑盒。 agent 通过一组经过校验的工具操作课程:读取和检索课程 DSL、原子化地修补单个场景、生成/复制/插入/删除/重排页面、编辑旁白和结构。数据库维护每个阶段和每个场景的修订计数器,前端只重新拉取真正变过的场景,不做全量刷新。

20 个内置技能。 覆盖课程规划、深度研究、讲座、工作坊、职业教育等教学风格,以及幻灯片技艺、PPTX 导入、编辑和风格复用。用户可以写自己的技能,存储在个人空间,通过同一套运行时创建、读取和修补。

素材进,课程出。 会话支持上传文档、音频、视频,或直接网络检索;agent 从素材出发构建课程。.pptx 导入保留原始版式。

值得称道的是模型路由的设计:maic-agent-driver 必须显式指定到某个 provider 前缀的模型,不支持回退,路由解析不出来就直接报错。用 README 的话说,"unresolved model routes fail loudly instead of guessing a vendor"——宁可失败,不猜厂商。这种设计哲学在开源项目里少见。

部署:从浏览器单机到 PostgreSQL 集群,按需伸缩

GitHub 仓库卡片:24k stars,4k forks

OpenMAIC 的部署梯度拉得很开:

零数据库模式(默认):课程文档、学习记录、素材全部存浏览器端,clone 下来 pnpm dev 就能跑,连 API key 都只需要配一个 LLM 提供商。

PostgreSQL 持久化:一条 docker compose --profile server-persistence up 起两个容器(app + PostgreSQL),课程和学习记录全部切到服务端。资产层可以在 PostgreSQL 和 S3 之间选择,字节直出或短时签名 URL 重定向都支持,未引用资产有离线回收器定时清理(默认 15 分钟一跑,1 小时宽限期)。

服务端 agent 运行时:打开 NEXT_PUBLIC_PRO_WORKBENCH_ENABLED=trueOPENMAIC_AGENT_RUNTIME_ENABLED=true,Pro 工作台和持久 agent 会话即启用,和持久化共用同一个数据库连接。

README 对安全边界的说明也相当诚实:NEXT_PUBLIC_PERSISTENCE_TOKEN 编译进前端 bundle,每个访客都拿得到,它防不了任何人,只用于把无关的网络扫描器挡在可信网络之外;生产部署必须把 server-auth.ts 换成真实的会话验证。官方直接告诉你"这个东西不是秘密,别拿它当认证"。

模型与语音:几乎不锁定任何供应商

模型侧支持 OpenAI、Azure OpenAI、Anthropic、Amazon Bedrock、Gemini、DeepSeek、Qwen、Kimi、MiniMax、Grok、OpenRouter、豆包、腾讯混元、小米 MiMo、GLM,以及 Ollama 和 Lemonade 本地推理——基本上把国内外主流模型和本地部署都覆盖了,任何 OpenAI 兼容 API 都能接。

README 推荐的默认模型是 Gemini 3 Flash(质量与速度的平衡),国内用户走 GLM 或 DeepSeek 也只需要改两行环境变量。语音识别侧支持 FunASR 本地部署(SenseVoiceSmall、Paraformer、Fun-ASR-Nano,CPU 就能跑),文档解析可选 MinerU 自建或阿里 DocMind。

还有一个面向普通用户的设计:OpenClaw 集成。装一个 skill 之后,在飞书、Slack、Discord、Telegram 等 20 多个聊天应用里直接说"教我量子物理",课堂生成完自动把链接发回来,全程不需要碰终端。

搜索价值:什么人会在什么场景搜到这个项目

这个项目对不同人群的实用面不太一样:

  • 自建网课/知识库的人:任何文档变成可对话的互动课程,PPTX 可回导,离线导出后断网可播;
  • 做 agent 应用开发的工程师:v1.0.0 的持久会话设计(租约、心跳、崩溃恢复、运行中转向)是一份可以直接抄的工程参考;
  • 教育技术研究者:JCST 论文 + 开源实现 + SimClass 等姊妹仓库,研究链路完整;
  • 想给孩子做点定制学习内容的家长:上传教材,生成带测验和互动实验的课程,本地部署不依赖任何云服务。

12 种语言界面(含简繁中文)、MIT 协议、一条 Vercel 部署路径,门槛被压到了一个 LLM API key。

信息框

  • 仓库:THU-MAIC/OpenMAIC
  • 协议:MIT(捆绑的 mathml2omml 为 LGPL-3.0)
  • 论文:DOI 10.1007/s11390-025-6000-0(JCST 2026)
  • 在线体验:open.maic.chat
  • 版本:v1.0.0(2026-08-27 发布)
  • 技术栈:Next.js 16 / React 19 / TypeScript 5 / LangGraph 1.1