OpenClaw Skill 제작 및 리뷰 가이드
커스텀 OpenClaw Skill을 만들고, 커뮤니티 Skill의 품질과 보안을 검증하며, 복잡한 작업을 재사용 가능한 Skill 체인으로 분해하는 방법을 알아봅니다.
최종 업데이트: 2026-03-31
무엇을 구축하나요
Skill 개발 및 리뷰 워크플로우를 구성합니다:
- 커스텀 Skill 제작 — 특정 요구사항에 맞는 새로운 OpenClaw Skill을 만듭니다
- 커뮤니티 Skill 리뷰 — ClawHub의 Skill을 품질, 보안, 안정성 측면에서 검증합니다
- 복잡한 작업 분해 — 다단계 워크플로우를 재사용 가능한 Skill 체인으로 분해합니다
- 반복적 개선 — AI 기반 피드백으로 Skill을 테스트, 디버깅, 개선합니다
이 가이드를 완료하면 프로덕션 수준의 Skill을 만들고, 설치 전에 모든 Skill을 자신 있게 평가할 수 있습니다.
커스텀 Skill을 만들어야 하는 이유
ClawHub에는 수백 개의 커뮤니티 Skill이 있지만, 때로는 특화된 것이 필요합니다:
- 내부 도구 — 회사의 API, 대시보드, 워크플로우는 공개 Skill로 커버되지 않습니다
- 커스텀 연동 — 니치 도구나 독자적인 시스템에 맞춤 커넥터가 필요합니다
- 워크플로우 최적화 — 여러 Skill을 하나의 간소화된 Skill로 결합하면 시간을 절약할 수 있습니다
- 품질 관리 — 직접 만든 Skill은 정확히 무엇을 하는지 파악할 수 있습니다
- 경쟁 우위 — 경쟁사에 없는 고유한 자동화 워크플로우를 구축합니다
설치 전에 Skill을 리뷰해야 하는 이유
ClawHub의 모든 Skill이 프로덕션 수준은 아닙니다. 커뮤니티 Skill을 설치하기 전에 확인하세요:
- 보안 — Skill이 파일 시스템, 네트워크, 자격 증명에 예상치 못한 방식으로 접근할 수 있습니다
- 품질 — 일부 Skill은 프로토타입이나 개념 증명 수준이며 프로덕션 등급이 아닙니다
- 유지보수 — 방치된 Skill은 최신 OpenClaw 버전에서 동작하지 않을 수 있습니다
- 의존성 — 외부 서비스나 API 키가 필요할 수 있습니다
- 권한 — Skill이 요청하는 접근 권한을 정확히 이해한 후 승인하세요
사전 준비
- OpenClaw 설치 및 설정 완료 (시작 가이드)
- YAML 및 기본 스크립팅에 대한 이해
- Node.js 18+
1단계: Skill 개발 도구 설치
# 1. Skill 빌더 — 잘 구성된 Skill 제작을 안내합니다 npx clawhub@latest install skill-builder # 2. Skill 리뷰어 — 품질 및 구조 분석 npx clawhub@latest install skill-reviewer # 3. 작업 분해 도구 — 복잡한 작업을 Skill 체인으로 분해합니다 npx clawhub@latest install task-decomposer
2단계: 첫 번째 커스텀 Skill 만들기
Skill 구조 이해
OpenClaw Skill은 SKILL.md 파일을 중심으로 구성됩니다 — AI 에이전트에게 작업 수행 방법을 알려주는 핵심 지침 문서입니다. Skill Builder Skill이 모범 사례에 따라 잘 구성된 Skill을 만들도록 안내합니다.
일반적인 Skill 구조는 다음과 같습니다:
my-custom-skill/ ├── SKILL.md # 에이전트를 위한 핵심 지침 ├── [topic].md # 필요 시 로드되는 상세 파일 ├── references/ # 상세 문서, 예제 └── scripts/ # 선택적 자동화 스크립트
SKILL.md 작성
SKILL.md는 Skill의 핵심입니다. Skill Builder Skill이 설치된 상태에서 OpenClaw에게 작성을 요청하세요:
커스텀 API에서 제품을 검색하는 Skill을 만들어 줘. API는 https://api.example.com/search이고 API 키가 필요해.
Skill Builder가 다음 사항을 안내합니다:
- 모듈식 구조 — 메인 SKILL.md는 핵심에 집중하고 상세 주제는 별도 파일로 분리
- 점진적 공개 — 에이전트가 필요할 때만 상세 파일을 로드
- 토큰 효율적 설계 — 컨텍스트 윈도우 사용을 최소화
- 명확한 입출력 — Skill이 기대하는 입력과 반환하는 출력을 정의
SKILL.md 예시
# Product Search Skill
제품 카탈로그 API에서 쿼리에 맞는 항목을 검색합니다.
## Configuration
- `API_URL`: 제품 API의 기본 URL
- `API_KEY`: 인증용 API 키 (환경 변수로 설정)
## Usage
사용자가 제품 검색을 요청하면 API를 사용합니다:
GET {API_URL}/search?q={query}
Authorization: Bearer {API_KEY}
## Response Format
결과를 각 제품의 이름, 가격, URL이 포함된 구조화된 목록으로 반환합니다.
Skill 테스트
Skill을 로컬에 설치하고 테스트합니다:
clawhub install ./my-custom-skill
OpenClaw에서 사용해 보며 예상대로 작동하는지 확인합니다.
3단계: 커뮤니티 Skill 리뷰
ClawHub의 Skill을 설치하기 전에 리뷰합니다:
clawhub run skill-reviewer --skill "clawhub-username/skill-name"
리뷰어가 Skill의 SKILL.md와 지원 파일을 분석하여 다음을 확인합니다:
=== Skill Review: awesome-slack-bot === ## 구조 평가 ✓ SKILL.md가 명확한 섹션으로 잘 구성되어 있습니다 ✓ 설명이 구체적이고 실행 가능합니다 ✓ 입출력 기대사항이 문서화되어 있습니다 ✓ 사용 예시가 포함되어 있습니다 ⚠ 온디맨드 상세 파일이 없음 — 모든 내용이 하나의 큰 SKILL.md에 포함 ## 품질 점수 ✓ 프론트매터가 완전합니다 (name, description, version) ✓ 지침이 토큰 효율적 — 점진적 공개 사용 ✓ 에러 처리 안내가 포함되어 있습니다 ⚠ 속도 제한 안내 없음 — 대량 사용 시 API 한도에 도달할 수 있습니다 ## 설명 품질: 8.5/10 권장사항: 잘 구성된 Skill, 바로 사용 가능
확인 사항
위험 신호
- Skill이 불필요한 권한을 요청합니다 (예: 검색 Skill이 파일 쓰기 권한을 요청)
- 테스트나 문서가 없습니다
- 마지막 업데이트가 6개월 이상 전입니다
- 소스 코드에 하드코딩된 URL이나 자격 증명이 있습니다
- 난독화되거나 축소된 코드입니다
긍정 신호
- 실제 사용과 일치하는 명확한 권한 선언
- 포괄적인 테스트 커버리지
- 활발한 유지보수와 커뮤니티 참여
- 투명한 소스 코드
- 잘 문서화된 설정
4단계: 복잡한 작업 분해
Task Decomposer Skill이 복잡한 요청을 실행 가능한 단계로 분해합니다. OpenClaw에게 요청하세요:
이 작업을 분해해 줘: 매일 경쟁사 가격 페이지를 모니터링하고 가격이 변경되면 알림 보내기
출력 예시:
=== 작업 분해 === 작업: 매일 경쟁사 가격 페이지를 모니터링하고 가격 변경 시 알림 ## Skill 체인 1. **browser-use** — 각 경쟁사의 가격 페이지로 이동 입력: 경쟁사 URL 목록 출력: 페이지 콘텐츠 / 스크린샷 2. **web-scraper** — 각 페이지에서 가격 데이터 추출 입력: 페이지 콘텐츠 출력: 구조화된 가격 데이터 (JSON) 3. **file_read** — 비교를 위해 전날 가격 데이터 로드 입력: 저장된 데이터 파일 경로 출력: 이전 가격 데이터 4. **summarize** — 현재 vs. 이전 가격을 비교하고 변경 사항 식별 입력: 현재 데이터 + 이전 데이터 출력: 변경 보고서 5. **telegram** (또는 email) — 변경이 감지되면 알림 전송 입력: 변경 보고서 출력: 알림 전송 완료 ## 필요한 Skills - browser-use (설치됨: 예) - web-scraper (설치됨: 예) - summarize (설치됨: 예) - telegram (설치됨: 아니오 — 설치: npx clawhub@latest install telegram) ## 예상 설정 시간: 20분
분해에서 워크플로우로
분해 결과를 재사용 가능한 워크플로우로 전환합니다:
# .openclaw/price-monitor.yml
name: competitor-price-monitor
schedule: "0 9 * * *"
steps:
- skill: browser-use
action: navigate
urls:
- "https://competitor1.com/pricing"
- "https://competitor2.com/pricing"
- skill: web-scraper
action: extract
format: json
target: "pricing tables"
- skill: summarize
action: compare
current: "{{step_2.output}}"
previous: "./data/last-pricing.json"
- skill: telegram
action: send
condition: "changes_detected"
message: "{{step_3.output}}"
- action: save
data: "{{step_2.output}}"
path: "./data/last-pricing.json"
5단계: Skill 배포
Skill이 준비되면 ClawHub에 배포합니다:
clawhub publish my-custom-skill
배포 전 확인 사항:
- SKILL.md가 완전하고 잘 구성되어 있는지
- 설명이 구체적이고 실행 가능한지
- 파일에 하드코딩된 시크릿이 없는지
- 버전 번호가 semver를 따르는지
문제 해결
Skill이 예상대로 동작하지 않는 경우
- SKILL.md 지침이 명확하고 구체적인지 확인합니다
- 다양한 프롬프트로 테스트하여 에이전트가 Skill을 올바르게 해석하는지 확인합니다
- Skill Builder 가이드라인에서 일반적인 지침 작성 실수를 확인합니다
Skill 실행 시 "Permission denied"
- Skill이 접근하는 항목을 확인합니다 — 파일, 네트워크, 자격 증명
- 설치 시 필요한 권한을 부여했는지 확인합니다
- 일부 권한은 최초 실행 시 명시적인 사용자 승인이 필요합니다
Skill 리뷰어의 오탐
- 리뷰어는 보수적입니다 — 우려가 될 수 있는 항목은 모두 플래그합니다
- 구체적인 경고를 검토하고 해당 사용 사례에 적용되는지 판단합니다
- 모든 경고가 실제 문제는 아닙니다 — 상황에 맞게 판단하세요
배포한 Skill이 ClawHub에 표시되지 않는 경우
- 배포 후 반영되는 데 몇 분이 걸릴 수 있습니다
- ClawHub 계정이 인증되었는지 확인합니다
- Skill 이름이 기존 Skill과 충돌하지 않는지 확인합니다
자주 묻는 질문
아닙니다. 대부분의 OpenClaw Skill은 `SKILL.md` 파일을 중심으로 구축됩니다 — AI 에이전트에게 작업 수행 방법을 알려주는 Markdown 문서입니다. 명확한 서면 지침과 API 문서만으로도 효과적인 Skill을 만들 수 있습니다. 더 복잡한 자동화의 경우 SKILL.md와 함께 스크립트(Python, Bash 등)를 포함할 수 있지만 이는 선택 사항입니다.
가능합니다. Skill은 배포 없이 로컬에서 설치할 수 있습니다. Skill 디렉터리를 프로젝트나 프라이빗 저장소에 보관하고 로컬 경로로 설치하세요: `clawhub install ./my-custom-skill`. 이는 공개되어서는 안 되는 사내 연동에서 흔히 사용됩니다.
Skill 메타데이터에서 버전을 올리고, README의 변경 로그를 업데이트한 후 `clawhub publish`를 다시 실행합니다. ClawHub가 버전 관리를 처리하며, 이전 버전 사용자는 `clawhub update`를 실행하지 않는 한 자동으로 업데이트되지 않습니다.
최소 권한 원칙을 따르세요. Skill이 실제로 필요한 권한만 요청합니다. 일반적인 권한 조합: 네트워크 전용(API 연동), 네트워크 + file_read(데이터 처리), 네트워크 + credentials(인증된 API). Skill이 디스크에 출력을 저장해야 하는 경우가 아니면 file_write 요청을 피하세요.
SKILL.md에 속도 제한 안내를 포함하세요 — API 호출 시 지수 백오프를 구현하도록 에이전트에게 지시합니다. 속도 제한이 있는 API와 상호작용하는 Skill의 경우 README에 제한 사항을 문서화하고, 포함된 스크립트에 재시도 로직을 넣으세요.
가능합니다 — 이것은 가장 강력한 패턴 중 하나입니다. YAML 워크플로우 정의를 사용하여 Skill을 체이닝하거나, Task Decomposer를 사용하여 적합한 Skill 체인을 식별할 수 있습니다. 결과 워크플로우를 내부적으로 다른 Skill에 위임하는 새 Skill로 저장할 수 있습니다. 대부분의 고급 자동화가 이런 방식으로 구축됩니다.