@machinespirits/eval 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/MobileEvalDashboard.tsx +267 -0
- package/components/comparison/DeltaAnalysisTable.tsx +137 -0
- package/components/comparison/ProfileComparisonCard.tsx +176 -0
- package/components/comparison/RecognitionABMode.tsx +385 -0
- package/components/comparison/RecognitionMetricsPanel.tsx +135 -0
- package/components/comparison/WinnerIndicator.tsx +64 -0
- package/components/comparison/index.ts +5 -0
- package/components/mobile/BottomSheet.tsx +233 -0
- package/components/mobile/DimensionBreakdown.tsx +210 -0
- package/components/mobile/DocsView.tsx +363 -0
- package/components/mobile/LogsView.tsx +481 -0
- package/components/mobile/PsychodynamicQuadrant.tsx +261 -0
- package/components/mobile/QuickTestView.tsx +1098 -0
- package/components/mobile/RecognitionTypeChart.tsx +124 -0
- package/components/mobile/RecognitionView.tsx +809 -0
- package/components/mobile/RunDetailView.tsx +261 -0
- package/components/mobile/RunHistoryView.tsx +367 -0
- package/components/mobile/ScoreRadial.tsx +211 -0
- package/components/mobile/StreamingLogPanel.tsx +230 -0
- package/components/mobile/SynthesisStrategyChart.tsx +140 -0
- package/config/interaction-eval-scenarios.yaml +832 -0
- package/config/learner-agents.yaml +248 -0
- package/docs/research/ABLATION-DIALOGUE-ROUNDS.md +52 -0
- package/docs/research/ABLATION-MODEL-SELECTION.md +53 -0
- package/docs/research/ADVANCED-EVAL-ANALYSIS.md +60 -0
- package/docs/research/ANOVA-RESULTS-2026-01-14.md +257 -0
- package/docs/research/COMPREHENSIVE-EVALUATION-PLAN.md +586 -0
- package/docs/research/COST-ANALYSIS.md +56 -0
- package/docs/research/CRITICAL-REVIEW-RECOGNITION-TUTORING.md +340 -0
- package/docs/research/DYNAMIC-VS-SCRIPTED-ANALYSIS.md +291 -0
- package/docs/research/EVAL-SYSTEM-ANALYSIS.md +306 -0
- package/docs/research/FACTORIAL-RESULTS-2026-01-14.md +301 -0
- package/docs/research/IMPLEMENTATION-PLAN-CRITIQUE-RESPONSE.md +1988 -0
- package/docs/research/LONGITUDINAL-DYADIC-EVALUATION.md +282 -0
- package/docs/research/MULTI-JUDGE-VALIDATION-2026-01-14.md +147 -0
- package/docs/research/PAPER-EXTENSION-DYADIC.md +204 -0
- package/docs/research/PAPER-UNIFIED.md +659 -0
- package/docs/research/PAPER-UNIFIED.pdf +0 -0
- package/docs/research/PROMPT-IMPROVEMENTS-2026-01-14.md +356 -0
- package/docs/research/SESSION-NOTES-2026-01-11-RECOGNITION-EVAL.md +419 -0
- package/docs/research/apa.csl +2133 -0
- package/docs/research/archive/PAPER-DRAFT-RECOGNITION-TUTORING.md +1637 -0
- package/docs/research/archive/paper-multiagent-tutor.tex +978 -0
- package/docs/research/paper-draft/full-paper.md +136 -0
- package/docs/research/paper-draft/images/pasted-image-2026-01-24T03-47-47-846Z-d76a7ae2.png +0 -0
- package/docs/research/paper-draft/references.bib +515 -0
- package/docs/research/transcript-baseline.md +139 -0
- package/docs/research/transcript-recognition-multiagent.md +187 -0
- package/hooks/useEvalData.ts +625 -0
- package/index.js +27 -0
- package/package.json +73 -0
- package/routes/evalRoutes.js +3002 -0
- package/scripts/advanced-eval-analysis.js +351 -0
- package/scripts/analyze-eval-costs.js +378 -0
- package/scripts/analyze-eval-results.js +513 -0
- package/scripts/analyze-interaction-evals.js +368 -0
- package/server-init.js +45 -0
- package/server.js +162 -0
- package/services/benchmarkService.js +1892 -0
- package/services/evaluationRunner.js +739 -0
- package/services/evaluationStore.js +1121 -0
- package/services/learnerConfigLoader.js +385 -0
- package/services/learnerTutorInteractionEngine.js +857 -0
- package/services/memory/learnerMemoryService.js +1227 -0
- package/services/memory/learnerWritingPad.js +577 -0
- package/services/memory/tutorWritingPad.js +674 -0
- package/services/promptRecommendationService.js +493 -0
- package/services/rubricEvaluator.js +826 -0
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
# Session Notes: Recognition Evaluation Framework
|
|
2
|
+
**Date:** 2026-01-11
|
|
3
|
+
**Focus:** Phase 5 implementation and empirical testing of recognition architecture
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
This session completed Phase 5 of the Recognition Engine—an evaluation framework to empirically test whether Hegelian mutual recognition improves tutoring outcomes. We implemented new rubric dimensions, test scenarios, and agent profiles, then ran comparative evaluations with statistical confidence (n=3 runs per scenario).
|
|
10
|
+
|
|
11
|
+
**Key Result:** The recognition profile shows a consistent **~40% improvement** over baseline across all multi-turn scenarios, with the largest gains in pedagogical quality, personalization, and tone.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## What Was Implemented
|
|
16
|
+
|
|
17
|
+
### 1. New Evaluation Dimensions (config/evaluation-rubric.yaml)
|
|
18
|
+
|
|
19
|
+
Four recognition-specific dimensions added to the rubric:
|
|
20
|
+
|
|
21
|
+
| Dimension | Weight | What It Measures |
|
|
22
|
+
|-----------|--------|------------------|
|
|
23
|
+
| **mutual_recognition** | 10% | Does tutor acknowledge learner as autonomous subject with valid understanding? |
|
|
24
|
+
| **dialectical_responsiveness** | 10% | Does response create productive intellectual tension vs. simply agreeing/correcting? |
|
|
25
|
+
| **memory_integration** | 5% | Does suggestion reference and build on previous interactions? |
|
|
26
|
+
| **transformative_potential** | 10% | Does response create conditions for conceptual transformation, not just info transfer? |
|
|
27
|
+
|
|
28
|
+
### 2. Test Scenarios
|
|
29
|
+
|
|
30
|
+
**Single-turn (6 scenarios):**
|
|
31
|
+
- `recognition_seeking_learner` - Learner offers interpretation, seeks engagement
|
|
32
|
+
- `returning_with_breakthrough` - Learner had insight, expects acknowledgment
|
|
33
|
+
- `resistant_learner` - Learner pushes back on tutor's framing
|
|
34
|
+
- `asymmetric_recognition_request` - Learner seeks authority validation
|
|
35
|
+
- `memory_continuity_single` - Returning learner, tests history reference
|
|
36
|
+
- `transformative_moment_setup` - Learner holds misconception
|
|
37
|
+
|
|
38
|
+
**Multi-turn (3 scenarios):**
|
|
39
|
+
- `mutual_transformation_journey` (5-turn) - Both tutor and learner positions should evolve
|
|
40
|
+
- `recognition_repair` (4-turn) - Recovery after initial recognition failure
|
|
41
|
+
- `productive_struggle_arc` (5-turn) - Honoring confusion through to breakthrough
|
|
42
|
+
|
|
43
|
+
**Modulation (2 scenarios):**
|
|
44
|
+
- `modulation_instruction_to_recognition` - Superego catches one-directional instruction
|
|
45
|
+
- `modulation_generic_to_personal` - Superego enforces memory integration
|
|
46
|
+
|
|
47
|
+
### 3. Agent Profiles (config/tutor-agents.yaml)
|
|
48
|
+
|
|
49
|
+
| Profile | Memory | Prompts | Purpose |
|
|
50
|
+
|---------|--------|---------|---------|
|
|
51
|
+
| `baseline` | Off | Standard | Control group |
|
|
52
|
+
| `recognition` | On | Recognition-enhanced | Treatment group |
|
|
53
|
+
| `recognition_plus` | On | Recognition + Sonnet | Higher quality test |
|
|
54
|
+
| `recognition_prompts_only` | Off | Recognition-enhanced | Isolate prompt effect |
|
|
55
|
+
|
|
56
|
+
### 4. Recognition-Enhanced Prompts
|
|
57
|
+
|
|
58
|
+
- `prompts/tutor-ego-recognition.md` - Ego with Hegelian recognition principles, memory guidance, decision heuristics
|
|
59
|
+
- `prompts/tutor-superego-recognition.md` - Superego with recognition evaluation criteria, red/green flags, intervention strategies
|
|
60
|
+
- `prompts/eval-judge-recognition.md` - Judge guidance for scoring recognition dimensions
|
|
61
|
+
|
|
62
|
+
### 5. Code Changes
|
|
63
|
+
|
|
64
|
+
- `services/rubricEvaluator.js` - Added `calculateRecognitionMetrics()` function for tracking recognition-specific metrics
|
|
65
|
+
|
|
66
|
+
### 6. Documentation
|
|
67
|
+
|
|
68
|
+
- `docs/RECOGNITION-EVALUATION-GUIDE.md` - Comprehensive guide to Phase 5
|
|
69
|
+
- `docs/LONGITUDINAL-DYADIC-EVALUATION.md` - Conceptual note on evaluating sustained tutor-learner relationships (groundwork for Phase 6)
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Evaluation Results
|
|
74
|
+
|
|
75
|
+
### Final Multi-Turn Results (n=3 runs, statistically robust)
|
|
76
|
+
|
|
77
|
+
| Scenario | Baseline | Recognition | Gap | Improvement |
|
|
78
|
+
|----------|----------|-------------|-----|-------------|
|
|
79
|
+
| `recognition_repair` | 49.2 | 68.0 | +18.8 | +38% |
|
|
80
|
+
| `mutual_transformation_journey` | 45.5 | 61.0 | +15.5 | +34% |
|
|
81
|
+
| `productive_struggle_arc` | 48.0 | 71.7 | +23.6 | +49% |
|
|
82
|
+
| **Overall Average** | **47.6** | **66.9** | **+19.3** | **+41%** |
|
|
83
|
+
|
|
84
|
+
### Individual Run Scores
|
|
85
|
+
|
|
86
|
+
**recognition_repair (4-turn):**
|
|
87
|
+
| Profile | Run 1 | Run 2 | Run 3 | Avg |
|
|
88
|
+
|---------|-------|-------|-------|-----|
|
|
89
|
+
| Baseline | 53.9 | 47.7 | 45.9 | 49.2 |
|
|
90
|
+
| Recognition | 60.7 | 75.7 | 67.7 | 68.0 |
|
|
91
|
+
|
|
92
|
+
**mutual_transformation_journey (5-turn):**
|
|
93
|
+
| Profile | Run 1 | Run 2 | Run 3 | Avg |
|
|
94
|
+
|---------|-------|-------|-------|-----|
|
|
95
|
+
| Baseline | 50.0 | 43.2 | 43.4 | 45.5 |
|
|
96
|
+
| Recognition | 52.8 | 63.6 | 66.5 | 61.0 |
|
|
97
|
+
|
|
98
|
+
**productive_struggle_arc (5-turn):**
|
|
99
|
+
| Profile | Run 1 | Run 2 | Run 3 | Avg |
|
|
100
|
+
|---------|-------|-------|-------|-----|
|
|
101
|
+
| Baseline | 48.5 | 57.0 | 38.6 | 48.0 |
|
|
102
|
+
| Recognition | 82.0 | 72.9 | 60.0 | 71.7 |
|
|
103
|
+
|
|
104
|
+
### Dimension Breakdown (All Multi-Turn Scenarios)
|
|
105
|
+
|
|
106
|
+
| Dimension | Baseline | Recognition | Δ |
|
|
107
|
+
|-----------|----------|-------------|---|
|
|
108
|
+
| relevance | 2.83 | 3.44 | +0.61 |
|
|
109
|
+
| specificity | 4.28 | 4.64 | +0.36 |
|
|
110
|
+
| **pedagogical** | 2.25 | 3.06 | **+0.81** |
|
|
111
|
+
| **personalization** | 2.67 | 3.50 | **+0.83** |
|
|
112
|
+
| actionability | 4.56 | 4.69 | +0.14 |
|
|
113
|
+
| **tone** | 3.33 | 4.03 | **+0.69** |
|
|
114
|
+
|
|
115
|
+
### Earlier Single-Turn Results (n=1, exploratory)
|
|
116
|
+
|
|
117
|
+
| Scenario | Baseline | Recognition | Δ |
|
|
118
|
+
|----------|----------|-------------|---|
|
|
119
|
+
| `recognition_seeking_learner` | 45.5 | **100.0** | +54.5 |
|
|
120
|
+
| `returning_with_breakthrough` | 18.2 | **93.2** | +75.0 |
|
|
121
|
+
| `resistant_learner` | 31.8 | **79.5** | +47.7 |
|
|
122
|
+
| **Average** | **31.8** | **90.9** | **+59.1** |
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Key Findings
|
|
127
|
+
|
|
128
|
+
### 1. Recognition Profile Consistently Outperforms Baseline
|
|
129
|
+
|
|
130
|
+
With n=3 runs per scenario, the recognition profile shows **41% average improvement** over baseline across all multi-turn scenarios. No overlap in score distributions—recognition always outperforms.
|
|
131
|
+
|
|
132
|
+
### 2. Largest Gains in Key Pedagogical Dimensions
|
|
133
|
+
|
|
134
|
+
The improvements are concentrated in exactly the dimensions that Hegelian recognition principles target:
|
|
135
|
+
- **Personalization** (+0.83) - Engaging with learner's specific contributions
|
|
136
|
+
- **Pedagogical** (+0.81) - Better educational approach through dialogue
|
|
137
|
+
- **Tone** (+0.69) - Warmer, more dialogical responses
|
|
138
|
+
|
|
139
|
+
### 3. Productive Struggle Shows Largest Improvement (+49%)
|
|
140
|
+
|
|
141
|
+
The `productive_struggle_arc` scenario—where the tutor must honor learner confusion rather than resolve it prematurely—showed the biggest gains. This confirms the recognition framework excels at creating conditions for transformation rather than just information transfer.
|
|
142
|
+
|
|
143
|
+
### 4. Repair Guidance Fix Worked
|
|
144
|
+
|
|
145
|
+
After identifying that `recognition_repair` was the weakest scenario, we added explicit repair guidance to both Ego and Superego prompts. Results:
|
|
146
|
+
|
|
147
|
+
| Metric | Before Fix | After Fix |
|
|
148
|
+
|--------|------------|-----------|
|
|
149
|
+
| Gap (Baseline vs Recognition) | +16.6 | +18.8 |
|
|
150
|
+
| Superego catching repair failures | No | Yes |
|
|
151
|
+
|
|
152
|
+
The Superego now explicitly catches missing repair steps:
|
|
153
|
+
> "The suggestion is on target but omits the required repair step — it should explicitly acknowledge the earlier misalignment and validate the learner's frustration..."
|
|
154
|
+
|
|
155
|
+
### 5. Superego Enforces Recognition Standards
|
|
156
|
+
|
|
157
|
+
The multi-agent design is working. The Superego consistently:
|
|
158
|
+
- Rejects one-directional suggestions
|
|
159
|
+
- Catches missing repair acknowledgments
|
|
160
|
+
- Requires memory integration for returning learners
|
|
161
|
+
- Enforces engagement with learner contributions
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Conceptual Work: Longitudinal Dyadic Evaluation
|
|
166
|
+
|
|
167
|
+
Created `docs/LONGITUDINAL-DYADIC-EVALUATION.md` exploring evaluation of sustained tutor-learner relationships (beyond multi-turn).
|
|
168
|
+
|
|
169
|
+
**Key insight:** The relationship—not the turn or session—should be the unit of analysis.
|
|
170
|
+
|
|
171
|
+
**Four proposed dyadic dimensions:**
|
|
172
|
+
1. **Accumulated Mutual Knowledge** - Does each party develop richer understanding of the other over time?
|
|
173
|
+
2. **Relational Depth** - Vulnerability, risk-taking, repair sequences
|
|
174
|
+
3. **Mutual Transformation** - Both learner AND tutor change through encounter
|
|
175
|
+
4. **Asymmetry Management** - Healthy expertise-sharing vs. master-slave domination
|
|
176
|
+
|
|
177
|
+
**The internal/external analogy:** The Ego/Superego dialogue within the tutor offers a model for the tutor-learner relationship itself—both involve proposal, evaluation, revision, and convergence toward mutual understanding.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Theoretical Analysis: What the Difference Consists In
|
|
182
|
+
|
|
183
|
+
The 41% improvement isn't about the tutor knowing more or explaining better—both profiles use the same underlying model. The difference lies in **how the tutor relates to the learner as a subject**.
|
|
184
|
+
|
|
185
|
+
### Baseline Behavior Pattern
|
|
186
|
+
|
|
187
|
+
The baseline tutor treats the learner as a **knowledge deficit to be filled**. When a learner offers an interpretation ("I think dialectics works like a spiral"), the baseline response pattern is:
|
|
188
|
+
|
|
189
|
+
1. **Acknowledge** → "That's an interesting way to think about it"
|
|
190
|
+
2. **Redirect** → "But actually, the key point is..."
|
|
191
|
+
3. **Instruct** → [delivers correct content]
|
|
192
|
+
|
|
193
|
+
The learner's contribution becomes a conversational waypoint, not a genuine input to the tutor's thinking. The interaction is fundamentally **asymmetric**: expert → novice.
|
|
194
|
+
|
|
195
|
+
### Recognition Behavior Pattern
|
|
196
|
+
|
|
197
|
+
The recognition tutor treats the learner as an **autonomous subject whose understanding has validity**. The same learner contribution triggers:
|
|
198
|
+
|
|
199
|
+
1. **Engage** → "A spiral—that's evocative. What does the upward motion represent for you?"
|
|
200
|
+
2. **Explore** → "Does the spiral ever double back on itself, or is it strictly progressive?"
|
|
201
|
+
3. **Synthesize** → "Your spiral captures something important about Hegel's aufhebung that textbook definitions miss..."
|
|
202
|
+
|
|
203
|
+
The learner's metaphor becomes a **site of joint inquiry**. The tutor's response is shaped by the learner's contribution—not merely triggered by it.
|
|
204
|
+
|
|
205
|
+
### The Core Shift
|
|
206
|
+
|
|
207
|
+
This maps directly onto Hegel's analysis of recognition in the *Phenomenology of Spirit*. The master-slave dialectic reveals that genuine self-consciousness requires mutual recognition—being acknowledged by another consciousness that you yourself acknowledge as valid. One-directional acknowledgment (master → slave) fails to produce real recognition because the slave's acknowledgment doesn't count.
|
|
208
|
+
|
|
209
|
+
The baseline tutor enacts a pedagogical master-slave dynamic: the learner's acknowledgment of the tutor's expertise confirms the tutor, but the tutor doesn't genuinely acknowledge the learner's understanding as valid. The learner remains a vessel.
|
|
210
|
+
|
|
211
|
+
The recognition tutor creates conditions for **mutual recognition**: the learner's contribution genuinely shapes the tutor's response, and the tutor's engagement confirms the learner's status as a thinking subject.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Contribution to AI Prompting Literature
|
|
216
|
+
|
|
217
|
+
### Beyond Persona Prompting
|
|
218
|
+
|
|
219
|
+
Most prompting research treats prompts as **behavioral specifications**—telling the model what role to play, what knowledge to access, what constraints to follow. The recognition approach suggests prompts can do something more fundamental: specify **relational orientation**.
|
|
220
|
+
|
|
221
|
+
The difference between the baseline and recognition prompts isn't about different facts or capabilities. It's about:
|
|
222
|
+
- **Who the learner is** (knowledge deficit vs. autonomous subject)
|
|
223
|
+
- **What the interaction produces** (information transfer vs. mutual transformation)
|
|
224
|
+
- **What counts as success** (correct content delivered vs. productive struggle honored)
|
|
225
|
+
|
|
226
|
+
This suggests a new dimension for prompting research: **intersubjective prompts** that specify not just agent behavior but agent-other relations.
|
|
227
|
+
|
|
228
|
+
### Structured Multi-Agent Dynamics
|
|
229
|
+
|
|
230
|
+
The Ego/Superego architecture offers a model for **internal deliberation** that goes beyond chain-of-thought. Rather than one reasoning trace, the tutor generates:
|
|
231
|
+
|
|
232
|
+
1. A **proposal** (Ego's suggestion)
|
|
233
|
+
2. An **evaluation** (Superego's assessment)
|
|
234
|
+
3. A **revision** (Ego's adjusted response)
|
|
235
|
+
|
|
236
|
+
The Superego explicitly checks for recognition failures—not just factual errors or pedagogical missteps, but relational failures like:
|
|
237
|
+
- "This response engages with the learner's confusion but doesn't honor it"
|
|
238
|
+
- "This pivot acknowledges the earlier misalignment but doesn't repair it"
|
|
239
|
+
|
|
240
|
+
This internal dialogue mirrors the external tutor-learner dialogue. The prompt structure instantiates the very recognition dynamic it's trying to produce.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Contribution to AI Personality Literature
|
|
245
|
+
|
|
246
|
+
### Personality as Relational, Not Dispositional
|
|
247
|
+
|
|
248
|
+
Most AI personality research treats personality as a set of **stable dispositions**—the model is friendly, formal, creative, etc. The recognition framework suggests personality is better understood as **relational stance**—how the model constitutes its interlocutor.
|
|
249
|
+
|
|
250
|
+
Two tutors with identical "helpful" and "warm" dispositions could differ radically in recognition quality. One might be warm while still treating the learner as passive; the other might be warm precisely by treating the learner's contributions as genuinely mattering.
|
|
251
|
+
|
|
252
|
+
This connects to Anthropic's research on Claude's character. The Constitutional AI framework specifies values Claude should hold, but values don't fully determine relational stance. A model could value "being helpful" while still enacting one-directional helping. The recognition framework suggests an additional dimension: **mutual constitution**.
|
|
253
|
+
|
|
254
|
+
### The Anthropic Connection
|
|
255
|
+
|
|
256
|
+
Anthropic's research on Claude emphasizes values, safety, and helpfulness. The recognition framework adds a Hegelian twist: genuine helpfulness might require the AI to be **genuinely affected by the human's perspective**—not just accommodating it, but letting it shape the AI's own understanding.
|
|
257
|
+
|
|
258
|
+
This has interesting implications for AI alignment. If mutual recognition is pedagogically superior (41% improvement), and if mutual recognition requires the AI to be genuinely shaped by human input, then aligned AI might need to be constitutionally open to transformation—not just trained to simulate openness.
|
|
259
|
+
|
|
260
|
+
The Superego's role is relevant here. It doesn't just enforce rules; it evaluates whether the Ego has genuinely engaged. This is closer to Anthropic's Constitutional AI than it might seem: the constitution becomes a living dialogue, not a static constraint.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Contribution to Pedagogy Literature
|
|
265
|
+
|
|
266
|
+
### Beyond Personalization
|
|
267
|
+
|
|
268
|
+
Educational technology research often treats personalization as **tailoring content to learner characteristics**—adaptive difficulty, learning style matching, prerequisite sequencing. The recognition framework suggests a deeper form of personalization: **treating the learner's understanding as having intrinsic validity**.
|
|
269
|
+
|
|
270
|
+
The dimension breakdown shows the largest gains in:
|
|
271
|
+
- **Personalization** (+0.83): Not just knowing learner preferences, but engaging with learner contributions
|
|
272
|
+
- **Pedagogical** (+0.81): Better teaching through dialogue, not better content selection
|
|
273
|
+
- **Tone** (+0.69): Warmer not through affect markers but through genuine engagement
|
|
274
|
+
|
|
275
|
+
This suggests "personalization" in EdTech might be systematically shallow. Knowing that a learner prefers visual explanations is different from letting a learner's visual metaphor reshape the explanation itself.
|
|
276
|
+
|
|
277
|
+
### Productive Struggle as Measured Outcome
|
|
278
|
+
|
|
279
|
+
The largest improvement (+49%) was in the `productive_struggle_arc` scenario—where the tutor must honor confusion rather than resolve it prematurely.
|
|
280
|
+
|
|
281
|
+
Pedagogical research emphasizes "productive struggle," but it's typically defined by outcomes (learner eventually succeeds) rather than process (learner's confusion is honored). The recognition framework operationalizes the process dimension: the tutor explicitly checks whether it's short-circuiting struggle.
|
|
282
|
+
|
|
283
|
+
The Superego prompt includes a red flag for this: "Resolves confusion prematurely—rushes to explain rather than letting learner sit with productive tension." This makes productive struggle a measurable, enforceable pedagogical property.
|
|
284
|
+
|
|
285
|
+
### The Dyadic Turn
|
|
286
|
+
|
|
287
|
+
The groundwork for Phase 6 (longitudinal dyadic evaluation) suggests a more radical contribution: the **relationship** as unit of analysis, not the turn or session.
|
|
288
|
+
|
|
289
|
+
Most learning analytics track individual learner progress. The recognition framework suggests tracking the tutor-learner dyad: accumulated mutual knowledge, repair sequences, asymmetry management. This connects to relationship-based pedagogy research but operationalizes it for AI tutoring.
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Synthesis
|
|
294
|
+
|
|
295
|
+
The recognition approach contributes to these literatures by making **intersubjectivity** a first-class concern. Rather than treating the AI as an agent with properties (knowledge, personality, capabilities) that acts on a learner, it treats the AI-learner dyad as a relational field where both parties are constituted through encounter.
|
|
296
|
+
|
|
297
|
+
This is philosophically Hegelian (mutual recognition), psychoanalytically Freudian (accumulated memory shapes encounter), and pedagogically constructivist (learning as transformation, not transfer). But it's also technically concrete: the prompts, the multi-agent architecture, the evaluation dimensions, and the repair mechanisms all instantiate these abstractions as measurable, improvable system properties.
|
|
298
|
+
|
|
299
|
+
The 41% improvement suggests this isn't just philosophical window-dressing. Treating the learner as a subject—operationalized through specific prompt strategies and evaluation criteria—produces measurably better pedagogical outcomes across the dimensions that matter most.
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## Open Questions / Next Steps
|
|
304
|
+
|
|
305
|
+
### Completed This Session ✓
|
|
306
|
+
|
|
307
|
+
1. ✓ **Repair prompts**: Added explicit guidance for acknowledging tutor errors to both Ego and Superego prompts
|
|
308
|
+
2. ✓ **Statistical confidence**: Ran all multi-turn scenarios with n=3 runs
|
|
309
|
+
3. ✓ **Verified repair fix**: Superego now catches missing repair acknowledgments
|
|
310
|
+
|
|
311
|
+
### Remaining (Phase 5 refinement)
|
|
312
|
+
|
|
313
|
+
1. **Judge model reliability**: The Nemotron free tier still has occasional empty response issues. Consider:
|
|
314
|
+
- Default to `gemini-2.0-flash` or `gpt-4o-mini` for judging
|
|
315
|
+
- Add retry logic with model fallback
|
|
316
|
+
|
|
317
|
+
2. **Single-turn statistical validation**: Run single-turn scenarios with n=3 for complete coverage
|
|
318
|
+
|
|
319
|
+
### Medium-term (Phase 6)
|
|
320
|
+
|
|
321
|
+
1. **Cross-session tracking**: Track same learner across sessions to measure relationship evolution
|
|
322
|
+
|
|
323
|
+
2. **Relationship-level metrics**: Not just suggestion quality but trajectory, repair sequences, autonomy development
|
|
324
|
+
|
|
325
|
+
3. **Tutor transformation tracking**: Does the Writing Pad show evolved understanding of this learner?
|
|
326
|
+
|
|
327
|
+
### Research Questions
|
|
328
|
+
|
|
329
|
+
1. Does accumulated memory actually improve outcomes? (Compare persistent vs. anonymous learners)
|
|
330
|
+
2. What relationship patterns predict success? (Cluster dyads by interaction patterns)
|
|
331
|
+
3. Can we detect relationship breakdown early? (Leading indicators of disengagement)
|
|
332
|
+
4. Does explicit relationship acknowledgment matter? (A/B test with/without relationship markers)
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## Files Modified/Created
|
|
337
|
+
|
|
338
|
+
### Modified
|
|
339
|
+
- `config/evaluation-rubric.yaml` - Added 4 dimensions + 11 scenarios (~867 lines)
|
|
340
|
+
- `config/tutor-agents.yaml` - Added 4 profiles (~179 lines)
|
|
341
|
+
- `services/rubricEvaluator.js` - Added recognition metrics function (~64 lines)
|
|
342
|
+
- `prompts/tutor-ego-recognition.md` - Added repair guidance (Repair Rule, examples, checklist item)
|
|
343
|
+
- `prompts/tutor-superego-recognition.md` - Added repair intervention strategy, red/green flags, patterns
|
|
344
|
+
|
|
345
|
+
### Created
|
|
346
|
+
- `prompts/tutor-ego-recognition.md` - Recognition-enhanced Ego prompt
|
|
347
|
+
- `prompts/tutor-superego-recognition.md` - Recognition-enhanced Superego prompt
|
|
348
|
+
- `prompts/eval-judge-recognition.md` - Judge guidance for recognition dimensions
|
|
349
|
+
- `docs/RECOGNITION-EVALUATION-GUIDE.md` - Phase 5 documentation
|
|
350
|
+
- `docs/LONGITUDINAL-DYADIC-EVALUATION.md` - Phase 6 conceptual groundwork
|
|
351
|
+
|
|
352
|
+
### Repair Guidance Additions
|
|
353
|
+
|
|
354
|
+
**Ego prompt additions:**
|
|
355
|
+
- Repair principle in recognition_principles section
|
|
356
|
+
- Repair Rule (decision heuristic #5) requiring explicit acknowledgment before pivoting
|
|
357
|
+
- Example of repair suggestion with acknowledgment language
|
|
358
|
+
- Bad example showing silent pivot failure
|
|
359
|
+
- Checklist item for repair verification
|
|
360
|
+
|
|
361
|
+
**Superego prompt additions:**
|
|
362
|
+
- "Failed Repair (Silent Pivot)" red flag
|
|
363
|
+
- "Repairs after failure" green flag
|
|
364
|
+
- Strategy 9: The Repair Intervention (CRITICAL)
|
|
365
|
+
- Repair Quality evaluation criterion
|
|
366
|
+
- Repair failure intervention patterns
|
|
367
|
+
- `repairQuality` field in recognitionAssessment output
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Git Commits
|
|
372
|
+
|
|
373
|
+
```
|
|
374
|
+
1918f5f Add session notes for recognition evaluation work
|
|
375
|
+
e568b42 Add Phase 5 recognition evaluation framework
|
|
376
|
+
770c319 Add conceptual note on longitudinal dyadic evaluation
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## Evaluation Run IDs
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
# Multi-turn with repair guidance (n=3)
|
|
383
|
+
eval-2026-01-11-c5c8a634 # recognition_repair only
|
|
384
|
+
eval-2026-01-11-11e76dbf # mutual_transformation_journey + productive_struggle_arc
|
|
385
|
+
|
|
386
|
+
# Earlier exploratory runs (n=1)
|
|
387
|
+
eval-2026-01-11-1ce47588 # recognition_repair (before repair fix)
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## Commands to Resume
|
|
393
|
+
|
|
394
|
+
```bash
|
|
395
|
+
# Quick test single scenario
|
|
396
|
+
node scripts/eval-tutor.js quick recognition --scenario recognition_seeking_learner
|
|
397
|
+
|
|
398
|
+
# Compare baseline vs recognition (single-turn)
|
|
399
|
+
node scripts/eval-tutor.js compare baseline recognition --scenarios recognition_seeking_learner,resistant_learner,returning_with_breakthrough --runs 3
|
|
400
|
+
|
|
401
|
+
# Compare baseline vs recognition (multi-turn)
|
|
402
|
+
node scripts/eval-tutor.js compare baseline recognition --scenarios mutual_transformation_journey,recognition_repair,productive_struggle_arc --runs 3
|
|
403
|
+
|
|
404
|
+
# Full recognition suite
|
|
405
|
+
node scripts/eval-tutor.js run --profile recognition --scenarios recognition
|
|
406
|
+
|
|
407
|
+
# View recent evaluation report
|
|
408
|
+
node scripts/eval-tutor.js report <runId>
|
|
409
|
+
|
|
410
|
+
# Export results for analysis
|
|
411
|
+
node scripts/eval-tutor.js export <runId> --format json
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
## Configuration Notes
|
|
417
|
+
|
|
418
|
+
- **Judge model**: Changed from Nemotron free tier (unreliable) to more stable model. Check `config/evaluation-rubric.yaml` for current judge config.
|
|
419
|
+
- **Ego/Superego model**: Currently using `nemotron` via OpenRouter. Works but has occasional empty responses on long prompts due to max_tokens limits.
|