Введение
Интерфейс командной строки 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 от непосредственной задачи (предпочитайте навык или пользовательский агент).
Узнайте больше о индивидуальных инструкциях
Skills
Что такое навык?
**Навык** — это, по крайней мере, файл Markdown, содержащий инструкции, которые Copilot может использовать для выполнения задач в определённом контексте. Название и описание навыка позволяют Copilot определить, стоит ли использовать навык для конкретной задачи. Если он решит использовать навык, он загрузит инструкции и выполнит их, чтобы выполнить задачу.
Навыки могут по желанию ссылаться на другие файлы, хранящиеся в каталоге навыков. К ним могут относиться скрипты, которые Copilot могут запускаться при использовании навыка.
Какую проблему решает навык?
Навыки помогают:
- Стандартизировать, как Copilot выполняет задачи в определённом контексте (например, при выполнении проверки кода).
- Предоставляйте инструкции «just-in-time» без постоянного изменения поведения Copilot.
- Избегайте перегрузки контекстного окна Copilot инструкциями, не относящимися к текущей задаче.
Как вы получаете доступ к навыкам?
Вы можете вручную вызвать навык, используя команду слэша. Например: /Markdown-Checker check README.md. Используйте /skills list список доступных навыков.
Интерфейс командной строки Copilot автоматически вызывает навыки, когда обнаруживает навыки, релевантные текущей задаче.
Когда следует использовать навык?
Используйте навык, когда хотите:
-
Повторяемый набор инструкций или функциональных функций, доступных для определённого типа задачи.
Пример: навык документации, который проверяет, что пользовательская документация обновляется при изменении фронтенд-кода.
-
Единый формат выхода.
Пример: навык «draft-а заметки к релизу», который гарантирует, что Copilot использует шаблон для создания заметки о выпуске.
-
Рабочий процесс, который иногда нужен, но не всегда.
Пример: навык «глубокого рефакторирования», который вы включаете только во время миграций.
Когда не стоит использовать навык?
Избегайте навыков, когда:
- Рекомендации должны применяться ко всему , что вы делаете (используйте кастомные инструкции ).
- Нужны новые возможности (возможно, понадобится MCP-сервер для добавления инструментов или кастомный агент для специализации).
Узнайте больше о навыках агента
Tools
Что такое инструмент?
**Инструмент** — это способность, которую Copilot использует для выполнения задачи — например, поиска файлов, просмотра содержимого, редактирования, выполнения задачи или вызова навыка. Некоторые инструменты встроены, а другие можно добавлять через MCP-серверы.
Какую проблему решают инструменты?
Инструменты позволяют CLI:
- Собирайте точный контекст (с помощью инструментов чтения/поиска).
- Вносите изменения безопасно (с помощью инструментов редактирования).
- Выполнять команды и проверять результаты (возможно, с помощью субагентов).
Когда стоит использовать инструменты?
Обычно инструменты не вызывают напрямую — Copilot решает использовать инструменты по мере необходимости. Вы можете разрешить или запретить использование инструментов — как для конкретной задачи, так и для текущей сессии, либо для всех ваших Интерфейс командной строки Copilot сессий.
Вы увидите Copilot с помощью инструментов, когда:
- Попросите Copilot найти что-то в репозитории, обновить файл или запустить тесты.
- Вызовите навык — который запускает инструмент
skill. - Попросите Copilot выполнить задачу, требующую использования инструмента, предоставленного MCP-сервером.
- Задача Copilot для выполнения сложной задачи и решает делегировать её субагенту — что запускает инструмент
task.
Узнайте больше о разрешении или отказе в инструментах
Серверы 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
Обработчики
Что такое крючок?
**Крючки** позволяют указать, что в определённый момент жизненного цикла сессии Интерфейс командной строки Copilot выполнит определённую вами команду shell.
| Обработчик | При запуске |
|---|---|
preToolUse / postToolUse | До/после запуска инструмента. |
userPromptSubmitted | Когда пользователь отправляет запрос. |
sessionStart / sessionEnd | В начале/конце сессии. |
errorOccurred | Когда происходит ошибка. |
agentStop | Когда главный агент останавливается без ошибки. |
subagentStop | Когда субагент завершает работу. |
Какую проблему решают крючки?
Крючки помогают, когда вы хотите программируемый контроль или наблюдаемость вокруг поведения Интерфейс командной строки Copilot, например:
-
**Защитные ограждения** — блокируйте или предупреждайте до запуска определённых инструментов. -
**Добавление логов/телеметрии** -
**Настройка поведения повторной попытки/прекращения при восстанавливаемых ошибках** -
**Добавление проверок «политики**» — например, чтобы предотвратить правки защищённых путей. -
**Перехват в момент завершения субагента** — до того, как результаты вернутся к родительскому агенту.
Крючки полезны, когда нужно больше контроля, чем могут дать навыки или индивидуальные инструкции. Пока навыки и инструкции направляют поведение Copilot через подсказки, хуки гарантируют, что определённые вами операции будут выполняться в определённые моменты — например, блокировать работу инструмента или вести запись активности после окончания сессии.
Когда стоит использовать крючки?
Используйте крючки, когда хотите:
-
**Отбойники инструментов**- Пример: перед
bashзапусками требуется, чтобы конкретная команда совпадала с списком разрешений. - Пример: перед
editзапусками блокируйте изменения в разделеinfra/, если нет идентификатора тикета.
- Пример: перед
-
**Автоматизация жизненного цикла сессии**- Пример: когда агент останавливается, архивируйте расшифровку сессии в место хранения.
-
**Политика обработки ошибок**- Пример: при ошибках лимита скорости автоматически выберите «повторить» с ограниченным количеством повторных попыток.
-
**Управление рабочим процессом субагентов**- Пример: когда субагент заканчивает, проверяйте его выход перед передачей результатов обратно основному агенту.
Когда не стоит использовать крючки?
Избегайте крючков, когда:
- Вам просто нужны последовательные подсказки или инструкции по рабочему процессу (используйте навыки).
- Вам нужны постоянные настройки и стандарты (используйте пользовательские инструкции).
- Нужны новые внешние возможности (используйте MCP-серверы и инструменты).
- Поддерживать конфигурацию, которая влияет на каждую сессию, может быть для вас проблемой.
Узнайте больше о крючках
Субагенты
Что такое субагент?
**Субагент** — это выполнение отдельного 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 могли автоматически использовать этот пользовательский агент при необходимости.
Когда не стоит использовать пользовательского агента?
Избегайте таможенных агентов, когда:
- Вам нужен только учебник с руководством ( навык может быть более лёгким решением).
- Специализация не нужна, а стандартный агент хорошо выполняет задачи.
Узнайте больше о кастомных агентах
Plugins
Что такое подключаемый модуль?
**Плагин** — это устанавливаемый пакет, который может доставлять набор функций для Copilot. Плагин может включать любую комбинацию других функций настройки. Например, навыки, пользовательские агенты, хуки и конфигурации MCP-серверов.
Copilot включает команды управления плагинами (установка, обновление, список, удаление) и поддерживает установку с маркетплейса или напрямую с репозитория GitHub.
Какую проблему решают плагины?
Плагины помогают:
- Легко добавить набор функционала в Copilot без необходимости вручную настраивать каждую деталь.
- Упаковывайте и распространяйте пользовательскую конфигурацию — возможно, сочетание навыков, кастомных агентов, хуков и MCP-серверов — своей команде или широкой публике.
- Изменяйте доступные функции без необходимости вручную копировать файлы в каталоги.
Когда стоит использовать плагин?
Используйте плагин, когда:
-
Вам нужен набор на всю команду
Пример: Инженерный плагин для всей компании, включающий:
- Навыки реагирования на инциденты.
- Пользовательский агент для проверки кода.
- MCP-сервер для внутренних сервисов.
-
Вам нужна лёгкая установка и обновления
Пример: сначала установите плагин, а затем регулярно обновляйте его с
/plugin update PLUGIN-NAMEпомощью .
Когда не стоит использовать плагин?
Избегайте плагинов, когда:
- Вы экспериментируете локально и не нуждаетесь в дистрибуции (используйте локальные навыки, индивидуальные инструкции или кастомных агентов).
- Вам нужен небольшой разовый рабочий процесс. Один файл навыков может быть проще.
Собрать всё воедино: выбрать правильный вариант
| Требование | Лучший вариант |
|---|---|
| Я хочу, чтобы Copilot всегда следовал нашим репозиториевым конвенциям. |
**Пользовательские инструкции** |
| Мне нужен повторяемый рабочий процесс, который можно запускать по требованию. | Навыки | | Я хочу, чтобы Copilot отвечал на вопросы и выполнял работу в моём репозитории. | Copilot запрашивает разрешение на использование соответствующих инструментов | | Мне нужны ограничения, политика или автоматизация использования инструментов и событий сессий. | Обработчики | | Мне нужны Copilot, чтобы использовать инструменты, предоставленные внешним сервисом. | Серверы MCP | | При работе над конкретными задачами я хочу, чтобы Copilot работала как специалист с ограниченным набором инструментов. | Таможенный агент | | Я хочу, чтобы Copilot выполнял сложную задачу от моего имени. | Copilot автоматически использует субагентов , когда это уместно. | | Я хочу добавить пакет функционала в Интерфейс командной строки Copilot без самостоятельной настройки. | Подключаемый модуль |