Skip to main content

Сравнение особенностей настройки CLI на GitHub Copilot

Узнайте о различных способах настройки Copilot: что они делают и когда их использовать.

Кто может использовать эту функцию?

GitHub Copilot CLI доступен со всеми планами Copilot. Если вы получаете Copilot из организации, политика Интерфейс командной строки Copilot должна быть включена в параметрах организации.

Введение

Интерфейс командной строки Copilot — это терминал-агент ИИ, который может отвечать на вопросы, планировать работу и выполнять задачи от вашего имени. Он разработан так, чтобы быть высоко расширяемым, и существует множество способов настраивать его поведение и расширять возможности.

В этой статье объясняется разница между:

  •         **Пользовательские инструкции**
    

    Они указывают , соответствует вашим стандартам кода. Узнайте больше.

  •         **Навыки**
    

    Они указывают Copilot , как справляться с определённым типом задачи. Например, использовать определённый инструмент при работе над определённым типом задачи. Узнайте больше.

  •         **Инструменты**
    
    
            **Они дают способности**. Например, для поиска и изменения файлов или взаимодействия с частями GitHub. 
            [Узнайте больше](#tools).
    
  •         **Серверы MCP**
    
    
            **Они добавляют наборы инструментов**, позволяющих Copilot взаимодействовать с внешними сервисами. 
            [Узнайте больше](#mcp-servers).
    
  •         **Обработчики**
    

    Они позволяют запускать собственную логику в определённые моменты жизненного цикла. Например, вы можете запускать определённый скрипт каждый раз, когда сессия CLI начинается или заканчивается. Узнайте больше.

  •         **Субагенты**
    

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

  •         **Пользовательские агенты**
    

    Это определения специализированных способностей, предназначенных для выполнения конкретных задач. Основной агент CLI может делегировать задачу субагенту, используя пользовательский профиль агента, применяя специализированные знания и определённый подход к задаче. Например, пользовательский агент может выполнять роль рецензента React, автора документации, аудитора безопасности или генератора тестов. Узнайте больше.

  •         **Подключаемые модули**
    

    Это пакеты , которые могут предоставлять заранее настроенные настройки, такие как навыки, хуки, пользовательские агенты и MCP-серверы. Узнайте больше.

Пользовательские инструкции

Что такое индивидуальные инструкции?

          **Пользовательские инструкции** — это постоянные указания, которые Интерфейс командной строки Copilot загружаются из файлов инструкций в начале сессии.

Copilot найдёт и загрузит файлы инструкций из ряда стандартных точек репозитория, таких AGENTS.md как и .github/copilot-instructions.md, или из вашего домашнего каталога по $HOME/.copilot/copilot-instructions.mdадресу .

Вы можете использовать флаг --no-custom-instructions , чтобы избежать загрузки этих инструкций.

Какую проблему решают пользовательские инструкции?

Индивидуальные инструкции помогают вам:

  • Держите Copilot в соответствии с вашими кодовыми конвенциями и предпочтениями.
  • Применяйте стандарты команды или организации последовательно.
  • Избегайте повторяющихся напоминаний Copilot в каждом запросе.

Когда следует использовать индивидуальные инструкции?

Используйте пользовательские инструкции для:

  • Правила стиля и качества

    Пример: «Предпочитайте небольшие PR, пишите тесты и избегайте смены публичных API без обсуждения.»

  • Конвенции репозиториев

    Пример: «Используйте pnpm, сохраняйте записи журнала изменений , CHANGELOG.mdзапускайте pnpm test перед коммингом.»

  • Предпочтения в коммуникации

    Пример: «Кратко объясните компромиссы, затем предложите рекомендованный вариант.»

Когда не стоит использовать индивидуальные инструкции?

Избегайте или минимизируйте их, когда:

  • Вы хотите, чтобы поведение было только в одном рабочем процессе (используйте навык вместо этого).
  • Ваши инструкции настолько обширны и конкретны, что отвлекают Copilot от непосредственной задачи (предпочитайте навык или пользовательский агент).

Узнайте больше о индивидуальных инструкциях

См . раздел AUTOTITLE.

Skills

Что такое навык?

          **Навык** — это, по крайней мере, файл Markdown, содержащий инструкции, которые Copilot может использовать для выполнения задач в определённом контексте. Название и описание навыка позволяют Copilot определить, стоит ли использовать навык для конкретной задачи. Если он решит использовать навык, он загрузит инструкции и выполнит их, чтобы выполнить задачу.

Навыки могут по желанию ссылаться на другие файлы, хранящиеся в каталоге навыков. К ним могут относиться скрипты, которые Copilot могут запускаться при использовании навыка.

Какую проблему решает навык?

Навыки помогают:

  • Стандартизировать, как Copilot выполняет задачи в определённом контексте (например, при выполнении проверки кода).
  • Предоставляйте инструкции «just-in-time» без постоянного изменения поведения Copilot.
  • Избегайте перегрузки контекстного окна Copilot инструкциями, не относящимися к текущей задаче.

Как вы получаете доступ к навыкам?

Вы можете вручную вызвать навык, используя команду слэша. Например: /Markdown-Checker check README.md. Используйте /skills list список доступных навыков.

Интерфейс командной строки Copilot автоматически вызывает навыки, когда обнаруживает навыки, релевантные текущей задаче.

Когда следует использовать навык?

Используйте навык, когда хотите:

  • Повторяемый набор инструкций или функциональных функций, доступных для определённого типа задачи.

    Пример: навык документации, который проверяет, что пользовательская документация обновляется при изменении фронтенд-кода.

  • Единый формат выхода.

    Пример: навык «draft-а заметки к релизу», который гарантирует, что Copilot использует шаблон для создания заметки о выпуске.

  • Рабочий процесс, который иногда нужен, но не всегда.

    Пример: навык «глубокого рефакторирования», который вы включаете только во время миграций.

Когда не стоит использовать навык?

Избегайте навыков, когда:

  • Рекомендации должны применяться ко всему , что вы делаете (используйте кастомные инструкции ).
  • Нужны новые возможности (возможно, понадобится MCP-сервер для добавления инструментов или кастомный агент для специализации).

Узнайте больше о навыках агента

См . раздел AUTOTITLE.

Tools

Что такое инструмент?

          **Инструмент** — это способность, которую Copilot использует для выполнения задачи — например, поиска файлов, просмотра содержимого, редактирования, выполнения задачи или вызова навыка. Некоторые инструменты встроены, а другие можно добавлять через MCP-серверы.

Какую проблему решают инструменты?

Инструменты позволяют CLI:

  • Собирайте точный контекст (с помощью инструментов чтения/поиска).
  • Вносите изменения безопасно (с помощью инструментов редактирования).
  • Выполнять команды и проверять результаты (возможно, с помощью субагентов).

Когда стоит использовать инструменты?

Обычно инструменты не вызывают напрямую — Copilot решает использовать инструменты по мере необходимости. Вы можете разрешить или запретить использование инструментов — как для конкретной задачи, так и для текущей сессии, либо для всех ваших Интерфейс командной строки Copilot сессий.

Вы увидите Copilot с помощью инструментов, когда:

  • Попросите Copilot найти что-то в репозитории, обновить файл или запустить тесты.
  • Вызовите навык — который запускает инструмент skill .
  • Попросите Copilot выполнить задачу, требующую использования инструмента, предоставленного MCP-сервером.
  • Задача Copilot для выполнения сложной задачи и решает делегировать её субагенту — что запускает инструмент task .

Узнайте больше о разрешении или отказе в инструментах

См . раздел AUTOTITLE.

Серверы MCP

Что такое MCP-сервер?

          **MCP-сервер** — это сервис, который позволяет приложениям ИИ, таким как Интерфейс командной строки Copilot, подключаться к внешним источникам данных и инструментам.

Добавление MCP-сервера в Интерфейс командной строки Copilot открывает дополнительные возможности, позволяя использовать инструменты, предоставленные этим MCP-сервером. Например, можно добавить MCP-сервер, предоставляющий инструменты для взаимодействия с онлайн-приложением календаря, или систему поддержки тикетов.

Какую проблему решают MCP-серверы?

MCP-серверы помогают, когда встроенных инструментов недостаточно. Они могут выполнять следующие действия:

  • Подключить Интерфейс командной строки Copilot к внешним системам.
  • Добавьте специально разработанные инструменты (например, для работы с API, базами данных или генерации изображений).
  • Стандартизировать паттерны безопасного доступа для ресурсов вне репозитория.

Когда стоит использовать MCP-сервер?

Используйте MCP-сервер, когда вам нужно:

  • Интеграция с внешними данными или системами.

    Пример: How many support tickets have been opened this month for Product X?

  • Действия, связанные с конкретной областью, которые вы хотите, чтобы CLI выполнял от вашего имени.

    Пример: Message the bug-watch channel: Only 2 support tickets raised this month for Product X.

Когда не стоит использовать MCP-сервер?

Избегайте добавления MCP-серверов, когда:

  • Встроенные инструменты уже покрывают ваши потребности.

Узнайте больше о серверах MCP

См . раздел AUTOTITLE.

Обработчики

Что такое крючок?

          **Крючки** позволяют указать, что в определённый момент жизненного цикла сессии Интерфейс командной строки Copilot выполнит определённую вами команду shell.
ОбработчикПри запуске
preToolUse / postToolUseДо/после запуска инструмента.
userPromptSubmittedКогда пользователь отправляет запрос.
sessionStart / sessionEndВ начале/конце сессии.
errorOccurredКогда происходит ошибка.
agentStopКогда главный агент останавливается без ошибки.
subagentStopКогда субагент завершает работу.

Какую проблему решают крючки?

Крючки помогают, когда вы хотите программируемый контроль или наблюдаемость вокруг поведения Интерфейс командной строки Copilot, например:

  •         **Защитные ограждения** — блокируйте или предупреждайте до запуска определённых инструментов.
    
  •         **Добавление логов/телеметрии**
    
  •         **Настройка поведения повторной попытки/прекращения при восстанавливаемых ошибках**
    
  •         **Добавление проверок «политики**» — например, чтобы предотвратить правки защищённых путей.
    
  •         **Перехват в момент завершения субагента** — до того, как результаты вернутся к родительскому агенту.
    

Крючки полезны, когда нужно больше контроля, чем могут дать навыки или индивидуальные инструкции. Пока навыки и инструкции направляют поведение Copilot через подсказки, хуки гарантируют, что определённые вами операции будут выполняться в определённые моменты — например, блокировать работу инструмента или вести запись активности после окончания сессии.

Когда стоит использовать крючки?

Используйте крючки, когда хотите:

  •         **Отбойники инструментов**
    
    • Пример: перед bash запусками требуется, чтобы конкретная команда совпадала с списком разрешений.
    • Пример: перед edit запусками блокируйте изменения в разделе infra/ , если нет идентификатора тикета.
  •         **Автоматизация жизненного цикла сессии**
    
    • Пример: когда агент останавливается, архивируйте расшифровку сессии в место хранения.
  •         **Политика обработки ошибок**
    
    • Пример: при ошибках лимита скорости автоматически выберите «повторить» с ограниченным количеством повторных попыток.
  •         **Управление рабочим процессом субагентов**
    
    • Пример: когда субагент заканчивает, проверяйте его выход перед передачей результатов обратно основному агенту.

Когда не стоит использовать крючки?

Избегайте крючков, когда:

  • Вам просто нужны последовательные подсказки или инструкции по рабочему процессу (используйте навыки).
  • Вам нужны постоянные настройки и стандарты (используйте пользовательские инструкции).
  • Нужны новые внешние возможности (используйте MCP-серверы и инструменты).
  • Поддерживать конфигурацию, которая влияет на каждую сессию, может быть для вас проблемой.

Узнайте больше о крючках

См . раздел AUTOTITLE.

Субагенты

Что такое субагент?

          **Субагент** — это выполнение отдельного AI-агента, который основной агент сессии Интерфейс командной строки Copilot запускает для выполнения конкретной задачи.

Интерфейс командной строки Copilot использует субагент, когда основной агент решает, что делегирование части работы отдельному агенту — лучший способ выполнить запрос пользователя.

Какую проблему решают субагенты?

Подагенты помогают Copilot:

  • Сохраняйте фокус на окне контекста основного агента в сессии CLI, передав часть работы отдельному агенту.
  • Параллелизируйте работу, где это необходимо, выполняя определённые задачи в фоне.
  • Управляйте кастомным агентом отдельно от основного агента, выполняя специализированную работу с иным подходом к работе, выполняемой основным агентом.

Когда используются субагенты?

Copilot, вероятно, будет использовать субагент для:

  • Исследование кодовой базы

    Например, перечисление всех конечных точек в API.

  • Выполнение команд для сложных задач

    Например, запуск тестового комплекса или создание крупного проекта с анализом результатов.

  • Обзор изменений

    Например, анализ поэтапных изменений и выявление потенциальных проблем с безопасностью.

  • Сложная многоступенчатая работа

    Например, реализация функции с несколькими изменениями.

  • Для использования пользовательских агентов

    Если вы определили пользовательского агента и он подходит для вывода (infer не установлен на false), Copilot может делегировать работу этому пользовательскому агенту, запустив субагент с его конфигурацией.

Настраиваемые агенты

Что такое кастомный агент?

          **Пользовательские агенты** — это способ, с помощью которого вы можете предоставить Copilot специализированные знания по конкретной теме и определить конкретный подход, который вы хотите использовать Copilot для работы в этой области. Можно представить пользовательского агента как «персону», которую Copilot может использовать при выполнении определённых задач.

Вы определяете пользовательский агент в файле Markdown с помощью YAML frontmatter. Файл содержит:

  • Описание роли и компетенции агента
  • Список разрешённых инструментов (или всех инструментов)
  • Опциональные подключения к серверам MCP
  • Необязательная infer настройка — при включении Copilot автоматически делегируют данные этому агенту, когда тот обнаруживает задачу, соответствующую специализации агента.

Какую проблему решают кастомные агенты?

Кастомные агенты помогают, когда вам нужно:

  • Специализированные знания, которые должны применяться последовательно в определённом контексте.
  • Разные права на инструменты для разных работ, как определено в конфигурации пользовательского агента.
  • Чтобы окно контекста основного агента оставалось сосредоточенным на основной задаче, а собственное окно контекста пользовательского агента использовалось для выполнения специализированной работы.

Когда стоит использовать кастомного агента?

Используйте пользовательского агента, когда хотите:

  • Специализированный рецензент или помощник

    Пример: создайте кастомный агент «react-reviewer», который сосредоточен на работе, связанной с паттернами React.

  • Более безопасные разрешения

    Пример: пользовательский агент, который может работать только view/grep/glob (только для чтения) для аудита.

  • Опциональное автоделегирование

    Пример: настройте infer: true в конфигурации пользовательского агента так, чтобы Copilot могли автоматически использовать этот пользовательский агент при необходимости.

Когда не стоит использовать пользовательского агента?

Избегайте таможенных агентов, когда:

  • Вам нужен только учебник с руководством ( навык может быть более лёгким решением).
  • Специализация не нужна, а стандартный агент хорошо выполняет задачи.

Узнайте больше о кастомных агентах

См . раздел AUTOTITLE.

Plugins

Что такое подключаемый модуль?

          **Плагин** — это устанавливаемый пакет, который может доставлять набор функций для Copilot. Плагин может включать любую комбинацию других функций настройки. Например, навыки, пользовательские агенты, хуки и конфигурации MCP-серверов.

Copilot включает команды управления плагинами (установка, обновление, список, удаление) и поддерживает установку с маркетплейса или напрямую с репозитория GitHub.

Какую проблему решают плагины?

Плагины помогают:

  • Легко добавить набор функционала в Copilot без необходимости вручную настраивать каждую деталь.
  • Упаковывайте и распространяйте пользовательскую конфигурацию — возможно, сочетание навыков, кастомных агентов, хуков и MCP-серверов — своей команде или широкой публике.
  • Изменяйте доступные функции без необходимости вручную копировать файлы в каталоги.

Когда стоит использовать плагин?

Используйте плагин, когда:

  • Вам нужен набор на всю команду

    Пример: Инженерный плагин для всей компании, включающий:

    • Навыки реагирования на инциденты.
    • Пользовательский агент для проверки кода.
    • MCP-сервер для внутренних сервисов.
  • Вам нужна лёгкая установка и обновления

    Пример: сначала установите плагин, а затем регулярно обновляйте его с /plugin update PLUGIN-NAMEпомощью .

Когда не стоит использовать плагин?

Избегайте плагинов, когда:

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

Собрать всё воедино: выбрать правильный вариант

ТребованиеЛучший вариант
Я хочу, чтобы Copilot всегда следовал нашим репозиториевым конвенциям.
          **Пользовательские инструкции** |

| Мне нужен повторяемый рабочий процесс, который можно запускать по требованию. | Навыки | | Я хочу, чтобы Copilot отвечал на вопросы и выполнял работу в моём репозитории. | Copilot запрашивает разрешение на использование соответствующих инструментов | | Мне нужны ограничения, политика или автоматизация использования инструментов и событий сессий. | Обработчики | | Мне нужны Copilot, чтобы использовать инструменты, предоставленные внешним сервисом. | Серверы MCP | | При работе над конкретными задачами я хочу, чтобы Copilot работала как специалист с ограниченным набором инструментов. | Таможенный агент | | Я хочу, чтобы Copilot выполнял сложную задачу от моего имени. | Copilot автоматически использует субагентов , когда это уместно. | | Я хочу добавить пакет функционала в Интерфейс командной строки Copilot без самостоятельной настройки. | Подключаемый модуль |