스킬은 ChatGPT와 Codex에 반복 가능한 워크플로우에서 MCP 서버의 도구를 사용하는 방법을 알려 줌으로써 서버를 보완합니다. 실시간 데이터 제공, 인증, 권한 부여, 작업 실행 제어에는 서버를 사용하세요. 스킬에는 도구 호출 순서, 판단이 필요한 단계, 출력 요구 사항, 예시, 템플릿 등 재사용할 수 있는 지침을 담으세요.
플러그인에는 스킬 하나 또는 서로 관련된 여러 스킬을 포함할 수 있습니다. 각 스킬은 사용 사례 목록에서 명확히 식별할 수 있는 사용자 목표 하나에 집중하도록 구성하세요. 워크플로우에 스킬 패키지에 포함된 지침과 리소스만 필요하다면 MCP 서버 없이도 스킬을 사용할 수 있습니다.
스킬 생성하기
가장 빠르게 시작하는 방법은 기본 제공 스킬 생성기를 사용하는 것입니다. 사용자가 달성하려는 목표와 그 목표를 달성하는 데 필요한 MCP 도구를 설명하세요.
@skill-creator tabletop-dice라는 스킬을 만들어 주세요. 이 스킬은 3d6 같은 주사위 표기법을 해석하고,
주사위 하나당 roll_dice를 한 번씩 호출한 뒤 각 주사위에서 나온 눈과 전체 합계를 알려 줘야 합니다.
Codex에서는 $skill-creator로 같은 생성기를 호출하세요.
파일을 직접 만들어도 됩니다. 스킬마다 별도의 디렉터리가 있어야 하며, 각 디렉터리에는 SKILL.md 파일이 필요합니다.
-
skills
-
tabletop-dice
- SKILL.md 필수 지침 및 메타데이터
- references 참고 문서(선택 사항)
- scripts 실행 코드(선택 사항)
- assets 템플릿 및 리소스(선택 사항)
-
-
SKILL.md 작성하기
파일 첫머리에 이름과 설명을 적고 그 아래에 지침을 작성하세요.
---
name: tabletop-dice
description: Roll one or more dice for tabletop games and report each result and the total.
---
사용자가 주사위를 굴려 달라고 요청할 때 이 스킬을 사용하세요.
1. `NdS` 형식의 요청은 S면체 주사위 N개를 굴려 달라는 뜻으로 해석하세요. 예를 들어 `3d6`은 육면체 주사위 세 개를 뜻합니다.
2. 요청된 주사위 하나당 `roll_dice`를 한 번씩 호출하고, 호출할 때마다 `sides`에 S를 전달하세요.
3. 각 도구 호출의 결과를 호출 순서대로 알려 주세요.
4. 사용자가 주사위를 여러 개 굴려 달라고 요청하면 각 결과를 더해 합계도 알려 주세요.
사용자가 명시적으로 요청하지 않는 한 결과를 지어내거나 다른 값으로 바꾸거나 주사위를 다시 굴리지 마세요.
모델은 설명을 바탕으로 언제 해당 스킬의 사용을 고려할지 판단합니다. 설명에는 워크플로우의 내용과 실행 조건을 명시하세요. 세부 절차와 출력 형식, 안전 지침은 본문에 작성하세요.
워크플로우 범위 정하기
각 스킬을 하나 이상의 사용 사례와 연결하세요. 지침에는 다음 사항을 명확히 밝혀야 합니다.
- 워크플로우에 필요한 입력
- 모델이 따라야 할 단계
- 사용자에게 제공해야 할 출력
- 모델이 추론해서는 안 되는 사실
- 추가 질문을 하거나, 진행을 중단하거나, 요청을 거절해야 하는 조건
- 모델이 참고해야 할 보조 파일
서로 연관성이 낮은 지침을 한데 모으기보다는 하나의 목표에 집중하는 스킬을 만드세요. 실행 조건, 입력 또는 성공 기준이 다르면 워크플로우를 분리하세요.
지침 준수 방식 검토하기
GPT-6 Astra용 스킬을 작성하거나 가져올 때는 모델의 지침 준수 방식에 관한 가이드를 확인하세요. 스킬과 보조 파일에 불분명하거나 서로 충돌하는 지침이 있는지 점검하고, 사용자가 명시한 지침이 스킬의 지침보다 우선한다는 점을 분명히 하세요.
보조 리소스 추가하기
SKILL.md는 간결하게 작성하고 세부 자료는 같은 스킬 디렉터리에 두세요.
references/에는 정책, 스키마, 예시, 배경 자료를 두세요.assets/에는 워크플로우에서 복사하거나 변환할 템플릿 또는 파일을 두세요.scripts/는 워크플로우에 결정론적 연산이나 파일 처리가 필요할 때 사용하세요.
SKILL.md에서 보조 파일을 참조하고 각 파일을 언제 불러오거나 실행해야 하는지 설명하세요. 지침과 기존 도구만으로 작업을 안정적으로 완료할 수 있다면 스크립트를 추가하지 마세요.
스킬을 MCP 도구에 연결하기
스킬은 플러그인의 MCP 서버가 제공하는 도구를 모델이 어떻게 사용해야 하는지 안내할 수 있습니다. 워크플로우 지침은 스킬에 작성하고, 실시간 데이터 제공, 권한 부여, 작업 실행 제어에는 서버를 사용하세요.
스킬에 MCP 서버가 필요하다면 agents/openai.yaml에 종속성을 선언하세요.
dependencies:
tools:
- type: "mcp"
value: "dice-roller"
description: "Roll an N-sided die"
transport: "streamable_http"
url: "https://tinymcp.dev/api/moldy-aloof-zettabyte/mcp"
종속성을 선언하면 필요한 도구를 사용할 수 있습니다. 워크플로우 지침은 별도로 명확히 작성해야 합니다. 어떤 도구를 어떤 순서로 사용하고, 결과가 누락되거나 모호할 때는 어떻게 처리해야 하는지 모델에 알려 주세요.
스킬 테스트하기
사용 사례 목록에서 다음 유형의 대표적인 요청을 골라 테스트하세요.
- 스킬을 활성화해야 하는 직접적인 요청
- 같은 목표를 간접적으로 표현한 요청
- 추가 질문이 필요한 불완전한 입력
- 스킬을 활성화해서는 안 되는 요청
- 스킬이 정보를 지어내거나 지원되지 않는 작업을 수행해서는 안 되는 경계 사례
스킬이 적절한 상황에서 활성화되는지, 출력 품질은 어떤지 함께 확인하세요. 스킬이 잘못된 상황에서 활성화된다면 설명을 다듬으세요. 올바른 워크플로우를 선택했는데도 결과가 일관되지 않다면 지침을 다듬으세요.
스킬 패키징하기
플러그인 매니페스트에 스킬 디렉터리 경로를 지정하세요.
{
"name": "dice-roller",
"version": "1.0.0",
"description": "Roll dice for tabletop games",
"skills": "./skills/",
"apps": "./.app.json"
}
전체 매니페스트와 MCP 서버 매핑, 로컬 테스트, 배포 절차는 플러그인 패키징하기에서 확인하세요.