ai

[MAICE 개발기 1편] 단순 정답기가 아닌, '가르치는 AI' 만들기 (Project Overview)

#agent

1. 시작하며: 질문의 문제

고등학교 수학 교실에서 학생이 AI에게 질문을 던질 때, 그 질문 자체가 얼마나 유용한 답변을 받을 수 있는지를 결정합니다.

예비 연구(N=385)에서 실제로 측정해본 결과, 학생 질문의 72.3%가 학습 맥락(현재 진도, 구체적 어려움 등)을 포함하지 않고 있었습니다. 그리고 질문의 품질과 답변의 품질 사이에 r=0.691의 양의 상관관계가 나타났습니다.

즉, 질문이 불분명하면 답변도 불분명해집니다. “즉시 답변”(Freepass 모드)만 제공하면 학생이 질문을 다시 생각할 기회가 생기지 않습니다.

MAICE(Mathematics AI Chatbot Education) 프로젝트는 이 문제에서 출발했습니다. Bloom’s TaxonomyDewey’s Reflective Thinking을 기반으로, 학생의 질문이 불분명할 때 바로 답을 주지 않고 학생이 스스로 질문을 구성할 수 있도록 유도하는 시스템을 만들었습니다.


2. 핵심 철학: Bloom과 Dewey의 만남

우리는 교육학의 거장들의 이론을 실제 AI 아키텍처로 구현했습니다.

Bloom’s Taxonomy (지식 분류)

AI는 학생의 질문을 4가지 지식 차원으로 분류합니다. 가장 낮은 단계인 K1 (Factual)은 “등비수열 합 공식 뭐야?”와 같은 단순 사실과 공식에 대한 질문입니다. 그 위로 K2 (Conceptual)은 “왜 공비가 1이면 안 돼?”처럼 개념과 원리를 이해하려는 질문이고, K3 (Procedural)은 “이 문제 풀이 과정 보여줘”와 같이 구체적인 절차와 풀이를 요청하는 단계입니다. 가장 높은 단계인 K4 (Metacognitive)는 “내가 푼 방식이 맞나?”처럼 자신의 사고 과정을 돌아보는 메타인지적 질문입니다.

Dewey’s Reflective Thinking (반성적 사고)

질문이 모호할 때, 우리는 듀이의 ‘반성적 사고’ 5단계 중 2단계(문제 정의)를 강제로 수행하게 합니다. AI가 바로 답을 주는 대신, “정확히 무엇을 알고 싶나요?”라고 역질문(Clarification)을 던져 학생이 스스로 문제를 정의하게 만듭니다.


3. 전체 아키텍처 (High-Level Architecture)

MAICE는 하나의 거대한 LLM이 모든 것을 처리하지 않습니다. 전문가 에이전트(Expert Agents)들이 협업하는 MSA(Microservices Architecture) 구조를 채택했습니다.

System Overview

graph TD
    Client[SvelteKit Frontend] -->|WS/SSE| Gateway[FastAPI Backend]
    Gateway -->|Redis Streams| Classifier[Question Classifier]
    Classifier -->|Pub/Sub| Improver[Question Improver]
    Classifier -->|Pub/Sub| Answer[Answer Generator]
    Answer -->|Stream| Gateway
    Answer -->|Pub/Sub| Observer[Observer Agent]
    Observer -->|Analysis| DB[(PostgreSQL)]

프론트엔드는 SvelteKit과 MathLive를 조합하여 수식 입력에 최적화된 사용자 경험을 제공합니다. 백엔드는 FastAPI로 구축된 비동기 서버로, Redis Streams를 활용하여 에이전트들 사이의 신뢰성 있는 통신을 담당합니다. 실제로 학생과 대화하는 부분은 각자의 역할에 특화된 5개의 독립 에이전트가 협업하여 처리합니다.


4. MAICE를 구성하는 에이전트들

본 연구에서 실제로 구현한 에이전트는 다음 5개입니다.

  1. QuestionClassifierAgent (QC): 학생의 질문을 분석하고 Bloom의 분류법(K1-K4)에 따라 분류합니다. 질문이 불분명하면 ‘Needs_Clarification’로 판단하여 다음 단계로 전달합니다.
  2. QuestionImprovementAgent (QI): 듀이의 명료화 프로세스를 담당합니다. QC에서 ‘Needs_Clarification’이 온 질문에 대해 역질문을 생성하여 학생이 질문을 다시 구성할 수 있도록 합니다.
  3. AnswerGeneratorAgent (AG): 분류된 K1-K4 유형에 맞게 답변 구조를 달라합니다. K1은 간결하게, K2는 개념 간의 관계를 중심으로, K3는 단계별로 풀어냅니다.
  4. FrepassTriggerAgent (FT): Agent 모드와 Freepass 모드의 전환을 담당합니다. 학생이 명료화 단계를 건너뛰고 즉시 답변을 요구할 때 이를 처리합니다.
  5. ObserverAgent (LO): 대화 전체를 관찰하고, 세션이 끝나면 학습 요약 리포트를 생성합니다.

별도로 CurriculumTermAgent(교육과정 용어 검증)는 본 연구에서 설계 단계까지만 진행된 부분입니다. 자세한 내용은 시리즈 마지막 편에서 다룹니다.


5. A/B 테스트 결과 요약

고등학교 2학년 학생 58명(Agent 모드 28명, Freepass 모드 30명)을 대상으로 3주간의 A/B 테스트를 진행했습니다. 단원은 수학적 귀납법이었습니다.

5.1 학습지원 영역에서의 차이

LLM 평가(N=284세션)와 교사 평가(N=100세션) 모두에서, 학습지원(C2) 영역에서 Agent 모드가 통계적으로 유의한 차이를 보였습니다.

LLM 평가에서는 Agent 모드가 +0.28점 차이로 우세했습니다 (p=0.004, d=0.353). 교사 평가에서도 마찬가지로 Agent 모드가 +1.28점 차이를 보이며 통계적으로 유의한 우세를 보였습니다 (p=0.017, d=0.488).

특히 하위권(Q1) 학생들에서 효과가 두드러졌습니다. 교사 평가 기준으로 Q1 학생들의 학습지원 점수는 Agent 모드에서 +6.32점 차이 (p=0.013, d=0.992)를 보였습니다.

5.2 효과가 나타나지 않은 부분

이것이 전부는 아닙니다. 학습맥락(A3) 영역에서는 오히려 Freepass 모드가 우세했습니다 (d=-0.425, p=0.001). 명료화 과정이 학생이 제공하는 학습 맥락 정보를 축소시키는 측면이 있었는 것입니다.

또한 중상위권(Q2~Q4) 학생들에서는 양 모드 간 유의한 차이가 나타나지 않았습니다.

5.3 평가 신뢰성

LLM 평가와 교사 평가 간의 상관관계는 r=0.754로, 자동 평가가 참고로 활용 가능한 수준임을 확인할 수 있었습니다. 다만 LLM 평가는 교사 평가보다 평균 +5.46점 높게 평가하는 경향이 있었으므로, 절대값으로 사용하는 것은 적합하지 않습니다.

5.4 학생 피드백

“처음에는 ‘AI한테 물어보면 되겠지’라고 생각했는데, 명료화 질문을 받다 보니 내가 정확히 뭘 모르는지 몰랐다는 걸 깨달았어요. 질문을 구체화하는 과정에서 이미 반은 이해가 되더라고요.”

  • 학생 A

“일반 ChatGPT는 그냥 답만 주잖아요. 근데 MAICE는 ‘너 이거 이해했어?’, ‘왜 그렇게 생각해?’ 라고 물어봐요.”

  • 학생 F

6. 마치며

본 연구는 교육학적 이론(Bloom, Dewey)을 실제 시스템으로 구현하고, A/B 테스트로 효과를 측정한 것입니다. 특정 영역에서 유의한 차이가 나타나었지만, 다른 영역에서는 그렇지 않었습니다. 이 차이의 원인과 시스템을 더 발전시키는 내용은 이후 편에서 다룹니다.

이어지는 시리즈 포스팅에서는 각 분야(Backend, Frontend, QA, DevOps)에서 이 시스템을 어떻게 구현했는지 상세히 다룹니다.


💬 댓글

이 글에 대한 의견을 남겨주세요