Примечание.
Второй пилот SDK в настоящее время находится в Technical Preview. Функциональность и доступность могут меняться.
Навыки — это повторно используемые модули подсказок, расширяющие Copilotвозможности . Загружайте навыки из каталогов, чтобы предоставить Copilot специализированные способности для конкретных областей или рабочих процессов.
Навык — это именованный каталог, содержащий SKILL.md файл — документ markdown, который предоставляет инструкции для Copilot. При загрузке содержимое навыка вводится в контекст сессии.
Навыки позволяют вам:
- Экспертиза в области упаковки в повторно используемые модули
- Делитесь специализированными поведением между проектами
- Организовывать сложные конфигурации агентов
- Включать/отключать возможности за сессию
Навыки загрузки
При создании сессии указывайте каталоги, содержащие навыки:
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 — это документ markdown с опциональной YAML-фронтматерью:
---
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[] | Навыки для отключения |
| Python | skill_directories | list[str] | Каталоги для загрузки навыков |
| Python | disabled_skills | list[str] | Навыки для отключения |
| Вперед | SkillDirectories | []string | Каталоги для загрузки навыков |
| Вперед | DisabledSkills | []string | Навыки для отключения |
| .NET | SkillDirectories | List<string> | Каталоги для загрузки навыков |
| .NET | DisabledSkills | List<string> | Навыки для отключения |
Лучшие практики
-
**Организовывать по домену** — объединять связанные навыки (например, `skills/security/`, `skills/testing/`) -
**Используйте frontmatter** — включите `name` и `description` в YAML frontmatter для ясности -
**Зависимости от документов** — Обратите внимание на любые инструменты или 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
Навыки не загружаются
-
**Существует путь Check** — проверьте правильный путь в каталоге навыков и содержит подкаталоги с `SKILL.md` файлами. -
**Проверьте права** — убедитесь, что SDK может читать каталог. -
**Проверьте SKILL.md формат** — убедитесь, что markdown хорошо сформирован и любой фронтмат YAML использует корректный синтаксис. -
**Включите логирование отладки** — установите `logLevel: "debug"` просмотр логов загрузки навыков.
Конфликты навыков
Если несколько навыков дают противоречивые инструкции:
- Используйте
disabledSkillsдля исключения конфликтующих навыков - Реорганизуйте каталоги навыков, чтобы избежать пересечений