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)
This commit is contained in:
2026-06-19 11:43:34 +09:00
parent 9afc5f4491
commit ab79a2a72b
7 changed files with 65 additions and 211 deletions
+9 -37
View File
@@ -129,44 +129,16 @@ for each 주제 in 메모리:
→ easy=0.35, medium=0.45, hard=0.20
```
## 적응 이력
## 세션 간 전이
적응 변경 시 메모리에 기록:
세션 종료 시 메모리 상태에 따라 다음 행동을 자동으로 결정합니다:
```json
{
"adaptation_log": [
{
"timestamp": "2024-01-10T10:00:00Z",
"trigger": "low_accuracy_variation",
"changes": {
"type_distribution.variation": {"old": 0.2, "new": 0.25}
},
"reason": "변형 질문 정답률 0.45 (기준 미달)"
}
]
}
```
[세션 종료 → 다음 행동 결정]
├── due 카드 > 0 → 복습 세션 실행
├── 미완료 주제 존재 → 새 학습 세션 실행
├── 모든 주제 마스터 완료 → 새 주제 탐색
└── 모두 완료 → 종료
```
## 메모리 저장 형식
```json
{
"current_strategy": {
"type_distribution": {...},
"difficulty_distribution": {...},
"interleaving_ratio": 0.3
},
"adaptation_history": [...],
"metrics_history": [
{
"iteration": 1,
"accuracy": 0.60
},
{
"iteration": 5,
"accuracy": 0.75
}
]
}
```
적응 변경 내역과 메트릭 이력을 메모리 저장합니다.
@@ -69,27 +69,4 @@ interleaving:
- 현재 주제 정답률 50%↓ → 이전 주제 비중 0.2로 감소
- 특정 이전 주제 오답률 높음 → 해당 주제 비중 증가
## 메모리 저장 형식
```json
{
"session_topics": [
{
"topic_id": "rust_async",
"source_session": 1,
"question_count": 7,
"correct_count": 6
},
{
"topic_id": "tokio_internals",
"source_session": 2,
"question_count": 3,
"correct_count": 2
}
],
"interleaving_stats": {
"mix_ratio": 0.3,
"cross_session_accuracy": 0.83
}
}
```
교차 학습 세션 구성을 메모리 저장합니다.
@@ -122,33 +122,7 @@
## Step 4: 메모리 업데이트
### 정답 시
```json
{
"concept_id": "concept_001",
"confidence": 0.85,
"last_reviewed": "timestamp",
"next_review": "FSRS 알고리즘으로 계산",
"correct_count": 5,
"total_count": 6
}
```
### 오답 시
```json
{
"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: 적응
@@ -113,28 +113,4 @@ interval = max(min_interval, min(interval, max_interval))
└── 카드 간격 업데이트
```
## 메모리 저장 형식
```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
}
}
```
카드 데이터와 통계를 메모리 저장합니다.