TutorX-MCP / docs /NEW_ADAPTIVE_LEARNING_README.md
Meet Patel
Implement storage layer and adaptive learning tools for TutorX-MCP
250bf8c

A newer version of the Gradio SDK is available: 5.42.0

Upgrade

🧠 New Adaptive Learning System

Overview

The new adaptive learning system has been completely redesigned and integrated directly into the existing Learning Path Generation module. This provides a cleaner, more maintainable, and more focused approach to adaptive learning.

Key Changes

βœ… What Was Removed

  • Complex Analytics Module: Removed mcp_server/analytics/ directory with performance tracking, learning analytics, and progress monitoring
  • Complex Algorithms Module: Removed mcp_server/algorithms/ directory with adaptive engine, difficulty adjuster, path optimizer, and mastery detector
  • Standalone Adaptive Tools: Removed mcp_server/tools/adaptive_learning_tools.py
  • Documentation Files: Removed old documentation files that described the complex system

βœ… What Was Added

  • Integrated Adaptive Learning: New adaptive learning capabilities built directly into learning_path_tools.py
  • Simplified Data Structures: Clean, focused data structures for student performance and learning events
  • Essential MCP Tools: Core adaptive learning tools that provide real value without complexity

New Architecture

Data Structures

@dataclass
class StudentPerformance:
    student_id: str
    concept_id: str
    accuracy_rate: float = 0.0
    time_spent_minutes: float = 0.0
    attempts_count: int = 0
    mastery_level: float = 0.0
    last_accessed: datetime = None
    difficulty_preference: float = 0.5

@dataclass
class LearningEvent:
    student_id: str
    concept_id: str
    event_type: str  # 'answer_correct', 'answer_incorrect', 'hint_used', 'time_spent'
    timestamp: datetime
    data: Dict[str, Any]

Available MCP Tools

1. start_adaptive_session

Start an adaptive learning session for a student.

  • Input: student_id, concept_id, initial_difficulty
  • Output: Session information and initial recommendations

2. record_learning_event

Record learning events for adaptive analysis.

  • Input: student_id, concept_id, session_id, event_type, event_data
  • Output: Event confirmation and updated recommendations

3. get_adaptive_recommendations

Get adaptive learning recommendations for a student.

  • Input: student_id, concept_id, session_id (optional)
  • Output: Personalized recommendations based on performance

4. get_adaptive_learning_path

Generate an adaptive learning path based on student performance.

  • Input: student_id, target_concepts, strategy, max_concepts
  • Output: Optimized learning path with adaptive features

5. get_student_progress_summary

Get comprehensive progress summary for a student.

  • Input: student_id, days
  • Output: Progress analytics and recommendations

Features

🎯 Real-Time Adaptation

  • Performance Tracking: Monitor accuracy, time spent, and attempts
  • Difficulty Adjustment: Automatically adjust based on performance
  • Mastery Detection: Multi-indicator assessment of understanding

πŸ“Š Learning Analytics

  • Progress Monitoring: Track learning progress over time
  • Pattern Recognition: Identify learning patterns and preferences
  • Personalized Recommendations: Tailored suggestions for improvement

πŸ›€οΈ Adaptive Learning Paths

  • Strategy-Based Optimization: Multiple learning strategies available
  • Prerequisite Management: Intelligent concept sequencing
  • Time Estimation: Personalized time estimates based on performance

Usage Examples

Starting a Session

session = await start_adaptive_session(
    student_id="student_001",
    concept_id="algebra_linear_equations",
    initial_difficulty=0.5
)

Recording Events

await record_learning_event(
    student_id="student_001",
    concept_id="algebra_linear_equations",
    session_id=session_id,
    event_type="answer_correct",
    event_data={"time_taken": 30}
)

Getting Recommendations

recommendations = await get_adaptive_recommendations(
    student_id="student_001",
    concept_id="algebra_linear_equations"
)

Generating Adaptive Learning Path

path = await get_adaptive_learning_path(
    student_id="student_001",
    target_concepts=["algebra_basics", "linear_equations"],
    strategy="adaptive",
    max_concepts=5
)

Integration with App

The new system is fully integrated into the existing Gradio app with:

  • Enhanced Learning Path Generation: Adaptive path generation alongside basic paths
  • Adaptive Learning Tab: Dedicated UI for adaptive learning features
  • Seamless Integration: Works with existing concept graph and quiz tools

Benefits

πŸš€ Simplified Architecture

  • Single Module: All adaptive learning in one focused module
  • Reduced Complexity: Eliminated unnecessary abstractions
  • Better Maintainability: Easier to understand and modify

🎯 Focused Features

  • Essential Functionality: Only the most valuable adaptive features
  • Real-World Applicability: Features that actually improve learning
  • Performance Optimized: Lightweight and fast

πŸ”§ Easy Integration

  • Existing Workflow: Integrates with current learning path generation
  • Backward Compatible: Doesn't break existing functionality
  • Future Ready: Easy to extend with new features

Testing

Run the test script to verify the new implementation:

python test_new_adaptive_learning.py

This will test all the core adaptive learning functions and demonstrate the system's capabilities.