在生成式 AI 与 Agent 技术爆发的当下,清华大学团队开源的 OpenMAIC (Open Multi-Agent Interactive Classroom) 为大模型落地教育领域提供了一个教科书级的范式。

传统的“AI+教育”往往停留在单体 Bot 的一问一答,或者流式文本的单向输出。而 OpenMAIC 则真正构建了一个包含“AI 教师”与“AI 助教/同学”、配备“数字白板”与“实时多模态互动”的多 Agent 协同虚拟课堂。用户只需输入一个主题或上传一份 PDF 文档,系统即可在低成本下自动化、高保真地生成包含课件(Slides)、互动测验(Quiz)、HTML 交互动态实验(Interactive Simulations)和项目制学习(PBL)的闭环课程。

在如此复杂的长上下文、多资产(Asset)并行生成的场景下,如何保证生成的课程既有严密的教学法逻辑(如布鲁姆认知层次、最近发展区 ZPD),又不会在长链条中因 LLM 的随机性而崩溃?

答案在于 OpenMAIC 底层基于 LangGraph 精心设计的两阶段生成流(Two-Stage Generation Flow)。本文将深入 OpenMAIC 的核心引擎源码,拆解这一高韧性、高确定性的 Agent 协同架构。

一、 为什么是 LangGraph?

在分析生成流之前,有必要理解 OpenMAIC 为何选择 LangGraph 作为其 Agent 编排框架,而非传统的 LangChain 或 AutoGen。

  1. 复杂的图结构与状态持久化:生成一堂课涉及“大纲规划 $\rightarrow$ 课件制作 $\rightarrow$ 实验代码编写 $\rightarrow$ 试题生成 $\rightarrow$ 角色对话脚本设计”等多个节点。这些节点之间不是简单的线性管道,而是存在依赖、并行、以及由于质量校验失败引发的条件循环(Loops)。 LangGraph 的 StateGraph 原生支持图结构和状态(State)的集中管理与持久化。

  2. 两阶段的“状态隔离”:将长任务拆分为离散的阶段(Stage),每一阶段有其专属的局部状态与全局上下文交互,可以极大减少 Token 的无谓消耗,并提高大模型在长序列任务中的注意力集中度。

二、 核心架构:两阶段生成流原理

OpenMAIC 的核心编排引擎将整个课程的构建过程严格划分为两个阶段:

  • Stage 1: Outline Generation(教学大纲规划与结构化生成)

  • Stage 2: Scenes Expansion(教学场景多轨并行扩展)

1. 第一阶段:Outline Generation(战略规划)

第一阶段的核心任务是化繁为简。用户的原始输入可能只是一个模糊的 Prompt(例如“教我量子力学的基础”)或一份庞杂的 PDF 学术论文。如果直接让 Agent 去写教案和代码,模型会由于上下文过载而发生严重的“幻觉”。

在这一阶段,由 MAIC-Craft 引擎主导。其主要逻辑如下:

  1. 输入解析与 RAG 增强:对输入的文档进行多模态内容提取,结合知识库进行检索增强。

  2. 教学法对齐:引入教育学理论(Bloom's Taxonomy / UDL),明确本堂课的教学目标、受众认知水平和核心知识点边界。

  3. 结构化 Outline 输出:由大纲规划 Agent 输出一个高度结构化的 JSON 数组(或通过 Pydantic 严格定义的 Object)。每一项都代表一个“教学场景”(Scene Item),并被提前赋予了明确的类型:

    • slides:概念讲解课件

    • quiz:随堂测验与即时反馈

    • interactive:基于 Web GenUI 的动态 HTML 仿真实验

    • pbl:项目制交互任务

源码逻辑切片(概念化伪代码)
from langgraph.graph import StateGraph, END
from pydantic import BaseModel, Field
from typing import List, Dict

# 定义全局大纲状态
class OutlineState(BaseModel):
    topic: str
    raw_context: str
    target_audience: str = "beginner"
    outline: List[Dict] = Field(default_factory=list)

def plan_outline_node(state: OutlineState):
    # 调用 LLM,配合 Prompt Template (包含布鲁姆理论指导)
    # 强制模型输出结构化的 Scene 列表
    response = llm.with_structured_output(OutlineResponse).invoke(...)
    return {"outline": response.scenes}

# 构建第一阶段状态图
outline_workflow = StateGraph(OutlineState)
outline_workflow.add_node("planner", plan_outline_node)
outline_workflow.set_entry_point("planner")
outline_workflow.add_edge("planner", END)
outline_app = outline_workflow.compile()

2. 第二阶段:Scenes Expansion(战术展开)

当确定了教学大纲(Outline)后,流程进入到真正展现 Agent 协同威力的第二阶段。这一阶段的核心思想是“分而治之,类型驱动”。

第一阶段输出的每一个 Scene Item,在第二阶段都会演变成 LangGraph 中的一个独立子图或并行分支。OpenMAIC 会根据 Scene 的类型,分发给专门的专用 Agent 组(Specialized Agent Teams)进行并发生成

(A) slides 类型场景生成
  • 协同 Agent:AI 讲师(Teacher Agent) + 白板视觉 Agent(Whiteboard Agent)。

  • 生成资产:语音旁白(TTS 文本与排版标记)、白板绘制路径(SVG 轨迹/概念图/公式)、激光笔和高亮聚光灯的时间轴动画。

  • 技术细节:通过精准的 Token 级个性化控制,生成专门适配 VoxCPM2 音频引擎的结构化文本,确保教师讲课时的语气语气词与白板绘制同步。

(B) quiz 类型场景生成
  • 协同 Agent:命题专家 Agent + 评卷器接口。

  • 生成资产:单选/多选/简答题 JSON,以及配套的 AI 实时判分规则库和多维度反馈话术。

(C) interactive 类型场景生成(核心亮点)
  • 协同 Agent:GenUI 开发者 Agent + 前端沙箱校验 Agent。

  • 生成资产:纯前端运行的、无外部依赖的 HTML/CSS/JS 仿真交互组件。

  • 机制:如果生成的 HTML 渲染出错或存在语法 Bug,沙箱校验 Agent 会捕捉 Error 并将其作为 Feedback 重新喂给开发者 Agent,在 LangGraph 内部发起局部循环自愈(Self-Correction Loop),直到编译通过。

(D) pbl 类型场景生成
  • 协同 Agent:项目导师 Agent + AI 虚拟同学(Classmate Agents)。

  • 生成资产:多角色圆桌辩论、情境交互对话脚本、结构化任务书。

                    ┌───► [Slides Agent] ──────► 课件、语音、白板动态
                    │
[结构化大纲 (JSON)] ├───► [Quiz Agent] ────────► 交互式评测题库
                    │
                    ├───► [GenUI Developer] ───► HTML 动态实验仿真
                    │
                    └───► [PBL Agent Group] ───► 多角色课堂交互脚本

三、 两阶段流的核心技术优势

1. 规避长文本生成的“记忆漂移”与上下文惩罚

大语言模型在单次调用中生成超过数千字的内容时,往往会出现“虎头蛇尾”或格式崩塌的现象。OpenMAIC 通过第一阶段将任务解耦成离散的、原子化的场景包,在第二阶段并行独立处理,使得每一个 Agent 只需要关注当前 100 字的大纲上下文,消除了长距离依赖的痛苦,生成的资产质量呈现级数级提升。

2. 状态机制支撑的“断点续传”与人工微调

在实际工程中,生成全套多模态课程可能需要消耗较长时间。LangGraph 的内置持久化层(Checkpointer)允许 OpenMAIC 做到:

  • 失败恢复:如果在生成第 5 个 Scene 的 HTML 仿真时遭遇网络超时,系统不会丢失前 4 个已生成的场景,只需从当前 Checkpoint 重新唤醒图流。

  • 人机协同(Human-in-the-loop):第一阶段大纲生成后,系统可以暂停并等待人类教师对 JSON 大纲进行可视化修改(增删课时、调整顺序),确认后再一键触发第二阶段的深度资产扩展。

四、 总结与展望

清华团队在 OpenMAIC 中对 LangGraph 的应用,展示了生产级 AI Agent 架构的标准范式:用图结构固化业务逻辑流程,用两阶段隔离降低大模型认知负载,用多角色并行对抗长序列任务的效率瓶颈。

通过这种设计,OpenMAIC 成功克服了生成式多模态教学资源在广度(全套教案)与深度(白板同步、代码级仿真)上的双重挑战。随着项目加入对 DeepSeek V4、GPT-5.5 等具备极高 Thinking 算力模型的支持,这种基于图的控制流将能够容纳更为复杂的自适应个性化教学(Adaptive Learning),真正让“一人一课”的未来教育走向普罗大众。

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐