research

Skill Composition Model

Skill Composition Model

Skill = Tool 조합 + 조건 + 순서 + 파라미터 바인딩

세 가지 조합 패턴

패턴 1 — Sequential (파이프라인)

앞 Tool의 출력이 다음 Tool의 입력으로 연결.

download_file(url)
      ↓ local_path
convert_to_md(local_path)
      ↓ md_path
index_to_rag(md_path)

패턴 2 — Parallel

서로 의존성 없는 Tool을 동시 실행.

search("transformer")   search("attention")
         ↓                      ↓
      results_1             results_2
                ↓ merge
          combined_results

패턴 3 — Conditional

결과에 따라 다음 행동이 달라짐.

login()
  ↓
success? → search()
failure? → notify_user() → stop

사용자별 커스터마이징

Tool 조합(구조)은 공유, 파라미터 값은 사용자별로 다름.

skill: research_and_save
steps:
  - tool: download_file
    params:
      save_path: "{user_download_path}"   ← 사용자마다 다름
  - tool: convert_to_md
    condition: "user.wants_md == True"   ← 사용자 설정
  - tool: index_to_rag
    condition: "user.wants_rag == True"

역할 분담

개발자:  Tool 구현 + Skill 템플릿 (구조/순서)
사용자:  파라미터 바인딩 + 트리거 조건
LLM:     Skill 선택 + 판단 처리 + 에러 대응

Skill Composition이 해결하는 것

A: 그냥 다운로드
B: 다운로드 + 특정 폴더
C: 다운로드 + MD + RAG

→ 동일한 Skill 구조 + 사용자별 파라미터
→ 코드 한 벌로 모든 케이스 커버

관련 개념