Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

17 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GenMentor Logo

LLM-powered & Goal-oriented Tutoring System

Website ย ยทย  Paper ย ยทย  Demo ย ยทย  Video


Important

โœจ Welcome to visit the GenMentor website to learn more about our work!

This is the official code for our paper "LLM-powered Multi-agent Framework for Goal-oriented Learning in Intelligent Tutoring System", accepted by WWW 2025 (Industry Track) as an Oral Presentation.

GenMentor is a large language model (LLM)-powered multi-agent framework designed for goal-oriented learning in Intelligent Tutoring Systems (ITS). It delivers personalized, adaptive, goal-aligned learning experiences through coordinated AI agents โ€” from skill-gap analysis and learning-path scheduling to tailored content generation and real-time performance evaluation.

๐Ÿ“‘ Table of Contents

๐Ÿซ ITS Paradigm Comparison

ITS Paradigm Comparison

Paradigm Typical characteristics Primary focus
๐Ÿซ Traditional MOOC Static syllabus; pre-recorded lectures; fragmented learning Broad access, low personalization
๐Ÿค– Chatbot ITS Reactive Q&A; rule/LLM-driven; session-based help Instant support, limited long-term adaptation
๐ŸŽฏ Goal-oriented ITS Proactive planning; personalized paths; goal-aligned assessments Targeted skill acquisition, continual adaptation

โœจ Core Features

GenMentor Framework

๐Ÿค– Agent Modules

Agent Responsibility
๐Ÿงญ Goal Refiner Transforms raw learning intentions into structured, actionable goals
๐Ÿ” Skill Gap Identifier Analyzes current knowledge against goal requirements to surface gaps
๐Ÿ‘ค Adaptive Learner Modeler Builds and continuously updates learner profiles from interactions
๐Ÿ—“๏ธ Learning Path Scheduler Creates and reschedules personalized session sequences
๐Ÿ“ Tailored Content Generator Produces customized learning materials, knowledge drafts, and documents
๐Ÿ“Š Quiz Generator Generates multi-format quizzes (single-choice, multiple-choice, true/false, short answer)
๐Ÿ“ˆ Performance Evaluator Evaluates session performance, skill mastery, and generates progress reports
๐Ÿ’ฌ Feedback Simulator Simulates learner feedback on paths and content for quality assurance
๐Ÿง‘โ€๐Ÿซ AI Chatbot Tutor Engages learners in context-aware dialogue with memory of past interactions

๐Ÿ”ง Platform Capabilities

  • ๐ŸŽฏ Multi-goal management โ€” learners can maintain multiple learning goals with independent skill gaps, learning paths, and progress tracking per goal
  • ๐Ÿ’พ Goal-scoped persistence โ€” all data (skill gaps, learning paths, mastery) is stored per goal, allowing learners to switch contexts
  • ๐Ÿ”Œ Pluggable LLM backend โ€” supports OpenAI, DeepSeek, and other LangChain-compatible providers via a unified provider/model format
  • ๐ŸŒ Web search augmentation โ€” optional web search integration for knowledge drafting and content generation
  • ๐Ÿ›œ Full REST API โ€” 25+ endpoints across profile, goals, skills, learning path, content, assessment, chat, and progress domains
  • โŒจ๏ธ CLI mode โ€” run core agent capabilities directly without starting the web application

๐Ÿ—๏ธ Project Architecture

gen-mentor/
โ”œโ”€โ”€ gen_mentor/                    # ๐Ÿ“ฆ Core library (provider-agnostic)
โ”‚   โ”œโ”€โ”€ agents/                    # ๐Ÿค– AI agent implementations
โ”‚   โ”‚   โ”œโ”€โ”€ learning/              #   Goal Refiner, Skill Gap Identifier, Learner Profiler
โ”‚   โ”‚   โ”œโ”€โ”€ content/               #   Path Scheduler, Knowledge Explorer/Drafter,
โ”‚   โ”‚   โ”‚                          #   Document Integrator, Feedback Simulator
โ”‚   โ”‚   โ”œโ”€โ”€ assessment/            #   Quiz Generator, Performance Evaluator
โ”‚   โ”‚   โ””โ”€โ”€ tutoring/              #   Chatbot Tutor
โ”‚   โ”œโ”€โ”€ core/
โ”‚   โ”‚   โ”œโ”€โ”€ llm/                   # ๐Ÿง  LLM factory (LangChain-based)
โ”‚   โ”‚   โ”œโ”€โ”€ memory/                # ๐Ÿ’พ LearnerMemoryStore (file-based persistence)
โ”‚   โ”‚   โ””โ”€โ”€ tools/                 # ๐Ÿ”ง Search, RAG, embedding, filesystem tools
โ”‚   โ”œโ”€โ”€ schemas/                   # ๐Ÿ“ Pydantic domain schemas
โ”‚   โ”œโ”€โ”€ cli/                       # โŒจ๏ธ Command-line interface
โ”‚   โ””โ”€โ”€ config/                    # โš™๏ธ YAML config loader & schema definitions
โ”‚
โ”œโ”€โ”€ apps/
โ”‚   โ”œโ”€โ”€ backend/                   # ๐Ÿ–ฅ๏ธ FastAPI REST API server
โ”‚   โ”‚   โ”œโ”€โ”€ api/v1/endpoints/      #   Route handlers (profile, goals, skills,
โ”‚   โ”‚   โ”‚                          #   learning_path, assessment, chat, progress, ...)
โ”‚   โ”‚   โ”œโ”€โ”€ models/                #   Request / response Pydantic models
โ”‚   โ”‚   โ”œโ”€โ”€ services/              #   LLM service, memory service, user registry
โ”‚   โ”‚   โ”œโ”€โ”€ repositories/          #   Data access layer (LearnerRepository)
โ”‚   โ”‚   โ””โ”€โ”€ middleware/             #   CORS, error handling
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ frontend/                  # ๐ŸŒ Next.js web application
โ”‚       โ””โ”€โ”€ src/
โ”‚           โ”œโ”€โ”€ app/               #   Pages: onboarding, goals, learning-path,
โ”‚           โ”‚                      #   session, progress, profile, library
โ”‚           โ”œโ”€โ”€ components/        #   Reusable UI components
โ”‚           โ””โ”€โ”€ lib/api.ts         #   Typed API client (all backend endpoints)
โ”‚
โ”œโ”€โ”€ scripts/                       # ๐Ÿ“œ Start/stop helper scripts
โ”œโ”€โ”€ tests/                         # ๐Ÿงช Test suite
โ””โ”€โ”€ resources/                     # ๐Ÿ–ผ๏ธ Static assets (images, sample data)

๐Ÿ”„ Data flow:

Frontend (Next.js)  โ”€โ”€HTTPโ”€โ”€>  Backend (FastAPI)  โ”€โ”€invokesโ”€โ”€>  Agent (gen_mentor)
                                     โ”‚                               โ”‚
                                     โ”‚                          LLM Provider
                                     v                         (OpenAI / DeepSeek / ...)
                              LearnerMemoryStore
                            (workspace/memory/{id}/)

๐Ÿš€ Quick Start

๐Ÿ“‹ Prerequisites

  • ๐Ÿ Python 3.11+, uv (recommended) or pip
  • ๐Ÿ“— Node.js 18+ and npm
  • ๐Ÿ”‘ At least one LLM API key (OpenAI or DeepSeek)

1๏ธโƒฃ Install dependencies

# Backend (from project root)
uv venv
source .venv/bin/activate  # on Windows: .venv\Scripts\activate
uv pip install -e .         # editable install โ€” includes gen_mentor + all backend deps

# Frontend
cd apps/frontend
npm install

2๏ธโƒฃ Configure

GenMentor uses two configuration layers:

Layer File Purpose
API keys apps/backend/.env LLM provider secrets (loaded via dotenv)
App config ~/.gen-mentor/config.yaml Default model, provider endpoints, search, embedding, RAG settings

Step A โ€” Set API keys (required)

Create a .env file in apps/backend/:

# At least one is required
OPENAI_API_KEY="your-openai-api-key"
DEEPSEEK_API_KEY="your-deepseek-api-key"

Step B โ€” Set up config.yaml (optional, auto-created on first run)

# Copy the example config to the default location
mkdir -p ~/.gen-mentor
cp gen_mentor/config/config.example.yaml ~/.gen-mentor/config.yaml

Edit ~/.gen-mentor/config.yaml to customize:

# Default model used by all agents
agent_defaults:
  model: openai/gpt-5.1        # Format: provider/model-name
  temperature: 0.0
  workspace: ~/.gen-mentor/workspace

# Provider endpoints (API keys are read from .env)
providers:
  openai:
    api_key: null               # โ† resolved from OPENAI_API_KEY env var
    api_base: null              # optional custom endpoint
  deepseek:
    api_key: null               # โ† resolved from DEEPSEEK_API_KEY env var
    api_base: null

# Web search (disabled by default)
search_defaults:
  provider: duckduckgo
  enable_search: false

Tip

If you skip Step B, GenMentor auto-creates ~/.gen-mentor/config.yaml from the built-in example on first run. You can always override the model per-request via the model parameter (e.g. "model": "deepseek/deepseek-chat").

3๏ธโƒฃ Run the application

Note

Default ports: 5000 (backend), 3000 (frontend).

Option A โ€” Manual

# Terminal 1: start backend
cd apps/backend
source .venv/bin/activate
uvicorn main:app --reload --port 5000

# Terminal 2: start frontend
cd apps/frontend
npm run dev

Option B โ€” Helper scripts

# start both backend and frontend
bash ./scripts/start_service.sh

# stop all
bash ./scripts/stop_service.sh

Ports default to 5000/3000. Override with environment variables:

BACKEND_PORT=8000 FRONTEND_PORT=3001 bash ./scripts/start_service.sh

4๏ธโƒฃ Open in browser

Service URL
๐ŸŒ Frontend UI http://127.0.0.1:3000
๐Ÿ–ฅ๏ธ Backend API http://127.0.0.1:5000
๐Ÿ“– API Docs (Swagger) http://127.0.0.1:5000/docs

5๏ธโƒฃ CLI mode (no web server needed)

Run core agent capabilities directly:

python -m gen_mentor.cli --help
# ๐Ÿงญ Refine a goal
python -m gen_mentor.cli refine-goal \
  --goal "Become a data engineer" \
  --learner-info "I know Python and SQL" \
  --provider deepseek --model deepseek-chat

# ๐Ÿ” Identify skill gaps
python -m gen_mentor.cli identify-skill-gap \
  --goal "Become a data engineer" \
  --learner-info @./resources/learner_info.txt \
  --provider deepseek --model deepseek-chat

# ๐Ÿ—“๏ธ Schedule learning path
python -m gen_mentor.cli schedule-path \
  --learner-profile @./resources/learner_profile.json \
  --session-count 8 \
  --provider deepseek --model deepseek-chat

๐ŸŽฎ Demo

Welcome to explore the demo version of the GenMentor web application:

๐Ÿ‘‰ GenMentor Web App

This interactive demo showcases GenMentor's core functionalities, including:

  • ๐Ÿ” Skill Gap Identification: Precisely map learner goals to required skills.
  • ๐Ÿ‘ค Adaptive Learner Modeling: Capture learner progress and preferences.
  • ๐Ÿ“ Personalized Content Delivery: Generate tailored learning resources.

You could also watch the demo video for a quick overview (click the image below):

Video Preview

๐Ÿ“š Citation

@inproceedings{wang2025llm,
  title={LLM-powered Multi-agent Framework for Goal-oriented Learning in Intelligent Tutoring System},
  author={Wang, Tianfu and Zhan, Yi and Lian, Jianxun and Hu, Zhengyu and Yuan, Nicholas Jing and Zhang, Qi and Xie, Xing and Xiong, Hui},
  booktitle={Companion Proceedings of the ACM Web Conference},
  year={2025}
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages