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 历史 [![Star History Chart](https://api.star-history.com/svg?repos=THU-MAIC/OpenMAIC&type=Date)](https://star-history.com/#THU-MAIC/OpenMAIC&Date) ## 📄 许可证 本项目基于 [GNU Affero General Public License v3.0](LICENSE) 授权。
标签:AI助教, DNS解析, OSV, PyRIT, Vercel, 个性化学习, 交互式课堂, 在线教育, 多智能体系统, 多模态交互, 大语言模型应用, 开源项目, 教育信息化, 智能辅导系统, 沉浸式学习, 清华大学, 自动化攻击, 虚拟教室, 请求拦截, 远程教育