## 项目概述

OpenMAIC（Open Multi-Agent Interactive Classroom）是一个开源的 AI 平台，旨在将任意主题或文档转化为沉浸式的多智能体互动课堂体验。它通过多智能体编排，自动生成幻灯片、测验、互动模拟和项目式学习活动，并由 AI 教师和 AI 同学进行实时讲解、讨论和互动。项目由清华大学相关团队开发，采用 MIT 许可证，支持一键部署到 Vercel 或使用 Docker 自托管。

## 核心功能

- **一键生成课程**：描述主题或上传材料，AI 在几分钟内构建完整课程。
- **多智能体课堂**：AI 教师和同学实时授课、讨论和互动。
- **丰富场景类型**：支持幻灯片、测验、互动 HTML 模拟和项目式学习（PBL）。
- **白板与 TTS**：智能体可绘制图表、书写公式并进行语音讲解。
- **深度互动模式**：生成 3D 可视化、模拟、游戏、思维导图和在线编程等互动 UI，AI 教师可主动操作 UI 引导学习。
- **随处导出**：可下载可编辑的 .pptx 幻灯片或交互式 .html 页面，支持离线使用。
- **OpenClaw 集成**：通过飞书、Slack、Telegram 等 20+ 消息应用直接生成课堂。
- **多语言支持**：界面支持简体中文、繁体中文、英语、日语、俄语、阿拉伯语和巴西葡萄牙语。

## 适用与不适用场景

**适用场景：**

- 个人自学：快速将任意主题转化为互动课程。
- 课堂教学：教师可生成课件、测验和互动模拟，增强课堂参与度。
- 企业培训：创建项目式学习活动，提升员工技能。
- 在线教育平台：集成 OpenMAIC 提供个性化学习体验。

**不适用场景：**

- 需要高度定制化、非标准教学流程的场景。
- 对数据隐私要求极高，且无法接受默认浏览器存储或需自行改造持久化方案的场景。
- 完全离线且无任何 LLM API 的环境（除非配置本地模型如 Ollama 或 Lemonade）。

## 技术架构与依赖

- **前端框架**：Next.js 16（App Router）、React 19、TypeScript 5。
- **样式**：Tailwind CSS 4。
- **多智能体编排**：LangGraph 1.1。
- **状态管理**：Zustand。
- **编辑器**：ProseMirror（用于大纲编辑）、Canvas 渲染器（用于幻灯片编辑）。
- **导出**：自定义 pptxgenjs 和 mathml2omml 包。
- **存储**：浏览器 IndexedDB（默认），可选 PostgreSQL 服务端持久化。
- **AI 提供商**：支持 OpenAI、Azure OpenAI、Anthropic、Google Gemini、DeepSeek、Qwen、Kimi、MiniMax、Grok、OpenRouter、GLM、Ollama、Lemonade 等。
- **语音**：支持多种 TTS/ASR 提供商，包括 VoxCPM2、FunASR、Azure STT 等。
- **文档解析**：支持 MinerU、AliDocMind 等。

## 安装与快速开始

**前置要求：** Node.js >= 20，pnpm >= 10。

1. 克隆仓库：
   ```bash
   git clone https://github.com/THU-MAIC/OpenMAIC.git
   cd OpenMAIC
   ```
2. 安装依赖：
   ```bash
   pnpm install
   ```
3. 配置环境变量：
   ```bash
   cp .env.example .env.local
   ```
   至少配置一个 LLM 提供商密钥，例如 `OPENAI_API_KEY`。
4. 启动开发服务器：
   ```bash
   pnpm dev
   ```
   访问 http://localhost:3000。
5. 生产构建：
   ```bash
   pnpm build && pnpm start
   ```

## 典型使用方法

- **生成课程**：在首页输入主题或上传文档，点击生成，AI 将创建包含幻灯片、测验和互动场景的完整课程。
- **互动学习**：在课堂中与 AI 教师和同学实时讨论，参与测验和互动模拟。
- **编辑幻灯片**：使用 MAIC Editor 的 Pro Mode 直接编辑生成的幻灯片，支持拖拽、缩放、旋转等操作。
- **导出课件**：将课程导出为 .pptx、交互式 HTML 或 ZIP 包，便于分享或离线使用。
- **通过 OpenClaw 使用**：安装 OpenMAIC skill，通过飞书、Slack 等消息应用直接生成课堂。

## 配置与部署要点

- **环境变量**：在 `.env.local` 中配置 LLM、TTS、ASR、图像生成等提供商密钥。
- **ACCESS_CODE**：设置站点级密码保护部署。
- **Vercel 部署**：一键部署，需配置环境变量。
- **Docker 部署**：使用 `docker compose up --build`，可选启用 `server-persistence` 和 `video-export` 配置文件。
- **服务端持久化**：使用 PostgreSQL 存储运行时状态，需设置 `DATABASE_URL` 和 `PERSISTENCE_DEV_TOKEN`。注意 `NEXT_PUBLIC_PERSISTENCE_TOKEN` 是公开的，仅适用于可信网络。
- **视频导出**：可选启用 `render-service` 容器，需 Chromium 和 FFmpeg。
- **安全**：注意 SSRF 防护，可通过 `ALLOW_LOCAL_NETWORKS` 控制本地网络访问。

## 限制、风险与许可证

- **限制**：默认使用浏览器存储，服务端持久化需自行改造认证；视频导出需额外服务；部分功能依赖第三方 API。
- **风险**：AI 生成内容可能存在不准确或偏差；多智能体交互可能产生意外行为；数据隐私需注意。
- **许可证**：项目采用 MIT 许可证，但包含的 `packages/mathml2omml` 为 LGPL-3.0-or-later，`packages/pptxgenjs` 为 MIT（第三方）。

## 官方链接

- GitHub 仓库：https://github.com/THU-MAIC/OpenMAIC
- 在线演示：https://open.maic.chat/
- 论文：https://jcst.ict.ac.cn/en/article/doi/10.1007/s11390-025-6000-0
- Discord 社区：https://discord.gg/p8Pf2r3SaG
- 飞书交流群：https://github.com/THU-MAIC/OpenMAIC/blob/main/community/feishu.md

## 信息来源和分析时间

- 信息来源：GitHub 仓库 README、CHANGELOG、CONTRIBUTING 文档，以及最新发布信息（v0.3.1）。
- 分析时间：2026-07-21（基于最新发布版本日期）。