项目主页:https://github.com/Mutant-z/Lessonforge-Ai 在线体验:http://103.236.93.56:60810
一句话简介:课启智造 LessonForge AI 是一个面向教师与教学团队的多 Agent 教学内容生产平台——从一句课程设想或一组参考资料出发,协同生成教学设计、PPT 课件、学习任务单、课后练习、视频脚本与教师逐字稿,并支持在线修订、质量检查、版本追踪和可编辑文件导出。
它是做什么的
它不是把一个 Prompt 包装成"生成按钮"的玩具。LessonForge AI 围绕真实备课流程构建了一套可持续迭代的内容生产系统:先通过对话澄清需求——自动抽取课程主题、学习者特征、教学目标、课时安排和约束条件,持续记录字段来源、系统假设与需求冲突,确认无误后才创建正式项目。
项目创建后会形成一份统一的课程蓝图,再为每一类产物初始化专属 Agent(独立的 Agent Profile、Prompt、模型配置与任务工作台)。六类内容 Agent 采用共享项目记忆架构,可以并行启动,并在运行时按需读取其他 Agent 的最新成果——PPT 里引用的教学目标、任务单里的练习题、逐字稿里的讲解口径都从同一份蓝图派生,不会各写各的。
产出不是一次性的一锤子买卖:生成的内容支持对话式修订(编辑、结构重组、时长调整、上下文同步、纯 QA 等意图),可限定章节或页面范围,带锁定、Diff、版本恢复与人工确认机制。最终交付的是可继续编辑的文件:PPTX、DOCX、Markdown、视频、字幕,以及包含校验清单的 ZIP 课程包。
技术栈
- 前端:Vue 3.5 + TypeScript 5.7 + Vite 6 + Pinia + Element Plus,教师控制台、需求对话、任务工作台、Agent 执行时间线、内容编辑与视频中心都是独立页面
- API 与业务层:Python 3.11+ / FastAPI / Pydantic v2 / Structlog,强类型请求与响应,REST + SSE 双通道
- Agent 编排:LangGraph + LangChain + 自研 Agent Core 与工具注册表,课程蓝图状态图、多角色协作、工具调用循环、Handoff、返修路由和执行预算控制
- 数据层:SQLAlchemy 2 Async + SQLite + Alembic,项目、产物、版本、任务、事件、Checkpoint、模型配置和项目记忆全部落库
- 文档与课件:python-pptx / python-docx / PyPDF / CairoSVG / LibreOffice / Poppler,负责资料解析、PPT/DOCX 生成、模板填充、页面渲染与视觉检查
- 多媒体:FFmpeg / imageio-ffmpeg / 可配置媒体 Provider,图片、视频、音频转写、字幕和媒体合成
- 工程化:Docker Compose、Nginx、Pytest、Vitest、vue-tsc
几个值得说的设计
-
状态图 + 任务调度 + Agent Loop 的混合编排。课程蓝图用 LangGraph
StateGraph管状态流转,项目级任务由支持并发和输入契约的调度器执行,复杂产物则进入通用 Agent Loop——在限定步数、Token 预算和工具权限内多轮"决策 → 工具调用 → 结果回喂 → 完成/Handoff"。确定性流程走状态图,开放式编辑任务交给 Agent 自由发挥,两层各取所长。 -
强类型 Artifact,而不是不可控的长文本。核心产物全部经过 Pydantic Schema 校验;教学设计进一步拆成稳定的
pedagogical_core加可动态调整的章节树,下游 Agent 只读统一投影。页面、章节、目标等对象都有稳定 ID,局部修改、引用追踪、跨版本对齐因此成为可能——Agent 的输出只有通过结构校验、领域规则和发布门禁后才会形成新版本。 -
带来源与版本的共享项目记忆。项目记忆不是简单拼接历史对话,而是把需求、蓝图、资料、产物、教师决策和 QA 结论存成带来源、可信级别与版本号的结构化条目。装配上下文时按任务挑选高价值信息并执行字符预算;对大型兄弟产物生成可缓存的语义摘要,摘要失败自动回退到确定性裁剪,不阻塞主任务。
-
可观测、可恢复的长任务。Generation Run、Pipeline Run、Agent 步骤、工具调用和事件都会落库,前端通过 SSE 看执行时间线,服务端支持
Last-Event-ID游标续传。流水线在安全边界写 Checkpoint,暂停、恢复、取消、重试,甚至应用重启后未完成任务都能继续。 -
面向真实编辑场景的人机协作。系统会区分生成、局部编辑、结构重组、润色、同步上下文、纯质量检查等意图并记录作用域;锁定路径保护已确认内容,Diff 呈现实际变化;遇到候选版式这类高影响决策时,运行时会暂停等待教师选择。发布结果明确区分
applied/no_change/rejected,失败的修改永远不会覆盖正式版本。 -
PPT 从"内容大纲"走到"可用文件"。PPT 流水线由叙事、模板分析、页面内容、视觉规划、布局、媒体、编辑、视觉 QA 和修订等多个角色组成:内置多套 16:9 成品模板,用角色与槽位映射保留原模板设计;动态布局引擎做几何计算,实际页面经 LibreOffice / Poppler 渲染后再检查溢出、遮挡、可读性和内容覆盖,问题进入有限轮次的定向返修。
-
模型与媒体能力解耦,开箱即可跑通。内置
mockProvider,不配 API Key 就能走通主要内容生产链路;真实模型支持 OpenAI-compatible 或 Anthropic 协议,按文本、视觉、图片、视频、语音分类,各任务可分别绑定主模型、视觉模型和媒体模型。 -
可追溯的课程交付包。导出层直接消费已审核的结构化 Artifact 而不是重新向模型提问;ZIP 里除了可编辑文件,还带蓝图、版本信息、来源版本和 Manifest(记录文件大小与 SHA-256),交付完整性和产物来源都能检查。
部署与测试
docker compose up --build -d 一条命令起全套(后端 + 前端 + 数据库 + 渲染所需系统依赖,LibreOffice / Poppler / FFmpeg 都已打进镜像),SQLite 数据库、上传文件和生成产物持久化在 storage/ 目录;docker compose 之外也支持脚本化本地开发(.venv/bin/pytest、npm test、npm run build 覆盖 Agent Loop、工具权限、Artifact Schema、项目记忆、任务恢复、PPT 布局与视觉 QA 等关键路径)。
当前边界也说明一下:扫描版 PDF 暂未内置 OCR,复杂 PPT 动画/宏不在生成范围内,SQLite + 异步任务面向本地开发与单机部署——规模化生产建议迁移到独立数据库和分布式队列。
项目还在持续迭代,欢迎到 Demo 体验一把,有问题也可以去 GitHub 提 issue。
发表评论
合规评论将自动发布,无法自动判断的评论会进入人工审核。