Files
gh-junghan0611-org-mode-skills/docs/20251022T120000--skills-에이전트-학습-실험__agent_learning_experiment.org
2025-11-30 08:29:46 +08:00

421 lines
9.0 KiB
Org Mode

#+title: Skills 에이전트 학습 실험
#+date: [2025-10-22 Tue 12:00]
#+filetags: :agent:learning:experiment:skills:
#+identifier: 20251022T120000
* Skills 에이전트 학습 실험
:PROPERTIES:
:CUSTOM_ID: skills-에이전트-학습-실험
:END:
** 🎯 실험 목적
:PROPERTIES:
:CUSTOM_ID: 실험-목적
:END:
**에이전트 학습**: Skills 없이 vs 있을 때 에이전트의 행동 차이 관찰
*** 핵심 가설
:PROPERTIES:
:CUSTOM_ID: 핵심-가설
:END:
#+begin_quote
Skills가 있으면 에이전트가 **명확하게 다르게 행동**한다.
차이가 명확하지 않으면 Skills가 불필요한 것이다.
#+end_quote
** 🧪 실험 설계
:PROPERTIES:
:CUSTOM_ID: 실험-설계
:END:
*** 실험 조건
:PROPERTIES:
:CUSTOM_ID: 실험-조건
:END:
| 조건 | 설명 |
|------|------|
| **모델** | Haiku (우선), Sonnet (비교) |
| **환경** | Claude Code CLI |
| **비교** | Skills 없이 vs Skills 활성화 |
| **테스트** | PDF, XLSX 작업 |
*** 왜 Haiku 우선인가?
:PROPERTIES:
:CUSTOM_ID: 왜-haiku-우선인가
:END:
- 부담 없이 여러 번 테스트 가능
- Haiku로 되면 = Skills가 강력한 것
- Haiku로 안되면 = 모델 능력 문제일 수 있음
** 📋 실험 1: PDF 처리
:PROPERTIES:
:CUSTOM_ID: 실험-1-pdf-처리
:END:
*** Step 1-A: Skills 없이 (Baseline)
:PROPERTIES:
:CUSTOM_ID: step-1-a-skills-없이-baseline
:END:
*에이전트가 수행할 작업*:
#+begin_src markdown
테스트 PDF 파일(test.pdf)에서:
1. 전체 텍스트 추출
2. 첫 번째 페이지만 분리
3. 두 개의 PDF 병합
결과를 보고하시오.
#+end_src
*관찰 포인트*:
- [ ] 에이전트가 어떤 도구를 사용하는가?
- [ ] Python 라이브러리를 직접 코딩하는가?
- [ ] 실행 가능한 코드를 생성하는가?
- [ ] 에러가 발생하는가?
*학습 일지*:
#+begin_example
모델: Haiku / Sonnet
날짜:
결과:
- 사용 도구:
- 성공/실패:
- 특이사항:
#+end_example
*** Step 1-B: PDF Skill 활성화
:PROPERTIES:
:CUSTOM_ID: step-1-b-pdf-skill-활성화
:END:
*Skill 설치*:
#+begin_src bash
# 방법 1: 마켓플레이스
/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills
# 방법 2: 로컬 (이미 있음)
# ~/repos/3rd/snthropics-skills/document-skills/pdf/
#+end_src
*에이전트가 수행할 작업* (동일):
#+begin_src markdown
PDF skill을 사용하여 test.pdf에서:
1. 전체 텍스트 추출
2. 첫 번째 페이지만 분리
3. 두 개의 PDF 병합
결과를 보고하시오.
#+end_src
*관찰 포인트*:
- [ ] 에이전트가 PDF skill을 인식하는가?
- [ ] scripts/ 폴더의 Python 스크립트를 사용하는가?
- [ ] Step 1-A와 다른 접근 방식인가?
- [ ] 더 빠르거나 안정적인가?
*학습 일지*:
#+begin_example
모델: Haiku / Sonnet
날짜:
결과:
- Skill 인식 여부:
- 사용한 스크립트:
- Step 1-A와의 차이:
- 성공/실패:
#+end_example
*** Step 1-C: 비교 분석
:PROPERTIES:
:CUSTOM_ID: step-1-c-비교-분석
:END:
| 기준 | Skills 없이 (1-A) | Skills 있을 때 (1-B) |
|------|-------------------|---------------------|
| 성공 여부 | | |
| 코드 품질 | | |
| 실행 시간 | | |
| 에러 처리 | | |
| 재현성 | | |
*결론*:
- Skills의 차이가 명확한가? [ ] 예 [ ] 아니오
- 이유:
** 📋 실험 2: XLSX 처리
:PROPERTIES:
:CUSTOM_ID: 실험-2-xlsx-처리
:END:
*** Step 2-A: Skills 없이 (Baseline)
:PROPERTIES:
:CUSTOM_ID: step-2-a-skills-없이-baseline
:END:
*에이전트가 수행할 작업*:
#+begin_src markdown
Excel 파일(test.xlsx)을 생성하시오:
1. 3개 컬럼 (이름, 나이, 점수)
2. 5개 행 데이터
3. 점수 평균 계산 (수식 사용)
4. 컬럼 헤더 볼드 처리
결과를 보고하시오.
#+end_src
*학습 일지*:
#+begin_example
모델: Haiku / Sonnet
날짜:
결과:
- 수식이 작동하는가?
- 포맷팅이 적용되는가?
- 생성 코드:
#+end_example
*** Step 2-B: XLSX Skill 활성화
:PROPERTIES:
:CUSTOM_ID: step-2-b-xlsx-skill-활성화
:END:
*에이전트가 수행할 작업* (동일):
#+begin_src markdown
XLSX skill을 사용하여 Excel 파일 생성:
1. 3개 컬럼 (이름, 나이, 점수)
2. 5개 행 데이터
3. 점수 평균 계산 (수식 사용)
4. 컬럼 헤더 볼드 처리
결과를 보고하시오.
#+end_src
*관찰 포인트*:
- [ ] recalc.py가 호출되는가?
- [ ] 수식 계산이 더 정확한가?
- [ ] LibreOffice 통합이 보이는가?
*학습 일지*:
#+begin_example
모델: Haiku / Sonnet
날짜:
결과:
- recalc.py 사용 여부:
- Step 2-A와의 차이:
#+end_example
*** Step 2-C: 비교 분석
:PROPERTIES:
:CUSTOM_ID: step-2-c-비교-분석
:END:
| 기준 | Skills 없이 (2-A) | Skills 있을 때 (2-B) |
|------|-------------------|---------------------|
| 파일 생성 | | |
| 수식 작동 | | |
| 포맷팅 | | |
| 코드 복잡도 | | |
*결론*:
- XLSX skill의 가치가 있는가? [ ] 예 [ ] 아니오
- recalc.py의 역할:
** 📋 실험 3: 복잡한 작업
:PROPERTIES:
:CUSTOM_ID: 실험-3-복잡한-작업
:END:
*** Step 3: PDF 폼 채우기 (고난도)
:PROPERTIES:
:CUSTOM_ID: step-3-pdf-폼-채우기-고난도
:END:
*에이전트가 수행할 작업*:
#+begin_src markdown
fillable PDF form(form.pdf)에 데이터를 채우시오:
- Name: "홍길동"
- Age: "30"
- Email: "hong@example.com"
결과를 보고하시오.
#+end_src
*Skills 없이 결과*:
#+begin_example
#+end_example
*Skills 있을 때 결과*:
#+begin_example
사용 스크립트:
- check_fillable_fields.py
- extract_form_field_info.py
- fill_fillable_fields.py
- check_bounding_boxes.py
#+end_example
*결론*:
- 이 작업은 Skills 없이 가능한가? [ ] 예 [ ] 아니오
- bounding box 계산이 필요한가? [ ] 예 [ ] 아니오
** 🔬 모델별 비교
:PROPERTIES:
:CUSTOM_ID: 모델별-비교
:END:
*** Haiku vs Sonnet
:PROPERTIES:
:CUSTOM_ID: haiku-vs-sonnet
:END:
| 작업 | Haiku (Skills 없이) | Haiku (Skills 있음) | Sonnet (Skills 없이) | Sonnet (Skills 있음) |
|------|---------------------|---------------------|---------------------|---------------------|
| PDF 텍스트 추출 | | | | |
| PDF 병합 | | | | |
| XLSX 생성 | | | | |
| PDF 폼 채우기 | | | | |
*인사이트*:
- Haiku로 Skills가 작동하는가?
- Sonnet과 차이가 얼마나 나는가?
- Skills가 모델 능력을 보완하는가?
** 🎓 claude-memory와의 차이
:PROPERTIES:
:CUSTOM_ID: claude-memory와의-차이
:END:
*** 실험 4: Denote 파일 찾기
:PROPERTIES:
:CUSTOM_ID: 실험-4-denote-파일-찾기
:END:
*에이전트가 수행할 작업*:
#+begin_src markdown
~/org/llmlog/ 에서 "skills" 태그가 있는 파일을 모두 찾으시오.
#+end_src
*현재 방식 (claude-memory + CLAUDE.md)*:
#+begin_example
결과:
- 사용 도구: Glob, Grep
- 소요 시간:
- 토큰 사용:
#+end_example
*만약 denote-org skill이 있다면*:
#+begin_example
예상:
- denote_finder.py --tags skills
- 캐싱된 결과
- 토큰 최적화?
#+end_example
*질문*:
- [ ] Glob/Grep으로 충분한가?
- [ ] denote_finder.py가 더 빠른가?
- [ ] 3,000+ 파일에서 차이가 나는가?
- [ ] 복잡한 알고리즘이 필요한가?
** 📊 최종 판단 프레임워크
:PROPERTIES:
:CUSTOM_ID: 최종-판단-프레임워크
:END:
*** Skills 필요성 체크리스트
:PROPERTIES:
:CUSTOM_ID: skills-필요성-체크리스트
:END:
*PDF/XLSX Skills 검증*:
- [ ] Skills 없이 vs 있을 때 **명확한 차이**가 있다
- [ ] 복잡한 알고리즘 (bounding box 수준)이 필요하다
- [ ] 외부 스크립트 실행이 필수적이다
- [ ] 단순 프롬프트로 불가능한 작업이다
- [ ] Haiku 모델에서도 작동한다
*org-mode-skills 검증*:
- [ ] Denote 파일 찾기가 복잡한 알고리즘인가?
- [ ] Glob/Grep으로 충분하지 않은가?
- [ ] 3,000+ 파일에서 성능 차이가 있는가?
- [ ] scripts 없이는 불가능한 작업인가?
- [ ] claude-memory와 레이어가 분리되는가?
*** 경계선 정의
:PROPERTIES:
:CUSTOM_ID: 경계선-정의
:END:
| 시스템 | 목적 | 내용 | 변경 빈도 | 예시 |
|--------|------|------|-----------|------|
| **claude-memory** | | | | |
| **Skills** | | | | |
*실험 후 채우기*
** 🎯 최종 결론
:PROPERTIES:
:CUSTOM_ID: 최종-결론
:END:
*** org-mode-skills 필요한가?
:PROPERTIES:
:CUSTOM_ID: org-mode-skills-필요한가
:END:
*판단*: [ ] 필요 [ ] 불필요 [ ] 부분적
*이유*:
*실험 결과 요약*:
1. PDF/XLSX Skills의 가치:
2. claude-memory와의 차이:
3. Denote 작업의 복잡도:
*다음 액션*:
- [ ] org-mode-skills 개발 진행
- [ ] CLAUDE.md에 Denote 섹션 추가로 충분
- [ ] 다른 접근 방법:
** 📝 실험 노트
:PROPERTIES:
:CUSTOM_ID: 실험-노트
:END:
*** 날짜:
:PROPERTIES:
:CUSTOM_ID: 날짜
:END:
*** 발견:
:PROPERTIES:
:CUSTOM_ID: 발견
:END:
*** 의문점:
:PROPERTIES:
:CUSTOM_ID: 의문점
:END:
*** 인사이트:
:PROPERTIES:
:CUSTOM_ID: 인사이트
:END:
--------------
*Created*: 2025-10-22T12:00
*Purpose*: 에이전트 학습 - Skills 효과 검증
*Method*: 실험 기반 비교 분석