research

Tool vs Skill 설계 원칙

Tool vs Skill 설계 원칙

핵심 구분

Tool = agent가 실행할 수 있는 원자적 능력 Skill = tool들의 조합 + 실행 순서 + 조건

Tool:   파일 다운로드 (url → local_path)
Tool:   MD 변환 (file → .md)
Tool:   RAG 인덱싱 (file → vector DB)

Skill A:  파일 다운로드
Skill B:  파일 다운로드 → 특정 폴더 저장
Skill C:  파일 다운로드 → MD 변환 → RAG 인덱싱

Tool은 개발자가 만들고, Skill은 사용자가 구성한다.

Tool 설계 원칙

1. 원자성

하나의 tool은 하나의 명확한 입출력을 가져야 한다.

좋음: download_file(url) → local_path
나쁨: download_and_convert_file(url) → md_content  ← 두 가지를 함

2. 재사용성

여러 skill에서 공통으로 쓸 수 있어야 한다.

download_file이 있으면:
  Skill B: download_file → save_to_folder
  Skill C: download_file → convert_to_md → index_to_rag
  Skill D: download_file → send_to_email

Skill 설계 — 세 가지 모델

모델 1 — 템플릿 선택

미리 만들어진 Skill 중 선택.

  • 일반인 친화적
  • 조합 자유도 낮음

모델 2 — 파라미터 커스터마이징

Skill: 파일 다운로드
  - 저장 위치: [사용자 입력]
  - 변환 여부: [on/off]
  - RAG 인덱싱: [on/off]
  • 중간 난이도
  • 대부분의 케이스 커버

모델 3 — 자연어로 Skill 생성

"회의 30분 전에 첨부파일 다운받아서 Obsidian에 MD로 저장해줘" → LLM이 파싱 → Tool 조합으로 변환

  • 가장 이상적
  • 안정성 문제 있음

단계별 접근

단기 (개인용): Tool을 원자적으로 구현 + config로 Skill 정의 → 모델 2

장기 (서비스화): 자연어 → Skill 자동 생성 → 모델 3

관련 개념