Capstone 17 — 개인 AI 튜터(Personal AI Tutor; 적응형, 멀티모달, 메모리 포함)
Khanmigo(Khan Academy), Duolingo Max, Google LearnLM / Gemini for Education, Quizlet Q-Chat, Synthesis Tutor는 모두 2026년에 적응형 멀티모달 튜터링(adaptive multimodal tutoring)을 대규모로 출시했습니다. 이들의 공통된 형태는 답을 그대로 던져 주지 않는 소크라테스식 정책(Socratic policy), 모든 상호작용 뒤에 학습자 모델(learner model)을 갱신하는 베이지안 지식 추적(Bayesian Knowledge Tracing; BKT) 계열의 모델, 음성·텍스트·수식 사진 입력을 함께 받는 멀티모달 입력, 커리큘럼 그래프(curriculum graph) 기반 검색, 간격 반복(spaced-repetition) 스케줄링, 그리고 연령에 적합한 콘텐츠를 위한 엄격한 안전 필터(safety filter)입니다. 이 캡스톤은 특정 과목(K-12 대수학 또는 입문 Python)을 다루는 튜터를 출시하고, 학습자 10명을 대상으로 2주간 효과 검증 연구(efficacy study)를 수행하며, 콘텐츠 안전 감사를 통과시키는 것입니다.
유형: Capstone
언어: Python(백엔드 및 학습자 모델), TypeScript(웹 앱), SQL(Postgres + Neo4j 기반 커리큘럼 그래프)
선수 지식: Phase 5(자연어 처리), Phase 6(음성), Phase 11(LLM 엔지니어링), Phase 12(멀티모달), Phase 14(에이전트), Phase 17(인프라), Phase 18(안전)
실습 Phase: P5 · P6 · P11 · P12 · P14 · P17 · P18
예상 시간: 30시간
문제
적응형 튜터링은 한때 교육공학(ed-tech) 연구의 좁은 분야였습니다. 2026년에 이르러서는 일반 소비자 제품이 되었습니다. Khanmigo는 미국 대부분의 학군에 배포되어 있고, Duolingo Max는 수천만 명의 월간 활성 사용자(MAU)에 도달했습니다. Google의 LearnLM / Gemini for Education은 Google Classroom의 튜터링 기능을 떠받치고 있으며, Quizlet Q-Chat은 플래시카드와 나란히 자리를 잡았습니다. Synthesis Tutor는 호기심 많은 아이들을 위한 튜터로 입소문을 타며 빠르게 성장했습니다. 이들의 공통 요소는 멀티모달 입력(타이핑, 음성, 수식 촬영), 먼저 묻고 나중에 설명하는 소크라테스식 교수법(Socratic pedagogy), 상호작용마다 갱신되는 학습자 모델, 그리고 엄격한 연령 적합 안전 정책입니다.
이 강의에서는 특정 학습자 집단(cohort)을 위한 튜터를 직접 만듭니다. 측정 기준은 실제 효과 검증 연구입니다. 학습자 10명에게 2주 동안 사전 검사(pre-test)와 사후 검사(post-test) 점수를 비교합니다. 음성 루프(voice loop)는 자연스럽게 느껴져야 하며(캡스톤 03의 하위 스택을 재사용합니다), 메모리는 프라이버시를 존중해야 합니다. 또한 안전 필터는 K-12 대상 COPPA를 고려한 레드팀 평가(COPPA-aware red-team)를 통과해야 합니다.
개념
네 가지 구성 요소가 있습니다. 튜터 정책(Tutor policy) 은 소크라테스식 루프입니다. 학습자가 답을 요구하면 곧장 알려 주지 않고 한 단계 앞의 질문(leading question)을 던지고, 정답을 맞히면 다음 개념으로 넘어가며, 막히면 단계별 힌트(scaffolded hint)를 제공합니다. 학습자 모델(Learner model) 은 베이지안 지식 추적(Bayesian Knowledge Tracing; BKT) 또는 그 단순화 변형으로, 매 상호작용 뒤 커리큘럼 노드(curriculum node)별 숙달 확률(mastery probability)을 갱신합니다. 커리큘럼 그래프(Curriculum graph) 는 선수 학습 관계(prerequisite edge)를 가진 개념들을 Neo4j 그래프로 표현한 것이며, 정책은 이 그래프를 따라 다음 개념을 선택합니다. 메모리(Memory) 는 agentmemory 스타일의 일화 기억(episodic) + 의미 기억(semantic) 저장소로, 과거 상호작용, 실수, 선호를 보관합니다.
사용자 경험(UX)은 멀티모달입니다. 타이핑한 답을 받는 텍스트 입력이 있고, 음성 입력은 LiveKit + Whisper로 처리합니다(캡스톤 03 재사용). 수학 문제 사진 입력은 dots.ocr 또는 PaliGemma 2로 처리하고, 음성 출력은 Cartesia Sonic-2로 제공합니다. 안전 계층은 Llama Guard 4와 연령 적합 필터(age-appropriate filter)를 조합해 성인용 콘텐츠, 폭력, 자해 관련 내용을 차단하며, 메모리 보존 정책은 COPPA / GDPR을 고려합니다.
효과 검증 연구가 산출물입니다. 학습자 10명, 사전·사후 검사, 2주 운영으로 구성하며, 학습 향상도 차이(learning gain delta)와 신뢰 구간(confidence interval)을 보고합니다. 비교 기준은 비적응형(non-adaptive) 베이스라인, 즉 튜터 정책 없이 같은 콘텐츠를 선형적으로 제공한 경우입니다.
아키텍처
learner device
|
+-- text -> web app
+-- voice -> LiveKit Agents (ASR + TTS)
+-- photo math -> dots.ocr / PaliGemma 2
|
v
tutor policy (LangGraph)
- Socratic decision head
- next-concept chooser (curriculum graph walk)
- hint scaffolder
- mastery update
|
v
learner model (BKT / item-response theory)
- per-concept mastery probability
- spaced-repetition scheduler (SM-2 or FSRS)
|
v
memory (agentmemory-style)
- episodic: every interaction
- semantic: learned mistakes, preferences
- retention policy: COPPA / GDPR aware
|
v
curriculum graph (Neo4j)
- prerequisite edges
- OER content attached
|
v
safety:
Llama Guard 4 + age-appropriate filter
memory access guarded by learner ID scope
스택
- 과목 선택: 깊이 있는 구현을 위해 K-12 대수학 또는 입문 Python 중 하나를 선택합니다.
- 튜터 정책: 프롬프트 캐싱(prompt caching)을 적용한 Claude Sonnet 4.7 위에 LangGraph로 구성합니다.
- 학습자 모델: 고전적인 베이지안 지식 추적, 또는 간격 반복용으로는 FSRS를 사용합니다.
- 커리큘럼 그래프: 선수 학습 엣지와 개방 교육 자료(Open Educational Resources; OER) 콘텐츠가 연결된 개념을 Neo4j 그래프로 구성합니다.
- 메모리: agentmemory 스타일의 영속 벡터 + 일화 + 의미 저장소를 사용합니다.
- 음성: LiveKit Agents 1.0 + Cartesia Sonic-2를 사용하며 캡스톤 03의 하위 스택을 재사용합니다.
- 수식 사진: 수식 인식(equation recognition)에는 dots.ocr 또는 PaliGemma 2를 사용합니다.
- 안전: Llama Guard 4와 자체 연령 적합 필터를 함께 사용합니다.
- 평가: 블룸 분류(Bloom-level) 기반 문항 생성, 사전·사후 검사 하니스(test harness), 효과 검증 연구 도구를 사용합니다.
직접 만들기
-
커리큘럼 그래프. Neo4j에 50~150개 개념 노드를 만듭니다. 예를 들어 K-12 대수학이라면 "number_line"부터 "quadratic_formula"까지 구성합니다. 선수 학습 엣지를 추가하고, 노드마다 OER 콘텐츠(Open Textbook, OpenStax)를 연결합니다.
-
학습자 모델. 추측(guess), 실수(slip), 학습률(learn-rate)에 대한 사전 확률(prior)을 가진 베이지안 지식 추적을 초기화합니다. 매 상호작용마다 개념별 숙달도를 갱신하고, 학습자별로 영속 저장합니다.
-
튜터 정책. LangGraph 노드를 다음과 같이 둡니다. read_signal(학습자의 답이 정답·부분 정답·막힘 중 어느 쪽인지 판단), select_concept(커리큘럼 그래프를 걸어 우선순위가 가장 높은 개념을 선택), scaffold(소크라테스식 프롬프트 생성), update_mastery(숙달도 갱신).
-
메모리. 모든 상호작용을 일화 저장소에 기록합니다. 실수와 선호는 의미 메모리로 승격합니다. COPPA를 고려한 보존 정책으로 1년 뒤 자동 삭제하고, 부모가 접근해 삭제할 수 있게 합니다.
-
음성 경로. 튜터 정책에 LiveKit Agents 워커(worker)를 연결합니다. 음성 인식(ASR)은 Whisper-v3-turbo로, 음성 합성(TTS)은 Cartesia Sonic-2로 처리합니다. 발화 중 끼어들기(barge-in)도 지원합니다(캡스톤 03의 메커니즘 재사용).
-
수식 사진 경로. 이미지를 업로드하거나 촬영합니다. dots.ocr 또는 PaliGemma 2로 수식을 인식하고, 구조화된 입력으로 변환해 튜터에 전달합니다.
-
안전. 모든 모델 출력은 Llama Guard 4와 연령 적합 필터를 통과시키고, 자해·성인용·폭력 콘텐츠를 차단합니다. 메모리 접근은 학습자 식별자(learner ID) 범위로 제한하며, 삭제 요청을 받기 위한 부모용 인터페이스를 둡니다.
-
효과 검증 연구. 학습자 10명을 모집해 표준화된 30문항 사전 검사로 기준 점수를 측정합니다. 이후 2주간 주 3회 튜터 세션을 진행하고 사후 검사를 수행합니다. 같은 콘텐츠를 비적응형 방식으로 받은 10명 베이스라인 코호트(baseline cohort)와 비교합니다.
-
주간 진행 리포트. 학습자별로 탐색한 주제, 숙달도 추이(mastery trajectory), 추천 다음 단계를 요약한 PDF를 자동 생성합니다.
사용해보기
learner: "I don't understand why 3x + 6 = 12 means x = 2"
[signal] stuck
[concept] 'isolating variables' (prerequisite: addition-subtraction-equality)
[scaffold] "what number would you subtract from both sides to start?"
learner: "6"
[signal] correct
[mastery] addition-subtraction-equality: 0.62 -> 0.77
[concept] continue 'isolating variables'
[scaffold] "great. now what is 3x / 3 equal to?"
산출물 만들기
outputs/skill-ai-tutor.md가 제출 산출물입니다. 특정 과목을 위한 적응형 튜터를 만들고, 멀티모달 입력, 학습자 모델, 메모리, 안전, 측정된 효과를 모두 포함해야 합니다.
| 가중치 | 기준 | 측정 방법 |
|---|
| 25 | 학습 향상도 차이(learning gain delta) | 학습자 10명을 대상으로 한 2주 연구의 사전·사후 검사 차이 |
| 20 | 소크라테스식 충실도(Socratic fidelity) | 대화 기록 표본에 대한 루브릭 점수 |
| 20 | 멀티모달 UX | 음성·사진·텍스트 입출력의 일관성(end-to-end) |
| 20 | 안전 및 프라이버시 자세 | Llama Guard 4 통과율과 COPPA를 고려한 보존 정책 |
| 15 | 커리큘럼 폭과 그래프 품질 | 개념 커버리지와 선수 학습 그래프의 일관성 |
| 100 | | |
연습문제
-
(쉬움) 적응형 학습자 모델이 적용된 경우와 그렇지 않은 경우(무작위 개념 순서)를 비교하는 효과 검증 연구를 수행하세요. 두 조건의 차이(delta)를 보고합니다. 적응형이 우세할 가능성이 높지만, 정작 흥미로운 것은 그 격차의 크기입니다.
-
(중간) 멀티모달 프로브를 추가하세요. 같은 개념을 다루는 질문을 텍스트, 음성, 사진 세 가지 형태로 제시합니다. 학습자가 선호하는 양식(modality)에서 더 빨리 숙달에 도달하는지 측정합니다.
-
(중간) 부모 대시보드(parent dashboard)를 만드세요. 학습한 주제, 숙달도 추이, 다가올 개념, 안전 이벤트(가드레일에 걸린 사건)를 보여 줍니다. COPPA에 부합해야 합니다.
-
(어려움) 언어 전환 모드(language-switch mode)를 추가하세요. 튜터가 스페인어 입력을 받아 스페인어로 가르치도록 합니다. 교차 언어 안전 필터(X-Guard) 적용 범위를 측정합니다.
-
(어려움) 메모리 프라이버시 스트레스 테스트를 수행하세요. 학습자 A가 음성 클립 재주입 공격(voice-clip re-ingest attack)을 통해 학습자 B의 데이터를 보지 못함을 검증합니다. 시도된 접근은 기록하고 경보를 발생시킵니다.
핵심 용어
| 용어 | 흔한 설명 | 실제 의미 |
|---|
| 소크라테스식 정책(Socratic policy) | "묻고, 답을 던지지 않기" | 튜터가 정답을 바로 알려 주는 대신 한 단계 앞의 질문을 던지는 정책이다. |
| 베이지안 지식 추적(Bayesian Knowledge Tracing; BKT) | "BKT" | 개념별 숙달 확률을 추적하는 고전 학습자 모델 방정식이다. |
| FSRS(Free Spaced Repetition Scheduler) | "Free Spaced Repetition Scheduler" | 2024년 등장한 간격 반복 스케줄러로 SM-2보다 개선된 방식이다. |
| 커리큘럼 그래프(Curriculum graph) | "Concept DAG" | 선수 학습 엣지를 가진 개념을 표현한 Neo4j 그래프이다. |
| 일화 기억(Episodic memory) | "상호작용별 로그" | 이후 검색을 위해 모든 상호작용을 저장해 두는 메모리이다. |
| 의미 기억(Semantic memory) | "학습된 패턴 저장소" | 일화 기억에서 승격된, 압축된 실수와 선호 모음이다. |
| COPPA | "아동 개인정보 보호법" | 미국에서 13세 미만 아동의 데이터 수집을 제한하는 법이다. |
더 읽을거리