ab79a2a72b
- 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)
145 lines
3.3 KiB
Markdown
145 lines
3.3 KiB
Markdown
# F4: 적응 로직 (Adaptation)
|
|
|
|
## 개요
|
|
|
|
자기 평가 결과를 분석하여 다음 세션의 전략과 파라미터를 자동 조절합니다.
|
|
|
|
## 메트릭 정의
|
|
|
|
### 핵심 메트릭
|
|
|
|
| 메트릭 | 계산 방법 | 목표 |
|
|
|--------|-----------|------|
|
|
| **정답률** | 정답 수 / 전체 문제 수 | ≥ 0.85 |
|
|
| **유형별 정답률** | 유형별 정답 수 / 유형별 문제 수 | ≥ 0.70 |
|
|
| **주제별 정답률** | 주제별 정답 수 / 주제별 문제 수 | ≥ 0.70 |
|
|
| **난이도별 정답률** | 난이도별 정답 수 / 난이도별 문제 수 | 0.6-0.8 |
|
|
| **간격 유지율** | 예정된 복습 수행 비율 | ≥ 0.80 |
|
|
| **개념 연결도** | 연결된 개념 비율 | ≥ 0.30 |
|
|
|
|
### 메트릭 수집
|
|
|
|
각 자기 평가 루프 후 메트릭 계산:
|
|
|
|
```json
|
|
{
|
|
"session_id": "session_001",
|
|
"iteration": 5,
|
|
"metrics": {
|
|
"accuracy": 0.75,
|
|
"type_accuracy": {
|
|
"direct_recall": 0.85,
|
|
"application": 0.70,
|
|
"variation": 0.65,
|
|
"connection": 0.80
|
|
},
|
|
"topic_accuracy": {
|
|
"rust_async": 0.80,
|
|
"ownership": 0.70
|
|
},
|
|
"difficulty_accuracy": {
|
|
"easy": 0.95,
|
|
"medium": 0.75,
|
|
"hard": 0.55
|
|
},
|
|
"concepts_mastered": 8,
|
|
"concepts_total": 12
|
|
}
|
|
}
|
|
```
|
|
|
|
## 적응 로직
|
|
|
|
### 1. 정답률 기반 적응
|
|
|
|
```
|
|
if 정답률 < 0.5 and 연속 3회:
|
|
→ 난이도 하향
|
|
→ 학습 속도 감소
|
|
→ 쉬운 문제 비중 증가
|
|
|
|
if 정답률 > 0.9 and 연속 5회:
|
|
→ 난이도 상향
|
|
→ 새로운 주제 탐색
|
|
→ 어려운 문제 비중 증가
|
|
```
|
|
|
|
### 2. 유형별 적응
|
|
|
|
```
|
|
for each 유형 in [직접 회상, 적용, 변형, 연결]:
|
|
if 유형별 정답률 < 0.5:
|
|
→ 해당 유형 문제 비중 증가 (+0.1)
|
|
elif 유형별 정답률 > 0.9:
|
|
→ 해당 유형 문제 비중 감소 (-0.05)
|
|
```
|
|
|
|
### 3. 난이도 적응
|
|
|
|
```
|
|
if 쉬운 문제 정답률 > 0.95:
|
|
→ 보통 문제 비중 증가
|
|
|
|
if 보통 문제 정답률 > 0.85:
|
|
→ 어려운 문제 비중 증가
|
|
|
|
if 어려운 문제 정답률 < 0.4:
|
|
→ 어려운 문제 비중 감소
|
|
→ 보통 문제 비중 증가
|
|
```
|
|
|
|
### 4. 주제별 적응
|
|
|
|
```
|
|
for each 주제 in 메모리:
|
|
if 주제별 정답률 < 0.6:
|
|
→ 해당 주제 재학습 세션 추가
|
|
elif 주제별 정답률 > 0.9:
|
|
→ 해당 주제 심화 탐색
|
|
```
|
|
|
|
## 파라미터 조절
|
|
|
|
### 문제 생성 파라미터
|
|
|
|
```json
|
|
{
|
|
"type_distribution": {
|
|
"direct_recall": 0.4,
|
|
"application": 0.3,
|
|
"variation": 0.2,
|
|
"connection": 0.1
|
|
},
|
|
"difficulty_distribution": {
|
|
"easy": 0.3,
|
|
"medium": 0.4,
|
|
"hard": 0.3
|
|
}
|
|
}
|
|
```
|
|
|
|
### 적응 예시
|
|
|
|
```
|
|
원래: direct_recall=0.4, application=0.3, variation=0.2, connection=0.1
|
|
적용 질문 정답률 0.45 (낮음):
|
|
→ direct_recall=0.35, application=0.35, variation=0.2, connection=0.1
|
|
|
|
어려운 문제 정답률 0.35 (낮음):
|
|
→ easy=0.35, medium=0.45, hard=0.20
|
|
```
|
|
|
|
## 세션 간 전이
|
|
|
|
세션 종료 시 메모리 상태에 따라 다음 행동을 자동으로 결정합니다:
|
|
|
|
```
|
|
[세션 종료 → 다음 행동 결정]
|
|
├── due 카드 > 0 → 복습 세션 실행
|
|
├── 미완료 주제 존재 → 새 학습 세션 실행
|
|
├── 모든 주제 마스터 완료 → 새 주제 탐색
|
|
└── 모두 완료 → 종료
|
|
```
|
|
|
|
적응 변경 내역과 메트릭 이력을 메모리에 저장합니다.
|