Files
Study/skills/self-study-agent/feedback/self-testing.md
T
Hana ab79a2a72b self-study-agent: self-driving loop, no memory format details, auto_repeat config
- Replace static pipeline diagram with self-driving loop (check memory → decide → execute → repeat)
- Remove detailed memory structure JSON schemas from all files
- Remove honcho-specific storage strategy from skill (storage is caller's responsibility)
- Add auto_repeat section to config.yaml (enabled, max_sessions_per_chat, stop_conditions)
- Add rule 8 (auto-repeat) and rule 9 (termination conditions) to execution rules
- Add session transition logic to adaptation.md (due cards → review, incomplete → study)
2026-06-19 11:43:34 +09:00

3.8 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: 메모리 업데이트

정답 시에는 해당 개념의 신뢰도를 높이고 간격을 늘립니다. 오답 시에는 신뢰도를 낮추고 간격을 초기화하며 약점을 기록합니다. 결과를 메모리에 저장합니다.

Step 5: 적응

feedback/adaptation.md 참조