Files
Study/skills/self-study-agent/feedback/self-testing.md
T
Hana 6e21501331 Add self-study-agent skill with feedback loop
- SKILL.md: Main skill definition with 20-iteration feedback loop
- config.yaml: Pipeline parameters (loop, sources, questions, adaptation)
- pipeline/: 5-step learning pipeline (topic selection → source discovery → extraction → synthesis → report)
- feedback/: 4 feedback mechanisms (self-testing, spaced repetition, interleaving, adaptation)
- Learning science principles: active recall, spaced repetition, desirable difficulty, interleaving, delayed feedback
2026-06-12 18:39:51 +09:00

4.1 KiB

F1: 자기 평가 (Self-Testing)

개요

메모리에 있는 지식으로 문제를 생성하고, 메모리에서만 답변하여 테스트하는 루프입니다.

루프 구조

최대 20회 반복:
  1. 문제 생성
  2. 답변 시도 (메모리만 사용)
  3. 피드백 생성 (에이전트 자체)
  4. 메모리 업데이트
  5. 적응 (난이도/유형 조절)

종료 조건:
  - 정답률 95% 이상
  - 또는 20회 완료

Step 1: 문제 생성

문제 유형과 비중

유형 비중 설명 예시
직접 회상 40% 정의, 개념, 사실 묻기 "Rust의 Ownership이란?"
적용 질문 30% 실제 상황에서의 활용 "이 상황에서 Ownership을 어떻게 사용?"
변형 질문 20% 같은 내용 다른 표현 (암기 방지) "Ownership의 장단점은?"
연결 질문 10% 개념 간 관계 묻기 "Ownership과 Borrowing의 관계는?"

난이도 분포

난이도 비중 기준
쉬움 30% 단순 회상, 정의, 사실
보통 40% 적용, 분석
어려움 30% 종합, 평가, 창의적 사고

문제 생성 규칙

  1. 메모리에서 주제 관련 지식 추출
  2. 각 개념/팩트에 대해 문제 생성
  3. 유형별 비중 준수
  4. 난이도별 비중 준수
  5. 이전 오답 유형 고려 (약한 유형 비중 증가)

문제 생성 프롬프트

메모리에 있는 "{topic}" 관련 지식으로 문제를 생성하십시오.

문제 유형: {type} (직접 회상/적용/변형/연결)
난이도: {difficulty} (쉬움/보통/어려움)

규칙:
- 메모리에서만 답변할 수 있어야 함
- 명확하고 구체적인 문제
- 부분 정답 가능하도록 설계
- 관련 개념과 연결된 문제 선호

문제:

Step 2: 답변 시도

규칙

  1. 메모리에서만 정보 꺼냄 — 외부 소스 접근 금지
  2. 생각하는 과정 표시 — 어떤 지식을 기반으로 답변하는지
  3. 확신도 표시 — 0-100% 확신도

답변 형식

{
  "question_id": "q_001",
  "user_answer": "사용자의 답변",
  "confidence": 85,
  "thinking_process": "메모리에서 X 개념과 Y 팩트를 기반으로 답변"
}

Step 3: 피드백 생성

피드백 생성 규칙

에이전트가 직접 피드백을 생성합니다:

  1. 정답 여부 판단

    • 핵심 키워드 포함 여부
    • 개념적 정확성
    • 부분 정답 처리
  2. 피드백 내용

    • 정답: "맞습니다. {설명}"
    • 오답: "틀렸습니다. 정답은 {정답}입니다. {왜 그런지 설명}"
    • 부분 정답: "부분적으로 맞습니다. {맞은 부분}은 정확하지만, {틀린 부분}은..."
  3. 관련 개념 링크

    • 틀린 문제의 관련 개념 자동 식별
    • "이 문제는 {개념A}, {개념B}와 연결되어 있습니다"
  4. 추가 학습 제안

    • "이 부분을 더 공부하려면 {추천 자료}를 확인하세요"

피드백 형식

{
  "question_id": "q_001",
  "is_correct": false,
  "partial_credit": 0.5,
  "feedback": "틀렸습니다. 정답은 'Rust의 Ownership은 메모리 안전성을 보장하는 시스템으로, 각 값에 대해 하나의 소유자가 존재합니다'입니다.",
  "explanation": "Ownership은 Rust의 핵심 개념으로...",
  "related_concepts": ["Borrowing", "Lifetimes", "Move Semantics"],
  "source_reference": "https://doc.rust-lang.org/book/ch04-01.html",
  "suggested_review": "Rust Book Chapter 4.1을 다시 읽어보세요"
}

Step 4: 메모리 업데이트

정답 시

{
  "concept_id": "concept_001",
  "confidence": 0.85,
  "last_reviewed": "timestamp",
  "next_review": "FSRS 알고리즘으로 계산",
  "correct_count": 5,
  "total_count": 6
}

오답 시

{
  "concept_id": "concept_001",
  "confidence": 0.4,
  "last_reviewed": "timestamp",
  "next_review": "1일 후 (간격 초기화)",
  "correct_count": 2,
  "total_count": 6,
  "weak_points": ["관련 개념1", "관련 개념2"],
  "review_notes": "추가 학습 필요"
}

Step 5: 적응

feedback/adaptation.md 참조