Skip to content

Cognitive Architectures for Adaptive Tutoring

Build an adaptive tutoring system that selects cognitive strategies per student, combining ACT-R procedural modelling, SOAR problem decomposition, AIXI-inspired prediction, GPS means-ends analysis, deep generative learner modelling, and cross-domain concept mapping.

Research workflow caveat

This use case demonstrates how cognitive-architecture components can be composed. The AIXI-inspired step is a bounded CTW/MCTS planning primitive with hardened MCP persistence and restart behaviour, but it is not validated proof that a tutoring policy is optimal or that the final system is production-reliable. Use it to generate candidate teaching actions, then validate outcomes with domain tests, learner metrics, and human review.

Illustrative — real operation names

Every component and operation shown is real, but these cognitive-architecture components are experimental and stateful: each cycle_run / solve op below is the run step, with granular setup ops (e.g. ACT-R chunk_create/production_create, SOAR wm_add/rule_create/op_propose) elided for readability. Call explain_component for any component's full op list.

GoalInput

{
  "goal": "Build an adaptive tutoring system that selects cognitive strategies per student",
  "context": "An online learning platform serving students across mathematics, programming, and science. Each student has a different knowledge profile, learning pace, and misconception pattern. The system must select the right cognitive architecture per interaction to maximise learning gain.",
  "constraints": [
    "Procedural skill model must capture at least 10 production rules per domain",
    "Problem decomposition must handle impasse-driven subgoaling with chunking",
    "Policy selection must account for uncertainty in student behaviour prediction",
    "Means-ends analysis must identify knowledge gaps before selecting operators",
    "Learner state model must maintain latent representations across sessions",
    "Concept mapping must connect new material to at least 3 prior knowledge anchors"
  ],
  "resource_bounds": {
    "max_execution_seconds": 240,
    "max_tokens_per_hour": 150000
  },
  "subtasks": [
    {
      "goal": "Model procedural skills with ACT-R production rules",
      "context": "Use cog_arch_actr to build a production system representing step-by-step problem solving. Each production rule encodes a condition-action pair: if the student demonstrates mastery of prerequisite X, fire the rule to advance to skill Y.",
      "constraints": ["Minimum 10 production rules per domain", "Track activation levels for each rule"]
    },
    {
      "goal": "Decompose complex problems via SOAR subgoaling",
      "context": "Use cog_arch_soar to handle impasses — when the student gets stuck, SOAR creates a subgoal to resolve the impasse. Chunking converts successful subgoal resolutions into learned shortcuts for future encounters.",
      "constraints": ["Support impasse-driven subgoaling", "Enable chunking for learned macro-operators"]
    },
    {
      "goal": "Recommend a candidate teaching policy under uncertainty",
      "context": "Use cog_arch_aixi to model the student interaction loop as an observed action/observation/reward sequence. Apply bounded CTW/MCTS planning to estimate which pedagogical action may improve expected learning gain given the history of student responses.",
      "constraints": ["Persist action/observation/reward history", "Validate candidate policies against learner metrics before deployment"]
    },
    {
      "goal": "Identify knowledge gaps via means-ends analysis",
      "context": "Use cog_arch_gps to compare the student's current knowledge state with the target learning objective. Identify the differences (knowledge gaps) and select pedagogical operators that reduce those differences.",
      "constraints": ["Operator table must map gaps to interventions", "Recursive subgoaling for multi-step gaps"]
    },
    {
      "goal": "Model latent learner state with deep generative model",
      "context": "Use cog_arch_dgm to maintain a latent representation of each student's understanding. The generative model captures uncertainty about what the student knows, enabling principled decisions about what to teach next.",
      "constraints": ["Latent state persists across sessions", "Update posterior after each student interaction"]
    },
    {
      "goal": "Map new concepts to prior knowledge via deep understanding",
      "context": "Use deep_understanding to identify cross-domain connections between new material and concepts the student already knows. Anchor unfamiliar ideas to familiar ones — e.g., connect recursion in programming to mathematical induction.",
      "constraints": ["Minimum 3 prior knowledge anchors per new concept", "Cross-domain mapping must be bidirectional"]
    }
  ]
}

Pipeline Diagram

graph TD
    A[cog_arch_actr<br/>procedural skill model] -->|production rules| B[cog_arch_soar<br/>problem decomposition]
    B -->|subgoals + chunks| C[cog_arch_aixi<br/>candidate policy selection]
    C -->|teaching policy| D[cog_arch_gps<br/>means-ends analysis]
    D -->|knowledge gaps + operators| E[cog_arch_dgm<br/>learner state model]
    E -->|latent state| F[deep_understanding<br/>concept mapping]
    F --> G((Adaptive Lesson))
    G -->|student response| A

What You Need

  • Tier: Builder
  • Components: cog_arch_actr, cog_arch_soar, cog_arch_aixi, cog_arch_gps, cog_arch_dgm, deep_understanding

Step-by-Step

Step 1: Assess Student with ACT-R Procedural Model

{
  "component": "cog_arch_actr",
  "operation": "cycle_run",
  "params": {
    "student_id": "student_042",
    "domain": "algebra",
    "production_rules": [
      {"condition": "sees_linear_equation", "action": "isolate_variable", "activation": 0.85},
      {"condition": "sees_quadratic", "action": "apply_quadratic_formula", "activation": 0.40},
      {"condition": "sees_factored_form", "action": "identify_roots", "activation": 0.72},
      {"condition": "sees_inequality", "action": "flip_sign_on_multiply_negative", "activation": 0.30}
    ],
    "track_activation": true
  }
}

Returns activation levels for each production rule. Low-activation rules (below 0.50) indicate skills the student has not yet consolidated. These become candidates for targeted instruction.

Activation Decay

ACT-R production rules follow a power-law decay — skills practised recently have higher activation. The model naturally prioritises skills that are fading from memory, implementing a spaced repetition effect without explicit scheduling.

Step 2: Decompose Problems with SOAR Subgoaling

{
  "component": "cog_arch_soar",
  "operation": "cycle_run",
  "params": {
    "problem": "Solve 2x^2 + 5x - 3 = 0 and graph the parabola",
    "student_skills": ["isolate_variable", "identify_roots"],
    "missing_skills": ["apply_quadratic_formula", "plot_parabola"],
    "enable_chunking": true
  }
}

SOAR detects an impasse: the student knows how to identify roots but not how to apply the quadratic formula. It creates a subgoal to teach the quadratic formula before returning to the original problem. Once resolved, chunking stores the successful resolution as a macro-operator for future use.

Impasse-Driven Learning

SOAR does not follow a fixed curriculum. It generates subgoals only when the student hits an impasse — a point where existing knowledge is insufficient. This means instruction is always precisely targeted at what the student does not yet know.

Step 3: Recommend Candidate Teaching Policy with AIXI

{
  "component": "cog_arch_aixi",
  "operation": "agent_act",
  "params": {
    "session_id": "student_042_policy",
    "num_actions": 5,
    "obs_space_size": 4,
    "num_simulations": 100,
    "horizon": 10
  }
}

The AIXI-inspired module treats the student interaction as a bounded sequential decision problem. Given persisted action/observation/reward history, it recommends the next action index to test. The recommendation should be mapped back to your own candidate action list, then validated through tutoring metrics and human review before deployment.

Step 4: Identify Knowledge Gaps with GPS

{
  "component": "cog_arch_gps",
  "operation": "solve",
  "params": {
    "current_state": {
      "knows": ["linear_equations", "basic_factoring", "number_line"],
      "misconceptions": ["sign_errors_in_inequalities"]
    },
    "goal_state": {
      "knows": ["quadratic_formula", "parabola_graphing", "inequality_solving"]
    },
    "operator_table": {
      "teach_quadratic_formula": {"reduces_gap": "quadratic_formula", "prerequisites": ["linear_equations"]},
      "teach_graphing": {"reduces_gap": "parabola_graphing", "prerequisites": ["quadratic_formula", "number_line"]},
      "correct_sign_misconception": {"reduces_gap": "inequality_solving", "prerequisites": ["linear_equations"]}
    }
  }
}

GPS compares current and goal states, identifies the largest difference (knowledge gap), and selects the operator that most reduces it. Prerequisite checking ensures operators are applied in a valid order — the student learns the quadratic formula before graphing parabolas.

Step 5: Model Learner State with Deep Generative Model

{
  "component": "cog_arch_dgm",
  "operation": "program_mutate",
  "params": {
    "student_id": "student_042",
    "observation": {
      "problem": "solve_quadratic",
      "response": "correct",
      "time_ms": 18000,
      "hints_used": 1
    },
    "prior_latent_state": "... persisted from previous session ...",
    "update_posterior": true
  }
}

Note: cog_arch_dgm is a Darwin Gödel Machine — a self-improving program/strategy evolver (program_mutate / evolve_run), not a turnkey "deep generative model" of learner state (the acronym collision is unfortunate). Here it is illustrated evolving the tutoring strategy itself; for a true latent-learner model, pair it with a dedicated Bayesian/ML component in production. Conceptually, the evolved strategy maintains a representation of the student's understanding, updated after each interaction and persisted across sessions.

Uncertainty Quantification

The generative model does not just estimate what the student knows — it quantifies how certain the system is about that estimate. High-uncertainty knowledge dimensions are prioritised for diagnostic questioning before instruction.

Step 6: Map Concepts with Deep Understanding

{
  "component": "deep_understanding",
  "operation": "map_concepts",
  "params": {
    "mode": "analogy",
    "new_concept": "mathematical_induction",
    "student_prior_knowledge": ["recursion_in_python", "domino_effect_analogy", "proof_by_example"],
    "domain": "mathematics",
    "cross_domain_links": true,
    "min_anchors": 3
  }
}

Deep understanding identifies cross-domain bridges: mathematical induction maps to recursion (both have base cases and inductive/recursive steps), to the domino effect (each domino knocking over the next is the inductive step), and to proof by example as a contrast (induction proves all cases, not just sampled ones). These anchors make the new concept meaningful rather than abstract.

What Happened

G6 orchestrated six cognitive architecture components in an adaptive loop:

  1. cog_arch_actr modelled the student's procedural skills as production rules with activation levels, identifying which skills are consolidated and which are fading
  2. cog_arch_soar decomposed problems via impasse-driven subgoaling, creating targeted sub-lessons only where the student's knowledge was insufficient, and chunking successful resolutions for reuse
  3. cog_arch_aixi recommended a candidate pedagogical action under uncertainty from persisted action/observation/reward history; this recommendation still requires validation against learner outcomes
  4. cog_arch_gps performed means-ends analysis to identify the largest knowledge gaps and select operators (teaching actions) that reduce them in prerequisite-valid order
  5. cog_arch_dgm maintained a persistent latent representation of the student's understanding, updating the posterior after each interaction with calibrated uncertainty
  6. deep_understanding connected new material to the student's prior knowledge via cross-domain concept mapping, anchoring unfamiliar ideas to at least three familiar ones

The pipeline loops: after each lesson, the student's response feeds back into ACT-R for skill re-assessment, closing the adaptive cycle.

Why G6 Over a Bare LLM

A capable LLM can generate tutoring content and adapt its explanations. G6 adds six distinct prebuilt cognitive architectures — ACT-R, SOAR, AIXI, GPS, DGM, and Bayesian Knowledge Tracing — that can maintain explicit state and produce inspectable intermediate decisions. These components make the workflow more auditable than a bare prompt, but they do not remove the need for evaluation, domain review, and outcome measurement before production use.