<img src="https://github.com/GeminiLight/gen-mentor/raw/main/resources/logo.png" alt="GenMentor Logo" width="300"/>
LLM-powered & Goal-oriented Tutoring System
<a href="https://www.tianfuwang.tech/gen-mentor">Website</a> ·
<a href="https://arxiv.org/pdf/2501.15749">Paper</a> ·
<a href="https://gen-mentor.streamlit.app/">Demo</a> ·
<a href="https://youtu.be/vTdtGZop-Zc">Video</a>
[!IMPORTANT]
:sparkles: Welcome to visit the GenMentor website to learn more about our work!
This is official code of 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.
In this paper, we propose GenMentor, a large language model (LLM)-powered multi-agent framework designed for goal-oriented learning in Intelligent Tutoring Systems (ITS). This framework emphasizes personalization, adaptive learning, and goal-aligned content delivery, making it a robust solution for professional and lifelong learning scenarios.
<img src="https://github.com/GeminiLight/gen-mentor/raw/main/resources/its-paradigms.png" alt="GenMentor Overview" width="500" style="box-shadow: 0 8px 24px rgba(0,0,0,0.15); border-radius: 8px;"/>
| 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 |
🤖 Key Agent Modules
<img src="https://github.com/GeminiLight/gen-mentor/raw/main/resources/genmentor-framework.png" alt="GenMentor Overview" width="700" style="box-shadow: 0 8px 24px rgba(0,0,0,0.15); border-radius: 8px;"/>
Skill Gap Identifier: Analyzes learner's current knowledge to identify gaps.Adaptive Learner Modeler: Builds and updates learner profiles based on interactions.Learning Path Scheduler: Creates personalized learning paths and schedules.Tailored Content Generator: Produces customized learning materials and assessments.AI Chatbot Tutor: Engages learners in dialogue, answering questions and providing support.Key Demo Interfaces
<img src="https://github.com/GeminiLight/gen-mentor/raw/main/resources/genmentor_demo_1.png" alt="GenMentor Demo Interface-1" width="400" style="box-shadow: 0 8px 24px rgba(0,0,0,0.15); border-radius: 8px; margin: 8px;"/>
<img src="https://github.com/GeminiLight/gen-mentor/raw/main/resources/genmentor_demo_2.png" alt="GenMentor Demo Interface-2" width="400" style="box-shadow: 0 8px 24px rgba(0,0,0,0.15); border-radius: 8px; margin: 8px;"/>
<img src="https://github.com/GeminiLight/gen-mentor/raw/main/resources/genmentor_demo_3.png" alt="GenMentor Demo Interface-3" width="400" style="box-shadow: 0 8px 24px rgba(0,0,0,0.15); border-radius: 8px; margin: 8px;"/>
<img src="https://github.com/GeminiLight/gen-mentor/raw/main/resources/genmentor_demo_4.png" alt="GenMentor Demo Interface-4" width="400" style="box-shadow: 0 8px 24px rgba(0,0,0,0.15); border-radius: 8px; margin: 8px;"/>
<img src="https://github.com/GeminiLight/gen-mentor/raw/main/resources/genmentor_demo_5.png" alt="GenMentor Demo Interface-5" width="400" style="box-shadow: 0 8px 24px rgba(0,0,0,0.15); border-radius: 8px; margin: 8px;"/>
Here, we briefly describe how to set up and run the GenMentor system locally. Please see more details in the respective backend/ and frontend/ directories.
cd backend
uv venv
source .venv/bin/activate # on Windows: .venv\Scripts\activate
uv pip install -r requirements.txt
cd frontend
uv venv
source .venv/bin/activate # on Windows: .venv\Scripts\activate
uv pip install -r requirements.txt
Option A: update a .env file in backend/
# Example for OpenAI:
OPENAI_API_KEY="your-openai-api-key"
# Example for DeepSeek:
DEEPSEEK_API_KEY="your-deepseek-api-key"
Option B: export environment variables in your shell
# Example for OpenAI:
export OPENAI_API_KEY="your-openai-api-key"
# Example for DeepSeek:
export DEEPSEEK_API_KEY="your-deepseek-api-key"
DEEPSEEK_API_KEY="your-deepseek-api-key"
If you would like to run the backend on a different host/port, please update the API URL in frontend/config.py:
backend_endpoint = "http://127.0.0.1:5000/"
[!NOTE] The default ports are 5000 for backend, 8501 for frontend by default
Option A: Manual (preferred when using separate venvs)
# start backend
cd backend
source .venv/bin/activate # on Windows: .venv\Scripts\activate
uvicorn main:app --reload --port 5000
# start frontend
cd frontend
source .venv/bin/activate # on Windows: .venv\Scripts\activate
streamlit run main.py --server.port 8501
Option B: Helper scripts (single shell; assumes uvicorn/streamlit on PATH)
# start backend
bash ./scripts/start_backend.sh [PORT]
# start frontend
bash ./scripts/start_frontend.sh [PORT]
# stop all
bash ./scripts/stop_all.sh
Finally, you can access:
Welcome to explore the demo version of the GenMentor web application:
This interactive demo showcases GenMentor's core functionalities, including:
You could also watch the demo video for a quick overview (click the image below):
@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}
}
$ claude mcp add gen-mentor \
-- python -m otcore.mcp_server <graph>