Skip to main content

Создание агентских навыков для GitHub Copilot CLI

Модифицировать поведение и возможности Copilot при выполнении конкретных задач.

Навыки агента — это папки с инструкциями, скриптами и ресурсами, которые Copilot может загружать при необходимости для повышения эффективности в специализированных задачах. Дополнительные сведения см. в разделе О навыках работы агентом.

Создание и добавление навыка

Чтобы создать навык агента, вы пишете SKILL.md файл и, по желанию, другие ресурсы, такие как дополнительные файлы Markdown или скрипты, на которые вы ссылаетесь в SKILL.md инструкциях.

Чтобы добавить навык, вы сохраняете файл SKILL.md и все вспомогательные ресурсы в место, где Copilot знаете, что нужно искать навыки. Это может быть как в репозитории, так и в вашем домашнем каталоге.

  1. Создайте skills каталог в одном из поддерживаемых источников, чтобы хранить свой навык и любые другие навыки, которые вы захотите создать в будущем.

    Для проектных навыков, специфичных для одного репозитория, создайте и используйте .github/skillsкаталог , .claude/skillsили .agents/skills в вашем репозитории.

    Для личных навыков, которые используются между проектами, создайте и используйте ~/.copilot/skillsкаталог ~/.claude/skills, или ~/.agents/skills , в вашем домашнем каталоге.

  2. Создайте подкаталог для вашего нового навыка. У каждого навыка должна быть своя собственная папка (например, .github/skills/webapp-testing).

    Названия подкаталогов навыков должны быть строчными и использовать дефисы для пробелов.

  3. В подкаталоге навыков создайте SKILL.md файл с инструкциями к вашему навыку.

    Внимание

    Файлы навыков должны быть названы SKILL.md.

           `SKILL.md` файлы — это файлы Markdown с YAML frontmatter. В самом простом виде они включают в себя:
    
    • Титульный лист YAML * имя (обязательно): уникальный идентификатор навыка. Это, должно быть, строчная буква, с дефисами для пробелов. Обычно это совпадает с названием каталога навыка. * Описание (обязательно): Описание того, что делает навык и когда Copilot его следует использовать. * лицензия (по желанию): описание лицензии, применяемой к данному навыку.
    • Текст Markdown с инструкциями, примерами и рекомендациями, которым Copilot следует следовать.
  4. По желанию добавьте скрипты, примеры или другие ресурсы в каталог ваших навыков.

    Для получения дополнительной информации см. раздел «Включение навыка для запуска скрипта».

Пример файла SKILL.md

Для проектного навыка этот файл будет находиться в .github/skills/github-actions-failure-debugging каталоге вашего репозитория.

Для личного навыка этот файл должен находиться в каталоге ~/.copilot/skills/github-actions-failure-debugging .

Markdown
---
name: github-actions-failure-debugging
description: Guide for debugging failing GitHub Actions workflows. Use this when asked to debug failing GitHub Actions workflows.
---

To debug failing GitHub Actions workflows in a pull request, follow this process, using tools provided from the GitHub MCP Server:

1. Use the `list_workflow_runs` tool to look up recent workflow runs for the pull request and their status
2. Use the `summarize_job_log_failures` tool to get an AI summary of the logs for failed jobs, to understand what went wrong without filling your context windows with thousands of lines of logs
3. If you still need more information, use the `get_job_logs` or `get_workflow_run_logs` tool to get the full, detailed failure logs
4. Try to reproduce the failure yourself in your own environment.
5. Fix the failing build. If you were able to reproduce the failure yourself, make sure it is fixed before committing your changes.

Включение навыка для запуска скрипта

При вызове навыка Copilot автоматически находит все файлы в каталоге навыка и делает их доступными вместе с инструкциями навыка. Это значит, что вы можете включать скрипты или другие ресурсы в каталог навыков и ссылаться на них в инструкции SKILL.md .

Чтобы создать навык, который запускает скрипт:

  1.        **Добавьте скрипт в каталог навыков.** Например, навык преобразования изображений SVG в PNG может иметь следующую структуру.
    
    .github/skills/image-convert/
    ├── SKILL.md
    └── convert-svg-to-png.sh
    
  2.        **По желанию заранее одобрить инструменты, необходимые навыку.** В вашем `SKILL.md` фронтматтере вы можете использовать `allowed-tools` поле для перечисления инструментов Copilot , которые вы можете использовать, без каждого подтверждения. Если инструмент отсутствует в `allowed-tools` поле, Copilot перед использованием вас запросит разрешение.
    
    ---
    name: image-convert
    description: Converts SVG images to PNG format. Use when asked to convert SVG files.
    allowed-tools: shell
    ---
    

    Предупреждение

    Одобряйте инструменты OR shell``bash только если вы изучили этот навык и все ссылающиеся скрипты и полностью доверяете их источнику. Предварительное одобрение shell или bash удаление этапа подтверждения для выполнения терминальных команд может позволить навыкам, управляемым злоумышленниками, или инъекциям подсказок выполнять произвольные команды в вашей среде. Если сомневаетесь, опустите shell и bash от allowed-toolsCopilot , чтобы запросить ваше явное подтверждение перед запуском команд терминала.

  3.        **Напишите инструкции, которые объясняют Copilot , как использовать скрипт.** В теле Markdown `SKILL.md`опишите, когда и как запускать скрипт.
    
    When asked to convert an SVG to PNG, run the `convert-svg-to-png.sh` script
    from this skill's base directory, passing the input SVG file path as the
    first argument.
    

Использование навыков агента

При выполнении задач Copilot решает, когда использовать ваши навыки, исходя из вашего запроса и описания навыка.

Когда Copilot решает использовать навык, файл SKILL.md будет введён в контекст агента, давая агенту доступ к вашим инструкциям. Затем он может следовать этим инструкциям и использовать любые скрипты или примеры, которые вы могли включить в каталог навыка.

Чтобы сказать Copilot использовать конкретный навык, включите название навыка в подсказку, перед которым следует косой чертой вперёд. Например, если у вас есть навык под названием «frontend-design», вы можете использовать подсказку, например:

Use the /frontend-design skill to create a responsive navigation bar in React.

Командование навыками в CLI

  •         **Перечислите доступные навыки:** используйте команду `/skills list` или строку:
    
    What skills do you have?
    
  •         **Включите или отключите определённые навыки:** используйте команду `/skills` , а затем используйте клавиши вверх и вниз на клавиатуре и пробел, чтобы включить или выключить навыки.
    
  •         **Узнайте больше о навыке** (включая его местоположение): используйте команду `/skills info`.
    
  •         **Добавьте место навыков:** чтобы добавить альтернативное место для хранения навыков, используйте команду `/skills add`.
    
  •         **Перезарядка навыков:** если вы добавили навык во время сессии CLI, вы можете добавить его с помощью команды `/skills reload` , чтобы не перезапускать CLI для использования.
    
  •         **Удалить навыки:** чтобы удалить навык, который вы добавили напрямую — не через плагин — используйте команду `/skills remove SKILL-DIRECTORY`. Чтобы удалить навыки, добавленные в плагин, нужно управлять самим плагином. Используйте `info` подкоманду, чтобы узнать, из какого плагина взят навык.
    

Навыки против пользовательских инструкций

Вы можете использовать как навыки, так и пользовательские инструкции, чтобы обучить Copilot работе в вашем репозитории и выполнении конкретных задач.

Мы рекомендуем использовать пользовательские инструкции для простых инструкций, относящихся почти к каждой задаче (например, информация о стандартах кодирования вашего репозитория), а также навыки более детальных инструкций, которые Copilot должен получить доступ только по актуальности.

Чтобы узнать больше о пользовательских инструкциях репозитория, смотрите Добавление пользовательских инструкций репозитория для GitHub Copilot.

Чтобы узнать больше о том, чем навыки отличаются от других функций кастомизации, см. Сравнение GitHub Copilot особенностей настройки CLI.