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
+39 -77
View File
@@ -13,34 +13,30 @@ dependencies: [websearch, webfetch]
**이 스킬은 학습과 평가만 담당합니다.** 메모리 저장은 에이전트가 처리합니다.
## 전체 루프
## 실행 구조
한 번의 실행으로 에이전트가 메모리 상태에 따라 자동으로 다음을 반복합니다:
```
┌─────────────────────────────────────────────────────────────────────────┐
│ SELF-STUDY LOOP (최대 20회)
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ [Phase 1: 학습 세션] │
│ ▼
│ 주제 선택 → 소스 발견 → 추출 → 종합 → 메모리 저장 │
│ │
[Phase 2: 자기 평가 루프] (최대 20회)
│ │
│ ▼ │
│ 문제 생성 → 답변 시도 → 피드백 → 메모리 업데이트 → 다음 문제
│ │ │
│ ├── 정답 → 신뢰도 ↑, 간격 증가 │
│ │ │
│ └── 오답 → 피드백, 약점 분석, 재학습 → 메모리 보강 │
│ │
│ [종료 조건] │
│ - 정답률 95% 이상 │
│ - 또는 20회 완료 │
│ │
└─────────────────────────────────────────────────────────────────────────┘
[시작]
├─ 1. 메모리 확인
│ ├─ due 카드 존재 → 복습 세션 실행
│ ├─ 미완료 주제 존재 → 새 학습 세션 실행
└─ 모두 완료 → 새 주제 탐색
├─ 2. 학습/복습 세션
│ ├─ Phase 1: 주제 선택 → 소스 발견 → 추출 → 종합
└─ Phase 2: 자기 평가 루프 (최대 20회)
├─ 3. 결과를 메모리에 저장
└─ 4. 다시 1번으로 → 반복
(종료 조건 충족 시까지)
```
**종료 조건**: due 카드 0, 미완료 주제 0, 최대 세션 도달
## 파이프라인 단계
| 단계 | 파일 | 설명 |
@@ -64,68 +60,34 @@ dependencies: [websearch, webfetch]
1. **능동적 회상** — 문제를 풀 때 메모리에서만 꺼냄 (소스 접근 금지)
2. **피드백은 에이전트가 생성** — 정오 판정 + 설명 + 관련 개념 링크
3. **모든 학습 메모리에 저장** — 구조화된 지식 베이스로 유지
3. **모든 학습 결과는 메모리에 저장**
4. **간격 반복 적용** — FSRS 알고리즘으로 복습 스케줄 관리
5. **교차 학습** — 한 세션에서 여러 주제 문제를 혼합 출제
6. **바람직한 난이도** — 정답률에 따라 난이도 자동 조절
7. **루프 20회 제한** — 충분한 학습 기회 보장
## 메모리 구조 (지식 베이스)
```
Memory Store
├── Concepts (개념)
│ ├── id, title, definition, examples
│ ├── connections: [related_concept_ids]
│ ├── confidence: 0.0-1.0
│ └── source_refs: [출처 참조]
├── Facts (팩트)
│ ├── id, statement, evidence
│ ├── confidence: 0.0-1.0
│ └── source_refs: [출처 참조]
├── Procedures (절차)
│ ├── id, name, steps
│ ├── proficiency: 0.0-1.0
│ └── practice_count: int
├── Code Patterns (코드 패턴)
│ ├── id, language, code, explanation
│ └── use_cases: [list]
├── Test History (평가 이력)
│ ├── session_id, timestamp
│ ├── questions: [question_id, type, difficulty, user_answer, is_correct]
│ └── metrics: {accuracy, retention_rate, ...}
└── Adaptation Log (적응 기록)
├── timestamp
├── strategy_changes: [list]
└── parameter_adjustments: [list]
```
8. **자동 반복** — 세션 종료 후 메모리를 확인하여 due 카드/미완료 주제가 있으면 즉시 다음 세션을 자동으로 실행
9. **종료 조건** — due 카드 0, 미완료 주제 0, 최대 세션 도달 시 종료
## 예시 흐름
```
[세션 1: 학습]
주제: Rust Async
소스: rust-lang.org, tokio.rs, 블로그
추출: 12개 개념, 8개 팩트, 3개 절차, 5개 코드 패턴
메모리 저장: 지식 베이스 구축
[실행 시작]
→ 메모리 확인: due 카드 없음, 미완료 주제 "Rust Async"
→ 새 학습 세션 시작
[학습 세션]
주제: Rust Async
소스: rust-lang.org, tokio.rs
추출 → 종합 → 메모리에 저장
[자기 평가 루프]
1회: "Rust의 Future란?" → 정답 (신뢰도 0.6)
2회: "Tokio에서 spawn은?" → 정답 (신뢰도 0.7)
3회: "Async/Await의 차이점은?" → 오답 → 피드백 → 메모리 보강
4회: "Polling이란?" → 정답 (신뢰도 0.65)
...
20회: 정답률 92% → 종료
1회: "Rust의 Future란?" → 정답
2회: "Tokio에서 spawn은?" → 정답
3회: "Async/Await의 차이점은?" → 오답 → 피드백 → 재학습
...
20회: 정답률 92% → 종료 → 메모리에 저장
[최종 메모리]
- 12개 개념 (평균 신뢰도 0.85)
- 8개 팩트 (평균 신뢰도 0.90)
- 3개 절차 (숙련도 0.75)
- 5개 코드 패턴
- 20회 평가 이력
[자동 반복]
→ 메모리 확인: due 카드 3개 (복습 필요)
→ 복습 세션 자동 실행
```