참고
코필로트 SDK가 현재 기술 미리 보기에 있습니다. 기능 및 가용성은 변경될 수 있습니다.
스킬은 Copilot의 기능을 확장하는 재사용 가능한 프롬프트 모듈입니다. 디렉터리에서 기술을 로드하여 특정 도메인 또는 워크플로에 대한 특수한 기능을 제공합니다 Copilot .
기술은 SKILL.md 파일을 포함하는 명명된 디렉터리이며, Copilot에 지침을 제공하는 Markdown 문서입니다. 로드되면 기술의 콘텐츠가 세션 컨텍스트에 삽입됩니다.
기술을 통해 다음을 수행할 수 있습니다.
- 재사용 가능한 모듈로 도메인 전문 지식 패키지
- 프로젝트 간에 특수한 동작 공유
- 복잡한 에이전트 구성 정리
- 세션당 기능 사용/사용 안 함
기술 불러오기
세션을 만들 때 기술을 포함하는 디렉터리를 지정합니다.
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
const session = await client.createSession({
model: "gpt-4.1",
skillDirectories: [
"./skills/code-review",
"./skills/documentation",
],
onPermissionRequest: async () => ({ kind: "approved" }),
});
// Copilot now has access to skills in those directories
await session.sendAndWait({ prompt: "Review this code for security issues" });
Python, Go 및 .NET의 예제는 리포지토리를github/copilot-sdk 참조하세요.
기능 비활성화
다른 사람을 활성 상태로 유지하면서 특정 기술을 사용하지 않도록 설정합니다.
const session = await client.createSession({
skillDirectories: ["./skills"],
disabledSkills: ["experimental-feature", "deprecated-tool"],
});
Python, Go 및 .NET의 예제는 리포지토리를github/copilot-sdk 참조하세요.
기술 디렉터리 구조
각 기술은 파일을 포함하는 명명된 하위 디렉터리입니다.SKILL.md
skills/
├── code-review/
│ └── SKILL.md
└── documentation/
└── SKILL.md
이 skillDirectories 옵션은 부모 디렉터리(예: ./skills)를 가리킵니다. CLI는 즉시 하위 디렉터리의 모든 SKILL.md 파일을 검색합니다.
SKILL.md 형식
`SKILL.md` 파일은 선택적 YAML 프런트매터가 있는 markdown 문서입니다.
---
name: code-review
description: Specialized code review capabilities
---
# Code Review Guidelines
When reviewing code, always check for:
1. **Security vulnerabilities**—SQL injection, XSS, etc.
2. **Performance issues**—N+1 queries, memory leaks
3. **Code style**—Consistent formatting, naming conventions
4. **Test coverage**—Are critical paths tested?
Provide specific line-number references and suggested fixes.
프런트매터 필드:
*
**
name
**- 스킬의 식별자입니다(disabledSkills를 사용하여 선택적으로 비활성화할 수 있음). 생략하면 디렉터리 이름이 사용됩니다.
*
**
description
**- 기술이 수행하는 일에 대한 간단한 설명입니다.
markdown 본문에는 기술이 로드될 때 세션 컨텍스트에 삽입되는 지침이 포함되어 있습니다.
구성 옵션
SessionConfig 기술 필드
호출 createSession()할 때 세션 구성 개체에 다음 기술 관련 필드를 전달합니다.
| 언어 | 분야 | 유형 | 설명 |
|---|---|---|---|
| Node.JS | skillDirectories | string[] | 기술을 로드하기 위한 디렉터리 |
| Node.JS | disabledSkills | string[] | 사용하지 않도록 설정하는 기술 |
| 파이썬 | skill_directories | list[str] | 기술을 로드하기 위한 디렉터리 |
| 파이썬 | disabled_skills | list[str] | 사용하지 않도록 설정하는 기술 |
| 이동 | SkillDirectories | []string | 기술을 로드하기 위한 디렉터리 |
| 이동 | DisabledSkills | []string | 사용하지 않도록 설정하는 기술 |
| .NET | SkillDirectories | List<string> | 기술을 로드하기 위한 디렉터리 |
| .NET | DisabledSkills | List<string> | 사용하지 않도록 설정하는 기술 |
모범 사례
-
**도메인별로 구성** - 관련 기술을 함께 그룹화(예: `skills/security/``skills/testing/` -
**프런트매터 사용** - 명확성을 위해 YAML 프런트매터 포함 `name` 및 `description` 포함 -
**문서 종속성** - 기술에 필요한 도구 또는 MCP 서버에 유의하세요. -
**격리된 기술 테스트** - 기술을 결합하기 전에 기술 작동 확인 -
**상대 경로 사용** - 환경에서 기술을 이식 가능한 상태로 유지
다른 기능과 결합
사용자 지정 에이전트를 사용하는 기술
기술은 사용자 지정 에이전트와 함께 작동합니다.
const session = await client.createSession({
skillDirectories: ["./skills/security"],
customAgents: [{
name: "security-auditor",
description: "Security-focused code reviewer",
prompt: "Focus on OWASP Top 10 vulnerabilities",
}],
onPermissionRequest: async () => ({ kind: "approved" }),
});
MCP 서버를 사용하여 기술
기술은 MCP 서버 기능을 보완할 수 있습니다.
const session = await client.createSession({
skillDirectories: ["./skills/database"],
mcpServers: {
postgres: {
type: "local",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-postgres"],
tools: ["*"],
},
},
onPermissionRequest: async () => ({ kind: "approved" }),
});
Troubleshooting
기술이 로드되지 않음
-
**경로 확인** - 기술 디렉터리 경로가 올바르고 파일이 있는 하위 디렉터리가 포함되어 있는지 확인합니다 `SKILL.md` . -
**사용 권한 확인** - SDK가 디렉터리를 읽을 수 있는지 확인합니다. -
**SKILL.md 형식 확인** - markdown이 올바른 형식이고 YAML 프런트매터가 유효한 구문을 사용하는지 확인합니다. -
**디버그 로깅 사용** - 스킬 로드 로그를 보려면 `logLevel: "debug"`을 설정합니다.
기술 충돌
여러 기술이 충돌하는 지침을 제공하는 경우:
*
disabledSkills를 사용하여 충돌하는 기술을 제외하십시오.
- 겹치지 않도록 기술 디렉터리 다시 구성