Skill 선택 메커니즘 — LLM이 어떤 Skill을 써야 하는지 아는 방법
세 가지 방식
방식 1 — Skill 목록 + 설명 (System prompt)
## 사용 가능한 Skill 목록
- research_before_meeting: 회의 전 관련 자료를 조사하고 저장
- summarize_meeting: 회의록을 요약해서 저장
- download_and_index: 첨부파일을 다운받아 RAG에 인덱싱
## Skill 선택 규칙
사용자의 요청을 읽고 가장 적합한 Skill을 선택해라.
불확실하면 사용자에게 확인해라.
LLM이 description을 보고 요청과 매칭해서 선택. 가장 단순하고 현재 가장 많이 쓰는 방식.
방식 2 — 트리거 조건 명시
skill: research_before_meeting
triggers:
- "회의 전에 자료 준비해줘"
- "미팅 전에 논문 찾아줘"
- 캘린더 이벤트: 30분 전 자동 실행
캘린더 자동 트리거처럼 조건이 명확할 때 강력.
방식 3 — Router LLM 분리
Router LLM (작은 모델, 빠름)
입력: 사용자 요청 + Skill 목록
출력: {"skill": "research_before_meeting", "confidence": 0.95}
↓
Task Agent (큰 모델)
선택된 Skill + Tool 명세로 실제 실행
confidence가 낮으면 사용자에게 확인 요청.
단계별 적용
개인용 (초기): 방식 1 충분
캘린더 자동 트리거: 방식 2 추가
서비스화 (일반 사용자): 방식 3 필요
Tool만 있을 때 vs Skill이 있을 때
Tool만 있음:
"login을 써야 하나? search를 써야 하나?"
매번 처음부터 추론 → 불일관
Skill이 있음:
먼저 Skill 선택 (research_before_meeting)
→ Skill 안의 Tool 순서는 Skill이 결정
→ 일관된 실행
Skill description 작성 원칙
비슷한 Skill이 여러 개 있을 때 LLM이 잘못 선택하지 않으려면 description이 명확하게 구분되어야 한다.
나쁨:
- research: 자료 조사
- search: 검색해서 저장
좋음:
- research_before_meeting: 회의 주제 관련 논문/자료 조사 후 RAG 인덱싱
- search_and_bookmark: 웹 검색 결과를 북마크로 저장 (RAG 아님)
관련 개념
- tool-vs-skill-design — Tool/Skill 설계 원칙
- tool-cot-execution — CoT 실행 흐름
- tool-system-prompt-design — System prompt 전체 구조