#+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*: 실험 기반 비교 분석