Skip to content

About

[WWW '25 Oral - GenMentor] 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.

Topics

Resources

Stars

134 stars

Watchers

4 watching

Forks

Latest commit

 

History

92 Commits

Folders and files

Repository files navigation

GenMentor

LLM-powered & Goal-oriented Tutoring System

Live app  ·  Website  ·  Paper  ·  Video


GenMentor is the official implementation of LLM-powered Multi-agent Framework for Goal-oriented Learning in Intelligent Tutoring System (WWW 2025, Industry Track, oral). You tell it where you want to be; a set of coordinated agents refines the goal, finds the gap between it and your background, schedules a path of sessions, writes each session's reading and quiz for you, and rebuilds your learner profile from what you actually did.

This repository is a single Next.js application. There is no account and no server-side database: the learner's archive lives in the browser and can be exported and imported as one JSON file. Agent calls run inside the app's API routes against any OpenAI-compatible endpoint or the Anthropic API.

Paradigms and agents

ITS paradigms
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
GenMentor framework
Agent Route What it does
Goal Refiner POST /api/refine-goal Turns a vague goal into an actionable one
Skill Mapper + Skill Gap Identifier POST /api/identify-skill-gap Maps the goal to skills, infers the learner's level for each
Adaptive Learner Profiler POST /api/profile Builds the profile, then rebuilds it after every session with quiz evidence
Learning Path Scheduler POST /api/schedule-path Creates, refines and reschedules the session sequence (streamed)
Knowledge Explorer POST /api/explore-knowledge Picks the knowledge points a session needs
Knowledge Drafter POST /api/draft-knowledge Drafts each point, optionally grounded in web search (streamed)
Document Integrator POST /api/integrate-document Synthesizes the drafts into one document (streamed)
Quiz Generator POST /api/generate-quiz Writes questions from the document
Learner Feedback Simulator POST /api/simulate-feedback Role-plays the learner to critique a path or content
AI Chatbot Tutor POST /api/tutor Streams grounded answers during a session

The prompts are the paper's prompts. The verbatim port is preserved at git tag prompts-baseline; later edits are evaluated side by side against it (scripts/eval-prompts.sh, wiki/reviews/).

Quick start

Requirements: Node 24, pnpm 11, and one LLM credential.

make install                      # pnpm install in app/
cp app/.env.example app/.env.local
# set LLM_API_KEY and LLM_BASE_URL (or OPENAI_API_KEY / ANTHROPIC_API_KEY)
make dev                          # http://localhost:3000

Learners can also bring their own key from the app (the key icon in the sidebar): it stays in their browser and is sent with each request, so a public deployment can run without a server key.

LLM_FAST_MODEL and LLM_SMART_MODEL split the work between a cheap model (tutor, quizzes, goal refinement) and a stronger one (skill gap, scheduling, content). Defaults and the other knobs are documented in app/.env.example.

No key at hand? GENMENTOR_LLM_MODE=replay make dev serves the recorded journeys in e2e/fixtures/llm for the sample goal used by the tests.

Deploy

Target How
Vercel The public instance at genmentor.aurax.live ships without a server key: visitors add their own provider, key and models in Model settings. To run your own, import the repo with Root Directory app and optionally add the environment variables
Container docker build -t genmentor app && docker run -p 3000:3000 --env-file app/.env.local genmentor

Repository layout

app/          the Next.js application (routes, agents, prompts, schemas, UI)
e2e/          Playwright journeys, axe checks, screenshot evidence, recorded LLM fixtures
wiki/         product proposal, roadmap, architecture, design principles, API reference, pitfalls
scripts/      gate.sh and verify-ui.sh (acceptance gates), eval-prompts.sh (prompt evaluation)
docs/rebuild/ the plan this rebuild followed

make gate runs the static acceptance gate (layout, docs, size budgets, banned patterns, types, lint, unit tests, build). make verify-ui builds the app, drives every journey in the browser, checks accessibility in both themes and screenshots every page in three viewports. AGENTS.md holds the constraints every contributor, human or agent, works under.

Reproducing the paper

The Python implementation used for the paper (FastAPI backend, Streamlit frontend, LangChain agents) lives on the v0.1-demo branch, also tagged v0.1.0 and paper-python-v1:

git checkout v0.1-demo

Its README describes how to run it. That branch is frozen as the demo version; all further work happens on main, which keeps the same nine agents and the same prompts (see prompts-baseline), rewritten in TypeScript.

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}
}

License

See LICENSE.

About

[WWW '25 Oral - GenMentor] 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.

Topics

Resources

Stars

134 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages