TutorLoop: Regulating Student Learning Behaviors via Sensor-in-the-Loop Generative Feedback
Organizations: The Hong Kong Polytechnic University Hong Kong, China · University of California, San Diego San Diego, California, USA
Abstract
We present TutorLoop, a sensor-in-the-loop system that regulates student learning behaviors by delivering adaptive feedback based on real-time cognitive states. Unlike prior large language model (LLM) tutors that directly depend on scenario-specific content, TutorLoop operates on sensor-derived signals captured via webcams. Moreover, unlike direct cognitive-to-feedback mappings that are short-sighted, the system employs a deep reinforcement learning (DRL) agent to optimize the feedback type across the entire learning process. Finally, another LLM tutor refines feedback into human-like, context-aware messages. We evaluate TutorLoop in a large-scale user study (N=187), where a model trained offline is directly applied to a new learning task without retraining. Results show that TutorLoop provides less frequent yet more effective interventions, improving attention, reducing workload, increasing engagement, and ultimately enhancing learning outcomes. These findings highlight the potential of closed-loop, sensor-driven feedback for scalable human-AI integrated systems to support learning.
Figures & tables
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| Group | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Intercept | 0.739 | 0.015 | 50.036 | 0.000 | 0.710 | 0.768 |
| TutorUp | -0.353 | 0.175 | -2.010 | 0.044 | -0.697 | -0.009 |
| Control | -0.392 | 0.159 | -2.471 | 0.013 | -0.703 | -0.081 |
| DRL Only | -0.472 | 0.156 | -3.037 | 0.002 | -0.777 | -0.168 |
| Comparison | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Control vs DRL Only | 0.081 | 0.229 | 0.352 | 0.725 | -0.369 | 0.530 |
| Control vs Full | -0.392 | 0.159 | -2.471 | 0.013 | -0.703 | -0.081 |
| Control vs TutorUp | -0.039 | 0.229 | -0.171 | 0.864 | -0.488 | 0.410 |
| DRL Only vs Full | -0.473 | 0.156 | -3.037 | 0.002 | -0.777 | -0.168 |
| DRL Only vs TutorUp | -0.120 | 0.231 | -0.519 | 0.604 | -0.572 | 0.333 |
| Full vs TutorUp | 0.353 | 0.175 | 2.010 | 0.044 | 0.009 | 0.697 |
| Group | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Intercept | 0.102 | 0.028 | 3.627 | 0.000 | 0.047 | 0.158 |
| TutorUp | -0.014 | 0.059 | -0.232 | 0.817 | -0.130 | 0.102 |
| Control | 0.066 | 0.039 | 1.674 | 0.094 | -0.011 | 0.143 |
| DRL Only | 0.188 | 0.049 | 3.801 | 0.000 | 0.091 | 0.285 |
| Comparison | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Control vs DRL Only | -0.122 | 0.084 | -1.454 | 0.146 | -0.287 | 0.043 |
| Control vs Full | 0.066 | 0.039 | 1.674 | 0.094 | -0.011 | 0.143 |
| Control vs TutorUp | 0.080 | 0.083 | 0.957 | 0.339 | -0.083 | 0.242 |
| DRL Only vs Full | 0.188 | 0.049 | 3.801 | 0.000 | 0.091 | 0.285 |
| DRL Only vs TutorUp | 0.202 | 0.085 | 2.381 | 0.017 | 0.036 | 0.368 |
| Full vs TutorUp | 0.014 | 0.059 | 0.232 | 0.817 | -0.102 | 0.130 |
| Group | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Intercept | 0.092 | 0.002 | 43.045 | 0.000 | 0.088 | 0.096 |
| TutorUp | -0.027 | 0.008 | -3.434 | 0.001 | -0.043 | -0.012 |
| Control | -0.006 | 0.008 | -0.714 | 0.475 | -0.022 | 0.010 |
| DRL Only | -0.016 | 0.005 | -3.072 | 0.002 | -0.027 | -0.006 |
| Comparison | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Control vs DRL Only | 0.010 | 0.010 | 1.031 | 0.303 | -0.009 | 0.030 |
| Control vs Full | -0.006 | 0.008 | -0.714 | 0.475 | -0.022 | 0.010 |
| Control vs TutorUp | 0.021 | 0.010 | 2.049 | 0.040 | 0.001 | 0.042 |
| DRL Only vs Full | -0.016 | 0.005 | -3.072 | 0.002 | -0.027 | -0.006 |
| DRL Only vs TutorUp | 0.011 | 0.010 | 1.065 | 0.287 | -0.009 | 0.031 |
| Full vs TutorUp | 0.027 | 0.008 | 3.434 | 0.001 | 0.012 | 0.043 |
| Group | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Intercept | 0.140 | 0.001 | 152.196 | 0.000 | 0.138 | 0.142 |
| TutorUp | 0.137 | 0.004 | 32.302 | 0.000 | 0.129 | 0.145 |
| Control | -0.140 | 0.004 | -37.283 | 0.000 | -0.147 | -0.132 |
| DRL Only | 0.183 | 0.003 | 62.697 | 0.000 | 0.177 | 0.188 |
| Comparison | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Control vs DRL Only | -0.322 | 0.005 | -62.763 | 0.000 | -0.332 | -0.312 |
| Control vs Full | -0.140 | 0.004 | -37.283 | 0.000 | -0.147 | -0.132 |
| Control vs TutorUp | -0.277 | 0.005 | -53.511 | 0.000 | -0.287 | -0.267 |
| DRL Only vs Full | 0.183 | 0.003 | 62.697 | 0.000 | 0.177 | 0.188 |
| DRL Only vs TutorUp | 0.046 | 0.005 | 8.978 | 0.000 | 0.036 | 0.056 |
| Full vs TutorUp | -0.137 | 0.004 | -32.302 | 0.000 | -0.145 | -0.129 |
| Group | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Intercept | 0.662 | 0.006 | 111.460 | 0.000 | 0.650 | 0.673 |
| TutorUp | -0.042 | 0.028 | -1.494 | 0.135 | -0.097 | 0.013 |
| Control | -0.053 | 0.025 | -2.153 | 0.031 | -0.102 | -0.005 |
| DRL Only | -0.036 | 0.021 | -1.697 | 0.090 | -0.077 | 0.006 |
| Comparison | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Control vs DRL Only | -0.018 | 0.038 | -0.473 | 0.636 | -0.091 | 0.056 |
| Control vs Full | -0.053 | 0.025 | -2.153 | 0.031 | -0.102 | -0.005 |
| Control vs TutorUp | -0.011 | 0.038 | -0.299 | 0.765 | -0.085 | 0.062 |
| DRL Only vs Full | -0.036 | 0.021 | -1.697 | 0.090 | -0.077 | 0.006 |
| DRL Only vs TutorUp | 0.007 | 0.038 | 0.174 | 0.862 | -0.067 | 0.080 |
| Full vs TutorUp | 0.042 | 0.028 | 1.494 | 0.135 | -0.013 | 0.097 |
| Group | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Intercept | 0.448 | 0.001 | 356.892 | 0.000 | 0.445 | 0.450 |
| TutorUp | -0.054 | 0.021 | -2.634 | 0.008 | -0.094 | -0.014 |
| Control | -0.089 | 0.020 | -4.416 | 0.000 | -0.129 | -0.050 |
| DRL Only | -0.061 | 0.020 | -3.069 | 0.002 | -0.100 | -0.022 |
| Comparison | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Control vs DRL Only | -0.028 | 0.029 | -0.948 | 0.343 | -0.086 | 0.030 |
| Control vs Full | -0.089 | 0.020 | -4.416 | 0.000 | -0.129 | -0.050 |
| Control vs TutorUp | -0.035 | 0.029 | -1.194 | 0.232 | -0.093 | 0.023 |
| DRL Only vs Full | -0.061 | 0.020 | -3.069 | 0.002 | -0.100 | -0.022 |
| DRL Only vs TutorUp | -0.007 | 0.030 | -0.244 | 0.808 | -0.066 | 0.051 |
| Full vs TutorUp | 0.054 | 0.021 | 2.634 | 0.008 | 0.014 | 0.094 |
| Group | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Intercept | 0.284 | 0.003 | 94.678 | 0.000 | 0.278 | 0.290 |
| TutorUp | -0.033 | 0.012 | -2.769 | 0.006 | -0.057 | -0.010 |
| Control | -0.051 | 0.013 | -4.052 | 0.000 | -0.075 | -0.026 |
| DRL Only | -0.039 | 0.014 | -2.768 | 0.006 | -0.067 | -0.011 |
| Comparison | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Control vs DRL Only | -0.011 | 0.020 | -0.568 | 0.570 | -0.051 | 0.028 |
| Control vs Full | -0.051 | 0.013 | -4.052 | 0.000 | -0.075 | -0.026 |
| Control vs TutorUp | -0.018 | 0.020 | -0.867 | 0.386 | -0.057 | 0.022 |
| DRL Only vs Full | -0.039 | 0.014 | -2.768 | 0.006 | -0.067 | -0.011 |
| DRL Only vs TutorUp | -0.006 | 0.020 | -0.298 | 0.766 | -0.046 | 0.034 |
| Full vs TutorUp | 0.033 | 0.012 | 2.769 | 0.006 | 0.010 | 0.057 |
| Group | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Intercept | 0.151 | 0.000 | 340.990 | 0.000 | 0.150 | 0.152 |
| TutorUp | -0.016 | 0.010 | -1.527 | 0.127 | -0.036 | 0.004 |
| Control | -0.021 | 0.010 | -2.186 | 0.029 | -0.040 | -0.002 |
| DRL Only | -0.019 | 0.010 | -1.967 | 0.049 | -0.038 | -0.000 |
| Comparison | Coef. | Std.Err. | z | P>|z| | [0.025 | 0.975] |
| Control vs DRL Only | -0.002 | 0.014 | -0.147 | 0.883 | -0.029 | 0.025 |
| Control vs Full | -0.021 | 0.010 | -2.186 | 0.029 | -0.040 | -0.002 |
| Control vs TutorUp | -0.006 | 0.014 | -0.411 | 0.681 | -0.033 | 0.021 |
| DRL Only vs Full | -0.019 | 0.010 | -1.967 | 0.049 | -0.038 | 0.000 |
| DRL Only vs TutorUp | -0.004 | 0.014 | -0.261 | 0.794 | -0.031 | 0.024 |
| Full vs TutorUp | 0.016 | 0.010 | 1.527 | 0.127 | -0.004 | 0.036 |