To Align Long, Plan Short: Simulating Diverse Profile-Aligned Students by Realizing Short-Term Plans in Long-Horizon Learning Environments
Organizations: EPFL, Lausanne, Switzerland · MPI-SWS, Saarbrücken, Germany
Abstract
Simulated students offer a scalable way to test learning platforms and AI tutors before deployment with real students and to augment scarce data for studying learning at scale. Existing LLM-based simulators primarily target short, language-centered interactions. In open-ended learning environments, however, student behavior emerges from patterns across long-horizon interaction trajectories, where turn-level prompting can drift from an assigned behavior profile. We introduce ALPS (Align Long-term by Planning Short-term), a hierarchical simulated student conditioned on observable, environment-specific behavior profiles. Rather than selecting every action independently, ALPS alternates between planning profile-aligned task segments and generating the corresponding actions. We evaluate ALPS in both data-sufficient and data-scarce settings, where supervision comes either from real student trajectories or from a teacher LLM. Across both settings, we compare in-context learning (ICL), supervised fine-tuning (SFT), reward-ranked fine-tuning (RAFT), and their sequential combination (SFT followed by RAFT). Experiments in an inquiry-based physics game and a pharmacy simulation evaluate behavioral density and coverage against held-out real data, and profile consistency using a human-aligned LLM judge. Across both settings, ALPS consistently outperforms turn-level generation, achieving comparable density and judge pass rates under scarce supervision, although coverage remains lower. These results show that hierarchical planning enables faithful, profile-aligned simulation over long interaction horizons, even with limited real student data.
Figures & tables
| Model | Architecture | Adaptation | Signal Source | Clipped Density | Clipped Coverage | Judge pass rate | ||||
| mean | worst | mean | worst | mean | worst | |||||
| PharmaSim | GPT-OSS | Turn-level | ICL | 3-shot | 22.5 ±0.3 | 0.0 ±0.0 | 2.2 ±0.7 | 0.0 ±0.0 | 39.6 ±0.2 | 0.0 ±0.0 |
| ALPS | ICL | 3-shot | 76.0 ±2.3 ∗ | 47.9 ±4.5 | 9.7 ±0.3 ∗ | 3.0 ±0.0 | 95.6 ±0.8 ∗ | 86.9 ±1.5 | ||
| Qwen3 | Turn-level | ICL | 3-shot | 37.4 ±0.6 | 0.0 ±0.0 | 4.2 ±1.3 | 2.0 ±1.4 | 46.6 ±0.3 | 1.0 ±0.8 | |
| RAFT | in-profile | 21.1 ±2.5 | 0.0 ±0.0 | 13.7 ±6.0 | 0.0 ±0.0 | 28.1 ±2.2 | 0.0 ±0.0 | |||
| SFT | 37.7 ±4.3 | 8.6 ±5.2 | 43.0 ±6.5 | 6.3 ±2.8 | 53.2 ±5.6 | 23.8 ±11.3 | ||||
| Model | Architecture | Adaptation | Signal Source | Clipped Density | Clipped Coverage | Judge pass rate | ||||
| mean | worst | mean | worst | mean | worst | |||||
| PharmaSim | GPT-OSS | Turn-level | ICL | 22.9 ±0.2 | 0.0 ±0.0 | 1.9 ±0.2 | 0.0 ±0.0 | 39.7 ±0.1 | 0.0 ±0.0 | |
| ALPS | ICL | 83.7 ±0.7 ∗ | 18.4 ±3.3 | 25.9 ±0.2 ∗ | 3.0 ±0.0 | 90.5 ±0.7 | 67.0 ±2.2 | |||
| Qwen3 | Turn-level | ICL | 36.8 ±0.4 | 0.0 ±0.0 | 9.5 ±8.7 | 0.7 ±0.9 | 46.3 ±0.8 | 0.7 ±0.5 | ||
| RAFT | TR | 42.0 ±1.4 | 0.0 ±0.0 | 14.0 ±7.2 | 2.0 ±0.0 | 66.3 ±2.9 | 0.7 ±0.5 | |||
| SFT | TD | 30.0 ±4.8 | 0.0 ±0.0 | 2.4 ±0.2 | 0.7 ±0.9 | 46.3 ±0.7 | 0.7 ±0.5 | |||
Appendix figures & tables20 assets
Supplementary material from the paper’s appendix.
Appendix
| TugLet | PharmaSim | |
| Action types | 3 | 7 |
| Behavior profiles | 6 | 5 |
| Students ( / ) | 140 / 109 | 140 / 94 |
| Trajectories in | 18 | 15 |
| Median trajectory length | 41 | 31 |
| 90th percentile length | 124 | 39 |
| Profile | Exploration volume | Strong-explore ratio | Phase concentration | Session length | Distinguishing behavior |
| P1: Thorough Learner | substantial | highest | middle (L3–L5) | moderate | most middle-phase exploration |
| P2: Efficient Learner | modest | second highest | opening (L1), then tapering | short | brief but high-quality exploration |
| P3: Challenge-First | lowest | near zero | almost entirely opening (L1) | short | advances mainly through Challenge attempts |
| P4: Early Burst | large initial burst | lowest | opening (L1) | moderate | largest opening-phase burst |
| P5: Persistent Grinder | modest | low | mostly early and middle, with sparse late exploration | long | continues exploring during the final grind |
| P6: Stubborn Grinder | lowest per segment | near zero | sparse throughout | long | highest Challenge-question volume |
| Group | Features |
| Discussion effort | mother share, baby share, and number of discussion actions |
| Research volume | numbers of document, shelf-product, and compendium actions |
| Research relevance | fraction of relevant actions for each research tool (3) |
| Hint usage | number of pharmacist hints |
| Topic variety | topic coverage and repetition rate for each character (4) |
| Profile | Discussion | Hints | Coverage and repetition | Distinguishing behavior |
| P1: Hint-Heavy Deep Engagement | both characters, somewhat mother-weighted | highest; distributed across segments | broad coverage with limited repetition | substantial engagement over multiple varied segments |
| P2: Mother-Only | mother only | not defining | narrow, short discussion | never questions the baby and remains within one segment |
| P3: Hint-Seeking Wide Coverage | both characters, mother first | always at least one | broad coverage with almost no repetition | routinely checks understanding with the pharmacist |
| P4: Independent Balanced Learner | balanced across both characters | none | broadest coverage with the least repetition | works independently and targets relevant documents |
| P5: Baby-Only | baby only | not defining | very limited discussion | never questions the mother and ends after one short segment |
| TugLet | PharmaSim | |||
| Profile | ||||
| P1 | 20 | 19 | 8 | 5 |
| P2 | 44 | 39 | 17 | 11 |
| P3 | 40 | 25 | 42 | 29 |
| P4 | 8 | 5 | 65 | 43 |
| P5 | 12 | 10 | 8 | 6 |
| Environment | Quantity | R1 | R2 | R3 |
| TugLet | Training seed | 4096 | 4097 | 4098 |
| Data-split seed | 42 | 43 | 44 | |
| Generation seed | 42 | 142 | 242 | |
| PharmaSim | Training seed | 4096 | 1234 | 5678 |
| Data-split seed | 42 | 43 | 44 | |
| Generation seed | 42 | 142 | 242 |
| Setting | TugLet | PharmaSim |
| Base model | Qwen3-8B | |
| LoRA / / dropout | 32 / 64 / 0 | |
| LoRA variant | rsLoRA | |
| Target modules | all attn. & MLP proj. | |
| Optimizer | AdamW | |
| Learning rate | ||
| Model | Architecture | Adaptation | Signal Source | P1 | P2 | P3 | P4 | P5 | |
| Clipped Density | |||||||||
| PharmaSim | GPT-OSS | Turn-level | ICL | 3-shot | 0.0 ±0.0 | 12.5 ±1.4 | 0.0 ±0.0 | 0.0 ±0.0 | 100.0 ±0.0 |
| ICL | 0-shot numeric | 1.7 ±1.2 | 31.3 ±4.3 | 0.0 ±0.0 | 0.0 ±0.0 | 100.0 ±0.0 | |||
| ICL | 0-shot | 0.0 ±0.0 | 31.5 ±4.4 | 0.0 ±0.0 | 0.0 ±0.0 | 100.0 ±0.0 | |||
| ALPS | ICL | 3-shot | 100.0 ±0.0 | 68.6 ±3.5 | 58.5 ±9.9 | 52.7 ±11.2 | 100.0 ±0.0 | ||
| ICL | 0-shot numeric | 100.0 ±0.0 | 61.0 ±2.0 | 66.6 ±4.4 | 100.0 ±0.0 | 100.0 ±0.0 | |||
| Model | Architecture | Adaptation | Signal Source | P1 | P2 | P3 | P4 | P5 | P6 | |
| Clipped Density | ||||||||||
| TugLet | GPT-OSS | Turn-level | ICL | 3-shot | 2.0 ±2.0 | 33.7 ±9.6 | 65.2 ±3.3 | 21.7 ±12.5 | 83.6 ±11.1 | 86.2 ±9.3 |
| ICL | 0-shot numeric | 6.5 ±1.3 | 36.0 ±5.2 | 70.6 ±2.7 | 28.3 ±7.2 | 4.8 ±0.3 | 0.0 ±0.0 | |||
| ICL | 0-shot | 3.4 ±2.0 | 26.6 ±3.6 | 68.0 ±1.4 | 75.8 ±15.0 | 19.0 ±10.3 | 3.4 ±3.3 | |||
| ALPS | ICL | 3-shot | 42.4 ±6.5 | 100.0 ±0.0 | 100.0 ±0.0 | 100.0 ±0.0 | 100.0 ±0.0 | 61.3 ±4.0 | ||
| ICL | 0-shot numeric | 21.0 ±2.4 | 83.9 ±5.7 | 100.0 ±0.0 | 100.0 ±0.0 | 93.8 ±8.8 | 63.6 ±1.9 | |||
| Model | Architecture | Adaptation | Signal Source | P1 | P2 | P3 | P4 | P5 | |
| Clipped Density | |||||||||
| PharmaSim | GPT-OSS | Turn-level | ICL | 0.0 ±0.0 | 14.7 ±1.1 | 0.0 ±0.0 | 0.0 ±0.0 | 100.0 ±0.0 | |
| ICL | 0-shot | 0.0 ±0.0 | 31.5 ±4.4 | 0.0 ±0.0 | 0.0 ±0.0 | 100.0 ±0.0 | |||
| ALPS | ICL | 100.0 ±0.0 | 100.0 ±0.0 | 18.4 ±3.3 | 100.0 ±0.0 | 100.0 ±0.0 | |||
| ICL | 0-shot | 59.2 ±5.1 | 100.0 ±0.0 | 16.9 ±6.8 | 100.0 ±0.0 | 100.0 ±0.0 | |||
| Qwen3 | Turn-level | ICL | 0.0 ±0.0 | 84.0 ±1.9 | 0.0 ±0.0 | 0.0 ±0.0 | 100.0 ±0.0 | ||
| Model | Architecture | Adaptation | Signal Source | P1 | P2 | P3 | P4 | P5 | P6 | |
| Clipped Density | ||||||||||
| TugLet | GPT-OSS | Turn-level | ICL | 2.4 ±0.5 | 26.6 ±4.9 | 64.8 ±2.5 | 70.8 ±12.3 | 6.4 ±1.5 | 17.0 ±19.1 | |
| ICL | 0-shot | 3.4 ±2.0 | 26.6 ±3.6 | 68.0 ±1.4 | 75.8 ±15.0 | 19.0 ±10.3 | 3.4 ±3.3 | |||
| ALPS | ICL | 33.2 ±3.4 | 38.4 ±5.5 | 97.3 ±0.3 | 100.0 ±0.0 | 84.5 ±3.8 | 0.0 ±0.0 | |||
| ICL | 0-shot | 23.8 ±4.4 | 34.5 ±5.4 | 89.4 ±3.0 | 18.3 ±5.9 | 90.5 ±4.4 | 0.0 ±0.0 | |||
| Qwen3 | Turn-level | ICL | 9.3 ±4.1 | 45.1 ±1.6 | 15.5 ±0.7 | 0.0 ±0.0 | 0.0 ±0.0 | 8.1 ±3.0 | ||
| Model | Architecture | Numeric | Examples | Clipped Density | Clipped Coverage | Judge pass rate | |||
| mean | worst | mean | worst | mean | worst | ||||
| GPT-OSS | Turn-level | – | – | 26.3 ±0.9 | 0.0 ±0.0 | 4.0 ±1.3 | 0.0 ±0.0 | 37.3 ±0.3 | 0.0 ±0.0 |
| – | 26.6 ±0.6 | 0.0 ±0.0 | 3.2 ±1.2 | 0.0 ±0.0 | 37.7 ±0.3 | 0.0 ±0.0 | |||
| – | 22.9 ±0.2 | 0.0 ±0.0 | 1.9 ±0.2 | 0.0 ±0.0 | 39.7 ±0.1 | 0.0 ±0.0 | |||
| 22.5 ±0.3 | 0.0 ±0.0 | 2.2 ±0.7 | 0.0 ±0.0 | 39.6 ±0.2 | 0.0 ±0.0 | ||||
| ALPS | – | – | 75.2 ±1.7 | 16.9 ±6.8 | 6.7 ±0.9 | 3.0 ±0.0 | 76.3 ±1.1 | 58.0 ±2.9 | |
| Model | Architecture | Numeric | Examples | Clipped Density | Clipped Coverage | Judge pass rate | |||
| mean | worst | mean | worst | mean | worst | ||||
| GPT-OSS | Turn-level | – | – | 32.7 ±3.6 | 1.6 ±1.8 | 11.8 ±6.6 | 2.6 ±2.0 | 19.5 ±0.3 | 0.0 ±0.0 |
| – | 24.4 ±1.1 | 0.0 ±0.0 | 7.0 ±0.3 | 1.0 ±1.4 | 21.3 ±0.1 | 0.0 ±0.0 | |||
| – | 31.3 ±5.4 | 2.4 ±0.5 | 11.7 ±6.7 | 3.0 ±0.0 | 20.5 ±1.2 | 0.0 ±0.0 | |||
| 48.7 ±4.0 | 2.0 ±2.0 | 48.8 ±7.8 | 3.0 ±0.0 | 20.6 ±0.3 | 0.0 ±0.0 | ||||
| ALPS | – | – | 42.7 ±0.7 | 0.0 ±0.0 | 9.1 ±1.2 | 0.0 ±0.0 | 30.2 ±1.8 | 0.0 ±0.0 | |
| Clipped Density | Clipped Coverage | Judge | ||||
| Configuration | mean | worst | mean | worst | mean | worst |
| PharmaSim | ||||||
| ALPS (full) | 69.7 3.1 | 33.4 5.8 | 58.1 2.8 | 21.2 5.0 | 75.8 3.8 | 41.6 20.4 |
| - generator adapter | 67.0 5.3 | 23.7 4.5 | 49.7 8.4 | 17.1 3.8 | 71.2 5.6 | 40.4 17.7 |
| - planner adapter | 35.3 0.9 | 4.5 2.2 | 6.8 0.8 | 3.0 0.0 | 67.0 2.8 | 35.9 2.2 |
| TugLet | ||||||
| Contrast | Metric | (inf.) | 95% CI | ||||
| PharmaSim Exp1: architecture under prompting (2 contrasts) | |||||||
| E1.1 GPT-OSS: ALPS vs. Turn | density | 15 (12) | .001 | ||||
| coverage | 15 (14) | .0015 | |||||
| judge | 15 (12) | .001 | |||||
| E1.2 Qwen3: ALPS vs. Turn | density | 15 (12) | |||||
| coverage | 15 (10) | ||||||
| Contrast | Metric | (inf.) | 95% CI | ||||
| TugLet Exp1: architecture under prompting (2 contrasts) | |||||||
| E1.1 GPT-OSS: ALPS vs. Turn | density | 18 (18) | .0013 | ||||
| coverage | 18 (15) | ||||||
| judge | 18 (18) | .001 | |||||
| E1.2 Qwen3: ALPS vs. Turn | density | 18 (18) | |||||
| coverage | 18 (17) | ||||||
| Contrast | Metric | (inf.) | 95% CI | ||||
| PharmaSim Exp2: teacher guidance, Qwen3 (8 contrasts) | |||||||
| E2.1 ALPS SFT(TD) vs. ALPS ICL | density | 15 (15) | .001 | ||||
| coverage | 15 (11) | ||||||
| judge | 15 (14) | .001 | |||||
| E2.2 Turn SFT(TD) vs. Turn ICL | density | 15 (3) ‡ | .001 | ||||
| coverage | 15 (5) ‡ | .0299 | |||||
| Contrast | Metric | (inf.) | 95% CI | ||||
| TugLet Exp2: teacher guidance, Qwen3 (8 contrasts) | |||||||
| E2.1 ALPS SFT(TD) vs. ALPS ICL | density | 18 (18) | .0045 | ||||
| coverage | 18 (17) | .0263 | |||||
| judge | 18 (18) | .001 | |||||
| E2.2 Turn SFT(TD) vs. Turn ICL | density | 18 (15) | |||||
| coverage | 18 (15) | .0263 | |||||