Плагины — это пакеты, расширяющие функциональность Copilot CLI. Общие сведения о нескольких клиентах см. в разделе Подключаемые модули для GitHub Copilot.
Примечание.
Помощь по использованию плагинов можно найти copilot plugin [SUBCOMMAND] --help в терминале.
Структура плагинов
Подключаемый модуль состоит из каталога с определенной структурой и файлом манифеста plugin.json . Для подключаемых модулей агента 1.0 требуется манифест в корневом каталоге подключаемого модуля. Устаревшие подключаемые модули поддерживают дополнительные расположения манифестов. Подключаемый модуль также может содержать любое сочетание агентов, навыков, перехватчиков и конфигураций сервера MCP.
Подключаемые модули агента 1.0 — это переносимый формат для навыков и серверов MCP в совместимых клиентах. Copilot CLI также поддерживает устаревший Copilot формат.
- Чтобы использовать подключаемые модули агента 1.0, объявите канонический
$schemaвplugin.json. - Устаревший формат поддерживает Copilotкомпоненты с конкретными компонентами и настраиваемые пути к компонентам. В Copilot CLIманифесте без подключаемых
$schemaмодулей агента используется этот формат.
Выберите подключаемые модули агента 1.0, если требуется предоставить общий доступ к навыкам и серверам MCP между совместимыми клиентами. Проверьте документацию клиента, чтобы подтвердить, какие другие компоненты она поддерживает. Выберите устаревший формат, если вам нужны настраиваемые пути к компонентам или Copilot CLI поддерживают существующий Copilotподключаемый модуль.
Создание плагина
-
Создайте папку для вашего плагина.
-
Выберите формат подключаемого модуля, а затем добавьте
plugin.jsonфайл манифеста в корневой каталог.Чтобы создать подключаемый модуль агента 1.0, добавьте канонический
$schemaкод:
Пример файла подключаемых модулей агента 1.0 plugin.json
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "my-dev-tools",
"description": "React development utilities",
"version": "1.2.0",
"author": {
"name": "Jane Doe",
"email": "jane@example.com"
},
"license": "MIT",
"keywords": ["react", "frontend"]
}
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "my-dev-tools",
"description": "React development utilities",
"version": "1.2.0",
"author": {
"name": "Jane Doe",
"email": "jane@example.com"
},
"license": "MIT",
"keywords": ["react", "frontend"]
}
Схема разрешает только $schemaполя , name, version``repository``description``homepage``license``author``keywordsи extensions как поля верхнего уровня.
Copilot CLI отчеты и игнорирует неизвестные поля верхнего уровня. Поле extensions — это карта данных, определенных клиентом, ключом к которым является пространство имен обратного домена.
Чтобы создать устаревший подключаемый модуль, опустите подключаемые $schemaмодули агента. Поля пути компонента можно использовать в манифесте:
Пример устаревшего plugin.json файла
{
"name": "my-dev-tools",
"description": "React development utilities",
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
{
"name": "my-dev-tools",
"description": "React development utilities",
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
Для подробностей полного набора полей, которые вы можете включить в этот файл, смотрите Ссылка на плагин GitHub Copilot CLI.
-
Добавьте компоненты в подключаемый модуль.
В подключаемом модуле подключаемого
SKILL.mdмодуля агента 1.0 навыки должны быть непосредственными подкаталогамиskills/, и каждый навык должен содержать файл. Конфигурация MCP должна находиться вmcp.jsonкорневом каталоге подключаемого модуля. Вы не можете переопределить эти расположения вplugin.json. Copilot-specific components go in thecom.github.copilotdirectory, напримерcom.github.copilot/agents/для пользовательских агентов иcom.github.copilot/hooks/hooks.jsonдля перехватчиков.В устаревшем подключаемом модуле используйте расположения компонентов по умолчанию или пути компонентов, настроенные в
plugin.json.Рассмотрим пример.
-
Добавьте агента, создав
NAME.agent.mdфайл в подкаталогеagents. В подключаемом модуле подключаемого модуля агента 1.0 создайте файл вcom.github.copilot/agents/. В устаревшем подключаемом модуле создайте его вagents/.Markdown --- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that...
--- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that... -
Добавьте навык, создав
skills/NAMEподкаталог вашей папки плагинов, гдеNAMEнаходится название вашего навыка. Затем в этой подкаталоге создайтеSKILL.mdфайл, который определяет навык.Например, чтобы создать навык «развернуть», создайте
skills/deploy/SKILL.md:Markdown --- name: deploy description: Deploy the current project to... --- Instructions for the skill...
--- name: deploy description: Deploy the current project to... --- Instructions for the skill... -
Для подключаемого модуля подключаемого модуля агента 1.0 добавьте серверы MCP в корневой
mcp.jsonфайл. Конфигурация MCP использует собственную схему подключаемых модулей агента:JSON { "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }{ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }Имя
streamable-httpтранспорта принимается для потоковых HTTP-серверов. Дляstdioсерверов предоставляютсяPLUGIN_ROOTи переменные среды, Copilot CLI а такжеPLUGIN_DATAразвертываются${PLUGIN_ROOT}и${PLUGIN_DATA}``argsв ,envзначениях иcwd.
-
Тестирование подключаемого модуля с помощью GitHub Copilot CLI
Следующие команды проверяют подключаемый модуль в Copilot CLI.
-
Установите плагин локально, чтобы тестировать его по ходу разработки.
Например, где
./my-pluginнаходится путь к вашему каталогу плагинов, введите:Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
Проверьте, что плагин успешно загрузился, просмотрев список установленных плагинов:
Shell copilot plugin list
copilot plugin listИли вы можете начать новую интерактивную сессию и войти:
Copilot prompt /plugin list
/plugin list -
Убедитесь, что агенты, навыки, крючки и конфигурации MCP-серверов, которые вы определили, загружены правильно.
Например, в интерактивной сессии, чтобы проверить, загружены ли пользовательские агенты, определённые в плагине, введите:
Copilot prompt /agent
/agentЧтобы проверить, что навыки, определённые в плагине, загружены, введите:
Copilot prompt /skills list
/skills list -
Используйте функционал, предоставленный компонентами вашего плагина, чтобы убедиться, что каждый компонент работает как следует.
-
По мере необходимости развивайте плагины.
Внимание
При установке подключаемого модуля его компоненты кэшируются и Copilot CLI считываются из кэша для последующих сеансов. Чтобы получить изменения, внесенные в локальный подключаемый модуль, установите его еще раз:
Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
После завершения тестирования вы можете удалить локальную версию плагина, введя в:
Shell copilot plugin uninstall NAME
copilot plugin uninstall NAMEИспользуйте значение
nameполя в манифестеNAMEподключаемого модуля, а не путь к каталогу подключаемого модуляplugin.json.
Добавление оценок для подключаемого модуля
Рассматривать контекст подключаемого модуля как агентную инфраструктуру. Добавьте оценки поведения, которые подключаемый модуль предназначен для поддержки, и запустите их при изменении инструкций, инструментов или других компонентов.
Распространение подключаемого модуля
Чтобы поделиться подключаемым модулем с другими пользователями, добавьте его в Marketplace. См . раздел AUTOTITLE.
По умолчанию репозиторий может включить подключаемый модуль для проекта. Члены могут переопределить эти значения по умолчанию локально, но корпоративные управляемые параметры могут требовать или блокировать подключаемый модуль и всегда иметь приоритет.