Files
Study/skills/self-study-agent/feedback/spaced-repetition.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

141 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# F2: 간격 반복 (Spaced Repetition)
## FSRS 알고리즘
### 기본 원리
간격 반복은 정보를 점점 더 긴 간격으로 반복하여 장기 기억을 강화하는 기법입니다.
### FSRS 파라미터
```
w = [0.4, 0.6, 2.4, 5.8, 4.93, 0.94, 0.86, 0.01, 1.49, 0.14, 0.94, 2.18, 0.05, 0.34, 1.26, 0.29, 2.61]
```
### 간격 계산
**새 카드:**
- 최초 학습 후: 1일
- 첫 번째 복습 후: 3-7일 (난이도 기반)
- 두 번째 복습 후: 7-30일
- 이후: 지수적 증가 (최대 365일)
**Rating별 간격:**
| Rating | 의미 | 간격 조정 |
|--------|------|-----------|
| `again` | 잊어버림 | 간격 초기화 (1일) |
| `hard` | 노력해서 회상 | 간격 × 1.2 |
| `good` | 정확히 회상 | 간격 × FSRS 공식 |
| `easy` | 쉽게 회상 | 간격 × 1.3 × FSRS 공식 |
### 안정성(Stability) 계산
```
new_stability = stability * exp(
(w6 - w7 * delta) * (w8 - w9 * (rating-1)) * w10 +
(1 - w11) * exp(w12 - w13 * (rating-1))
)
```
단, again일 때:
```
new_stability = w14 * max(stability * w15, 1) * min(new_stability, w16 * stability)
```
### 간격(Interval) 계산
```
interval = stability * target_retention
interval = max(min_interval, min(interval, max_interval))
```
## 카드 관리
### 카드 생성
학습 세션에서 추출된 각 개념/팩트에 대해 자동 생성:
```json
{
"id": "card_001",
"concept_id": "concept_001",
"front": "Rust의 Ownership이란?",
"back": "메모리 안전성을 보장하는 시스템으로, 각 값에 대해 하나의 소유자가 존재합니다",
"difficulty": 0.6,
"interval_days": 0,
"due_date": "timestamp",
"reps": 0,
"lapses": 0
}
```
### 카드 업데이트
복습 후 FSRS 알고리즘에 따라 업데이트:
```json
{
"id": "card_001",
"interval_days": 7,
"due_date": "7일 후 timestamp",
"reps": 3,
"lapses": 0,
"stability": 2.5,
"retrievability": 0.85
}
```
## 복습 세션
### 복습할 카드 선택
1. 오늘 예정된 카드 우선
2. 연체된 카드 다음
3. 새로운 카드는 설정된 수만큼 (기본 20개/일)
### 복습 흐름
```
복습할 카드 목록
각 카드에 대해:
├── 문제 표시
├── 답변 시도
├── 정답 확인
└── Rating 선택 (again/hard/good/easy)
└── 카드 간격 업데이트
```
## 메모리 저장 형식
```json
{
"cards": [
{
"id": "card_001",
"front": "...",
"back": "...",
"interval_days": 7,
"due_date": "2024-01-15",
"reps": 3,
"lapses": 0,
"stability": 2.5
}
],
"stats": {
"total_cards": 100,
"due_today": 15,
"due_this_week": 45,
"overdue": 5,
"retention_rate": 0.88
}
}
```