# NotebookLM 학습노트 시스템 설계

> 에이전트가 스스로 학습하고 전문성을 높이는 시스템
>
> 작성일: 2026-02-07

---

## 1. 개요

### 목표
각 에이전트(Backend, Frontend, Legal 등)가 **피드백을 축적**하고, 다음 작업 시 **과거 학습 내용을 참조**하여 품질을 개선하는 시스템

### 핵심 아이디어
```
NotebookLM = 에이전트의 장기 메모리
```

---

## 2. 아키텍처

```
┌─────────────────────────────────────────────────────────┐
│                    NotebookLM                           │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐       │
│  │ Backend     │ │ Frontend    │ │ Legal       │ ...   │
│  │ Learning    │ │ Learning    │ │ Learning    │       │
│  └─────────────┘ └─────────────┘ └─────────────┘       │
└───────────────────────┬─────────────────────────────────┘
                        │
            ┌───────────┴───────────┐
            │                       │
      [피드백 저장]           [지식 조회]
      source_add()           notebook_query()
            │                       │
            ▼                       ▼
┌─────────────────────────────────────────────────────────┐
│                   에이전트 작업 흐름                     │
│                                                         │
│  1. 작업 전: "관련 실수 패턴 있어?" 조회                 │
│  2. 작업 수행: 조회 결과 참고하여 개선된 답변             │
│  3. 피드백 시: 학습 내용 NotebookLM에 저장               │
└─────────────────────────────────────────────────────────┘
```

---

## 3. 구현 단계

### Phase 1: 노트북 생성
- [ ] Backend Agent Learning 노트북 생성
- [ ] Frontend Agent Learning 노트북 생성
- [ ] 기타 에이전트별 노트북 생성 (필요시)

### Phase 2: 피드백 저장 로직
- [ ] 피드백 발생 시 source_add() 호출 함수 작성
- [ ] 피드백 포맷 정의 (날짜, 에이전트, 내용, 개선점)

### Phase 3: 조회 로직
- [ ] 작업 전 notebook_query() 호출 로직 작성
- [ ] 조회 결과를 프롬프트에 주입하는 방식 정의

### Phase 4: 테스트
- [ ] 파일럿 테스트 (Backend Agent로 1회 사이클)
- [ ] 결과 평가 및 개선

---

## 4. 성공 기준 체크리스트

### 기술적 성공 ✅
| 항목 | 기준 | 상태 |
|------|------|------|
| 노트북 생성 | API로 에이전트별 노트북 생성 가능 | ⬜ |
| 소스 추가 | 피드백 텍스트를 source_add로 저장 가능 | ⬜ |
| 질의 작동 | notebook_query로 관련 학습 내용 조회 가능 | ⬜ |
| 응답 품질 | 조회 결과가 실제 도움이 되는 내용 반환 | ⬜ |

### 실질적 효과 ✅
| 항목 | 기준 | 상태 |
|------|------|------|
| 반복 실수 감소 | 같은 피드백 2회 이상 발생 안 함 | ⬜ |
| 답변 품질 향상 | 피드백 후 유사 작업 시 개선된 결과 | ⬜ |
| 저기 참조 확인 | "과거 학습에 따르면..." 형태로 답변 | ⬜ |

---

## 5. 파일럿 테스트 시나리오

### 테스트 케이스: Backend Agent

```
[1단계] 초기 작업
   - Backend Agent에게 API 설계 요청
   - 의도적으로 피드백 제공: "pagination 빠졌어"

[2단계] 피드백 저장
   - 피드백 내용을 Backend Learning 노트북에 저장
   - 포맷: "2026-02-07 | API 설계 | pagination 누락 | 항상 포함할 것"

[3단계] 재작업 요청
   - 다른 API 설계 요청
   - 에이전트가 작업 전 notebook_query("API 설계 주의사항")
   - pagination 포함 여부 확인

[4단계] 성공 판정
   - pagination이 자동으로 포함되면 → 성공 ✅
   - 여전히 누락되면 → 실패 ❌ (조정 필요)
```

---

## 6. 실패 시 대안

| 실패 원인 | 대안 |
|----------|------|
| API 호출 오류 | 로컬 `.md` 파일 기반 학습노트로 대체 |
| 조회 결과 부정확 | 프롬프트 엔지니어링 개선 |
| 속도 저하 | 중요 작업만 조회 (선택적 적용) |

---

## 7. 향후 확장

- 에이전트 간 학습 공유 (Backend 실수 → 다른 에이전트도 참조)
- 자동 요약 생성 (주간 학습 리포트)
- 대표님 피드백 패턴 분석

---

*이 문서는 구현 진행 시 업데이트됩니다.*
