THU-MAIC/OpenMAIC
GitHub: THU-MAIC/OpenMAIC
基于多智能体编排的一键式 AI 交互课堂生成平台,将任意主题文档转化为沉浸式教学体验。
Stars: 17361 | Forks: 3310
### 课堂组件
**🎓 幻灯片**
AI 教师通过语音解说、聚光灯效果和激光笔动画进行授课——就像真实的课堂一样。
|
**🧪 测验**
带有实时 AI 评分和反馈的互动测验(单选/多选/简答题)。
|
**🔬 交互式模拟**
基于 HTML 的交互式实验,用于可视化的实践学习——物理模拟器、流程图等。
|
**🏗️ 基于项目的学习 (PBL)**
选择一个角色,与 AI 智能体协作完成具有里程碑和交付物的结构化项目。
|
### 多智能体交互
|
- **课堂讨论** — 智能体主动发起;您可以随时加入或被点名发言
- **圆桌辩论** — 具有不同人设的多个智能体在讨论一个主题,并配有白板图解
- **问答模式** — 自由提问;AI 教师通过幻灯片、图表或白板绘图进行回答
- **白板** — AI 智能体在共享白板上实时绘图——逐步求解方程式、绘制流程图或直观地阐述概念。
|
|
###

OpenClaw 集成
|
OpenMAIC 与 [OpenClaw](https://github.com/openclaw/openclaw) 集成——一个连接到您已经在使用的消息平台(飞书、Slack、Discord、Telegram、WhatsApp 等)的个人 AI 助手。通过此集成,您可以**直接从您的聊天应用生成并查看交互式课堂**,而无需接触终端。
|
|
只需告诉您的 OpenClaw 助手您想学什么——它会处理剩下的一切:
- **托管模式** — 从 [open.maic.chat](https://open.maic.chat/) 获取访问代码,将其保存在您的配置中,即可立即生成课堂——无需本地设置
- **自托管模式** — 克隆、安装依赖、配置 API 密钥并启动服务器——该技能将引导您完成每个步骤
- **追踪进度** — 轮询异步生成任务并在就绪时向您发送链接
每一步都会首先征求您的确认。绝非黑盒自动化。
|
**可在 ClawHub 上获取** — 使用一条命令安装:
```
clawhub install openmaic
```
或手动复制:
```
mkdir -p ~/.openclaw/skills
cp -R /path/to/OpenMAIC/skills/openmaic ~/.openclaw/skills/openmaic
```
|
配置与详情
| 阶段 | 技能会做什么 |
|------|-------------|
| **克隆** | 检测现有的检出或在克隆/安装前询问您 |
| **启动** | 在 `pnpm dev`、`pnpm build && pnpm start` 或 Docker 之间选择 |
| **提供商密钥** | 推荐提供商方案;由您自行编辑 `.env.local` |
| **生成** | 提交异步生成任务并轮询直到完成 |
在 `~/.openclaw/openclaw.json` 中的可选配置:
```
{
"skills": {
"entries": {
"openmaic": {
"config": {
// Hosted mode: paste your access code from open.maic.chat
"accessCode": "sk-xxx",
// Self-hosted mode: local repo path and URL
"repoDir": "/path/to/OpenMAIC",
"url": "http://localhost:3000"
}
}
}
}
}
```
### 导出
| 格式 | 描述 |
|--------|-------------|
| **PowerPoint (.pptx)** | 包含图像、图表和 LaTeX 公式的完全可编辑幻灯片 |
| **交互式 HTML** | 包含交互式模拟的独立网页 |
| **课堂 ZIP** | 完整的课堂导出(课程结构 + 媒体),用于备份或分享 |
### 以及更多
- **文本转语音 (TTS)** — 多种语音提供商,支持自定义声音
- **语音识别 (ASR)** — 使用您的麦克风与 AI 教师对话
- **网络搜索** — 智能体在课堂上搜索网络以获取最新信息
- **国际化 (i18n)** — 界面支持中文、英文、日文和俄文
- **深色模式** — 在深夜学习时呵护您的双眼
## 💡 使用场景
## 🤝 参与贡献
我们欢迎社区的贡献!无论是错误报告、功能想法还是 Pull Request——每一份力量都有所帮助。
### 项目结构
```
OpenMAIC/
├── app/ # Next.js App Router
│ ├── api/ # Server API routes (~18 endpoints)
│ │ ├── generate/ # Scene generation pipeline (outlines, content, images, TTS …)
│ │ ├── generate-classroom/ # Async classroom job submission + polling
│ │ ├── chat/ # Multi-agent discussion (SSE streaming)
│ │ ├── pbl/ # Project-Based Learning endpoints
│ │ └── ... # quiz-grade, parse-pdf, web-search, transcription, etc.
│ ├── classroom/[id]/ # Classroom playback page
│ └── page.tsx # Home page (generation input)
│
├── lib/ # Core business logic
│ ├── generation/ # Two-stage lesson generation pipeline
│ ├── orchestration/ # LangGraph multi-agent orchestration (director graph)
│ ├── playback/ # Playback state machine (idle → playing → live)
│ ├── action/ # Action execution engine (speech, whiteboard, effects)
│ ├── ai/ # LLM provider abstraction
│ ├── api/ # Stage API facade (slide/canvas/scene manipulation)
│ ├── store/ # Zustand state stores
│ ├── types/ # Centralized TypeScript type definitions
│ ├── audio/ # TTS & ASR providers
│ ├── media/ # Image & video generation providers
│ ├── export/ # PPTX & HTML export
│ ├── hooks/ # React custom hooks (55+)
│ ├── i18n/ # Internationalization (zh-CN, en-US)
│ └── ... # prosemirror, storage, pdf, web-search, utils
│
├── components/ # React UI components
│ ├── slide-renderer/ # Canvas-based slide editor & renderer
│ │ ├── Editor/Canvas/ # Interactive editing canvas
│ │ └── components/element/ # Element renderers (text, image, shape, table, chart …)
│ ├── scene-renderers/ # Quiz, Interactive, PBL scene renderers
│ ├── generation/ # Lesson generation toolbar & progress
│ ├── chat/ # Chat area & session management
│ ├── settings/ # Settings panel (providers, TTS, ASR, media …)
│ ├── whiteboard/ # SVG-based whiteboard drawing
│ ├── agent/ # Agent avatar, config, info bar
│ ├── ui/ # Base UI primitives (shadcn/ui + Radix)
│ └── ... # audio, roundtable, stage, ai-elements
│
├── packages/ # Workspace packages
│ ├── pptxgenjs/ # Customized PowerPoint generation
│ └── mathml2omml/ # MathML → Office Math conversion
│
├── skills/ # OpenClaw / ClawHub skills
│ └── openmaic/ # Guided OpenMAIC setup & generation SOP
│ ├── SKILL.md # Thin router with confirmation rules
│ └── references/ # On-demand SOP sections
│
├── configs/ # Shared constants (shapes, fonts, hotkeys, themes …)
└── public/ # Static assets (logos, avatars)
```
### 核心架构
- **生成流水线** (`lib/generation/`) — 两阶段:大纲生成 → 场景内容生成
- **多智能体编排** (`lib/orchestration/`) — LangGraph 状态机,用于管理智能体轮次和讨论
- **播放引擎** (`lib/playback/`) — 用于驱动课堂播放和实时交互的状态机
- **动作引擎** (`lib/action/`) — 执行 28 种以上的动作类型(语音、白板绘制/文本/形状/图表、聚光灯、激光笔等)
### 如何贡献
1. Fork 此仓库
2. 创建您的功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交您的更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开一个 Pull Request
## 💼 商业授权
本项目基于 AGPL-3.0 授权。有关商业授权咨询,请联系:**thu_maic@tsinghua.edu.cn**
## 📝 引用
如果您发现 OpenMAIC 对您的研究有用,请考虑引用:
```
@Article{JCST-2509-16000,
title = {From MOOC to MAIC: Reimagine Online Teaching and Learning through LLM-driven Agents},
journal = {Journal of Computer Science and Technology},
volume = {},
number = {},
pages = {},
year = {2026},
issn = {1000-9000(Print) /1860-4749(Online)},
doi = {10.1007/s11390-025-6000-0},
url = {https://jcst.ict.ac.cn/en/article/doi/10.1007/s11390-025-6000-0},
author = {Ji-Fan Yu and Daniel Zhang-Li and Zhe-Yuan Zhang and Yu-Cheng Wang and Hao-Xuan Li and Joy Jia Yin Lim and Zhan-Xin Hao and Shang-Qing Tu and Lu Zhang and Xu-Sheng Dai and Jian-Xiao Jiang and Shen Yang and Fei Qin and Ze-Kun Li and Xin Cong and Bin Xu and Lei Hou and Man-Li Li and Juan-Zi Li and Hui-Qin Liu and Yu Zhang and Zhi-Yuan Liu and Mao-Song Sun}
}
```
## ⭐ Star 历史
[](https://star-history.com/#THU-MAIC/OpenMAIC&Date)
## 📄 许可证
本项目基于 [GNU Affero General Public License v3.0](LICENSE) 授权。
标签:AI助教, DNS解析, OSV, PyRIT, Vercel, 个性化学习, 交互式课堂, 在线教育, 多智能体系统, 多模态交互, 大语言模型应用, 开源项目, 教育信息化, 智能辅导系统, 沉浸式学习, 清华大学, 自动化攻击, 虚拟教室, 请求拦截, 远程教育