메인 콘텐츠로 건너뛰기

개요

스킬은 에이전트에게 도메인별 지침, 가이드라인 및 참조 자료를 제공하는 자체 포함 디렉터리입니다. 각 스킬은 YAML 프론트매터와 마크다운 본문이 포함된 SKILL.md 파일로 정의됩니다. 활성화되면 스킬의 지침이 에이전트의 작업 프롬프트에 직접 주입됩니다 — 코드 변경 없이 에이전트에게 전문성을 부여합니다.
스킬은 도구가 아닙니다. 이것이 가장 흔한 혼동 포인트입니다.
  • 스킬은 에이전트의 프롬프트에 지침과 컨텍스트를 주입합니다. 에이전트에게 문제에 대해 어떻게 생각할지를 알려줍니다.
  • 도구는 에이전트에게 행동을 취할 수 있는 호출 가능한 함수를 제공합니다 (검색, 파일 읽기, API 호출).
흔히 둘 다 필요합니다: 전문성을 위한 스킬과 행동을 위한 도구. 이들은 독립적으로 구성되며 서로 보완합니다.

빠른 시작

1. CLI로 스킬 생성

CLI는 스킬을 생성하는 공식 지원 방식입니다 — 디렉터리 레이아웃과 유효한 SKILL.md를 자동으로 스캐폴딩해 줍니다:
Terminal
크루 프로젝트 내부(pyproject.toml이 있는 곳)에서는 ./skills/code-review/가 생성되고, 프로젝트 외부에서는 현재 디렉터리에 ./code-review/가 생성됩니다 (--no-project로 이 동작을 강제할 수 있습니다):

2. SKILL.md 작성

3. 에이전트에 연결

이제 에이전트는 전문성 (스킬에서)과 기능 (도구에서) 모두를 갖추게 됩니다.

스킬 + 도구: 함께 작동하기

스킬과 도구가 어떻게 보완하는지 보여주는 일반적인 패턴입니다:

패턴 1: 스킬만 (도메인 전문성, 액션 불필요)

에이전트가 특정 지침이 필요하지만 외부 서비스를 호출할 필요가 없을 때 사용:

패턴 2: 도구만 (액션, 특별한 전문성 불필요)

에이전트가 행동을 취해야 하지만 도메인별 지침이 필요 없을 때 사용:

패턴 3: 스킬 + 도구 (전문성 AND 액션)

가장 일반적인 실제 패턴. 스킬은 작업에 어떻게 접근할지를 제공하고, 도구는 에이전트가 무엇을 할 수 있는지를 제공합니다:

패턴 4: 스킬 + MCP

스킬은 도구와 마찬가지로 MCP 서버와 함께 작동합니다:

패턴 5: 스킬 + 앱

스킬은 에이전트가 플랫폼 통합을 사용하는 방법을 안내할 수 있습니다:

스킬 생성, 게시 및 설치

스킬은 CLI로 관리되는 전체 라이프사이클을 갖습니다: crewai skill create로 생성하고, crewai skill publish로 게시하세요 — 디렉터리를 직접 만드는 방식도 로컬 실험에는 사용할 수 있지만, CLI가 의도된 워크플로우이며 스킬 레이아웃과 프론트매터를 유효하게 유지해 줍니다.

생성

Terminal
디렉터리를 스캐폴딩하고 (크루 프로젝트 내부에서는 ./skills/에 생성) 템플릿 SKILL.md와 함께 빈 scripts/, references/, assets/ 디렉터리를 만듭니다. SKILL.md를 편집하여 지침을 정의하세요.

게시

스킬 디렉터리 내부(SKILL.md가 있는 곳)에서 실행하세요:
Terminal
게시 시 SKILL.md 프론트매터에서 name, description, metadata.version을 읽어 스킬을 CrewAI 레지스트리로 푸시합니다. 게시된 스킬은 항상 조직 범위로 제한됩니다 — 도구와 마찬가지로 게시한 조직의 멤버만 스킬을 보고 설치할 수 있으며, 공개 가시성은 없습니다. 유용한 플래그:

설치

게시된 스킬을 @org/name 참조로 설치합니다:
Terminal
크루 프로젝트 내부에서는 스킬이 ./skills/{name}/에 설치되고, 프로젝트 외부에서는 공유 캐시인 ~/.crewai/skills/{org}/{name}/에 저장됩니다. 에이전트는 레지스트리 스킬을 직접 참조할 수도 있습니다 — 런타임에 로컬 캐시(또는 프로젝트 skills/ 디렉터리)에서 해석됩니다:

목록 조회

Terminal
프로젝트 ./skills/ 디렉터리와 전역 캐시 양쪽에 설치된 스킬을 버전 및 경로와 함께 보여줍니다.

크루 레벨 스킬

스킬을 크루에 설정하여 모든 에이전트에 적용할 수 있습니다:
에이전트 레벨 스킬이 우선합니다 — 동일한 스킬이 양쪽 레벨에서 발견되면 에이전트의 버전이 사용됩니다.

SKILL.md 형식

프론트매터 필드


디렉터리 구조

디렉터리 이름은 SKILL.mdname 필드와 일치해야 합니다. scripts/, references/, assets/ 디렉터리는 파일을 직접 참조해야 하는 에이전트를 위해 스킬의 path에서 사용할 수 있습니다.

사전 로드된 스킬

더 세밀한 제어를 위해 프로그래밍 방식으로 스킬을 검색하고 활성화할 수 있습니다:

스킬 로드 방식

스킬은 점진적 공개를 사용합니다 — 각 단계에서 필요한 것만 로드합니다: 일반적인 에이전트 실행 중(skills=["./skills"]로 디렉터리 경로 전달 시) 스킬은 자동으로 검색되고 활성화됩니다. 점진적 로딩은 프로그래밍 API를 사용할 때만 관련됩니다.

스킬 vs 지식

스킬과 지식 모두 에이전트의 프롬프트를 수정하지만, 서로 다른 목적을 가지고 있습니다: 경험 법칙: 에이전트가 프로세스를 따라야 하면 스킬을 사용하세요. 에이전트가 데이터를 참조해야 하면 지식을 사용하세요.

자주 묻는 질문

사용 사례에 따라 다릅니다. 스킬과 도구는 독립적입니다 — 둘 중 하나, 둘 다, 또는 아무것도 사용하지 않을 수 있습니다.
  • 스킬만: 에이전트가 전문성은 필요하지만 외부 액션이 필요 없을 때 (예: 스타일 가이드라인으로 작성)
  • 도구만: 에이전트가 액션은 필요하지만 특별한 방법론이 필요 없을 때 (예: 간단한 웹 검색)
  • 둘 다: 에이전트가 전문성 AND 액션이 필요할 때 (예: 특정 체크리스트로 보안 감사 AND 코드 스캔 기능)
아니요. SKILL.md의 allowed-tools 필드는 실험적 메타데이터일 뿐 — 도구를 프로비저닝하거나 주입하지 않습니다. 항상 tools=[], mcps=[] 또는 apps=[]를 통해 별도로 도구를 설정해야 합니다.
에이전트 레벨 스킬이 우선합니다. 스킬은 이름으로 중복 제거됩니다 — 에이전트의 스킬이 먼저 처리되므로, 같은 스킬 이름이 양쪽 레벨에 나타나면 에이전트의 버전이 사용됩니다.
50,000자에서 소프트 경고가 있지만 하드 리밋은 없습니다. 최상의 결과를 위해 스킬을 집중적이고 간결하게 유지하세요 — 너무 큰 프롬프트 주입은 에이전트의 주의를 분산시킬 수 있습니다.