Skip to content

weed33834/nova

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nova Banner

English | 中文 | 日本語

A multi-agent AI classroom that turns any topic into an interactive learning experience.

Next.js React TypeScript Tailwind License Tests LLM Providers i18n

Features · Quick Start · Architecture · Testing · Structure · Contributing


Overview

Nova is a multi-agent teaching platform. Given a topic, an AI teacher generates a structured course outline, produces slides, writes narration scripts, and delivers the lesson in a virtual classroom. Several AI agents take on distinct roles — a teacher leads the lecture, an assistant answers questions, and a class clown keeps the mood light.

The core idea is not to be another slide generator, but a complete teaching system with role separation, safety guardrails, and knowledge tracking.

Features

Course Generation

  • AI Outline Generation — Breaks a topic into progressive scenes ordered by knowledge dependencies
  • Slide Production — Each scene ships with titles, bullet points, and flow diagrams
  • Voice Narration — The AI teacher narrates each scene with natural TTS across multiple engines
  • Interactive Quizzes — Auto-generated multiple-choice and fill-in-the-blank questions with real-time scoring
  • Knowledge Graph — Visual concept maps that connect key ideas across the course
  • PBL Mode — Project-based learning with interactive practice tasks

Multi-Agent Classroom

Agent Role Permissions
AI Teacher Leads the lesson, explains core concepts Speak, slide control, spotlight, whiteboard
AI Assistant Supports the teacher, answers questions Speak, whiteboard, slide control
Class Clown Lightens the mood Speak, whiteboard
  • Role Persistence — Customize names, descriptions, and permissions for 10 built-in roles; changes persist across sessions
  • Runtime Constraints — Per-role max_actions and max_turns enforced at runtime
  • Discussion Orchestration — A Director Graph manages turn-taking and discussion flow

Prompt Engineering & Governance

  • 24 Templates — Covering outline generation, content creation, action sequencing, and quiz generation
  • Snippet System — Role guidelines and action types stored as Markdown snippets, editable without recompiling
  • Guardrails — PII detection, toxicity filtering, and hallucination scanning on every generated scene
  • Skill Registry — 5 registered skills gated by a whitelist
  • REST APIGET /api/prompts to list templates, GET /api/skills to list skills

Infrastructure

LLM Providers
Provider Example Models
OpenAI GPT-5.6, GPT-5.5, GPT-5.4
Anthropic Claude Opus 4.7, Claude Sonnet 4.5, Claude Haiku 4.5
Google Gemini 3.5 Flash, Gemini 3 Pro, Gemini 2.5 Pro
DeepSeek DeepSeek-V4-Pro, DeepSeek-V4-Flash
Qwen Qwen3.7-Max, Qwen3.6-Plus, Qwen3.5-Flash
GLM GLM-5.2, GLM-5.1
Kimi Kimi-K2.7, Kimi-K2.6
MiniMax MiniMax-M3, MiniMax-M2.7
Grok Grok-4.20
Tencent Hunyuan Hunyuan-3 (preview)
Xiaomi MiMo v2.5
OpenRouter Multi-provider aggregation
SiliconFlow Full model aggregation
Doubao Doubao Seed 2.x series
Ollama Local models
Lemonade Local AMD models
  • TTS — OpenAI, SiliconFlow, Doubao, Minimax, Volcano
  • Image Generation — SiliconFlow, Minimax, ComfyUI
  • Web Search — Tavily, SearXNG
  • Document Parsing — AliDocMind, MinerU
  • MCP Tools — Connect external tools via Model Context Protocol
  • i18n — English, Simplified Chinese, Traditional Chinese, Japanese, Korean, Arabic, Portuguese, Russian (client-side, via i18next)
  • Dark Mode — Site-wide support

Architecture

Nova Architecture

Data flow: the user enters a topic → the prompt engine assembles the prompt → an LLM generates content → guardrails scan for safety → multi-agent orchestration → interactive classroom rendering. State is persisted to browser-local storage via Zustand.

Quick Start

Prerequisites

  • Node.js 22+
  • pnpm 10+

Installation

git clone https://github.com/weed33834/nova.git
cd nova
pnpm install

Configuration

Create a .env.local file with at least one LLM provider:

# Option A: direct API key
SILICONFLOW_API_KEY=your-key
SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1

# Option B: server-side managed config (recommended)
cp server-providers.example.yml server-providers.yml
# Edit server-providers.yml with your credentials — keys stay server-side

Run

pnpm dev

Open http://localhost:3000 and enter a topic to start.

No API Key? Try the Demo

Click "Open Cached Demo Course" on the home page to load a pre-built Introduction to AI course — no API key required.

Testing

pnpm test          # Unit & component tests (312 files / 2768 cases)
pnpm test:e2e      # End-to-end tests (Playwright)
pnpm test:e2e:ui   # E2E with interactive UI
pnpm lint          # ESLint
pnpm typecheck     # TypeScript type checking

E2E tests cover the full flow: home → generation → classroom navigation → quiz interaction. All tests use mock APIs — no LLM key needed.

Project Structure

nova/
├── app/                  # Next.js App Router
│   ├── api/              # API routes (prompts, skills, generate/*)
│   ├── classroom/        # Classroom playback route
│   └── generation-preview/
├── lib/                  # Core logic
│   ├── ai/               # Multi-LLM provider integration
│   ├── agent/            # Multi-agent runtime
│   ├── choreography/     # Animations & effects
│   ├── guardrails/       # Safety pipeline
│   ├── i18n/             # Client-side i18next locale resources
│   ├── orchestration/    # Role management & constraints
│   └── prompts/          # Prompt templates & snippets
├── components/           # React components
├── packages/             # Workspace sub-packages
│   └── @nova/
│       ├── dsl/          # Domain type definitions
│       ├── renderer/     # Slide rendering engine
│       ├── importer/     # Document import
│       └── storage/      # Persistence layer
├── e2e/                  # Playwright tests
├── configs/              # Shared constants
└── assets/               # Static assets & logo

Tech Stack

Layer Technology
Framework Next.js 16 (App Router, Turbopack)
Language TypeScript 5.8
UI React 19, Tailwind CSS 4, Radix UI
State Zustand (persisted)
AI Vercel AI SDK, multi-provider
Testing Vitest, Playwright
Package Manager pnpm Workspaces

Contributing

Issues and pull requests are welcome. Please read CONTRIBUTING.md before submitting.

License

MIT

About

AI-powered multi-agent classroom that turns any topic into an interactive learning experience

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages