Введение
Плагины — это пакеты, расширяющие функциональность Copilot CLI. См . раздел AUTOTITLE.
Примечание.
Помощь по использованию плагинов можно найти copilot plugin [SUBCOMMAND] --help в терминале.
Структура плагинов
Подключаемый модуль состоит из каталога с определенной структурой и файлом манифеста plugin.json . Для подключаемых модулей агента 1.0 требуется манифест в корневом каталоге подключаемого модуля. Устаревшие подключаемые модули поддерживают дополнительные расположения манифестов. Подключаемый модуль также может содержать любое сочетание агентов, навыков, перехватчиков и конфигураций сервера MCP.
Copilot CLI поддерживает два формата подключаемых модулей:
- Подключаемые модули агента 1.0— переносимый формат для навыков и серверов MCP. Объявление канонического
$schemaэлемента приplugin.jsonвыборе подключаемого модуля в этом формате. - Устаревший Copilot формат, который поддерживает Copilotспециальные компоненты и настраиваемые пути к компонентам. Манифест без подключаемых
$schemaмодулей агента продолжает использовать этот формат.
Поддерживаются оба формата. Выберите подключаемые модули агента 1.0, если вы хотите сделать навыки и серверы MCP переносимыми между совместимыми клиентами. Выберите устаревший формат, если требуется пользовательский путь к компонентам или поддерживает существующий Copilotподключаемый модуль. В подключаемых модулях агента 1.0 навыки и серверы MCP переносятся и являются конкретными компонентами, Copilotтакими как агенты, команды, правила, перехватчики и серверы LSP из com.github.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 как поля верхнего уровня. Неизвестные поля верхнего уровня сообщаются и игнорируются. Поле 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.
-
-
Установите плагин локально, чтобы тестировать его по ходу разработки.
Например, где
./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 -
Используйте функционал, предоставленный компонентами вашего плагина, чтобы убедиться, что каждый компонент работает как следует.
-
По мере необходимости развивайте плагины.
Внимание
Когда вы устанавливаете плагин, его компоненты кэшуются, и CLI читает данные из кэша для следующих сессий. Чтобы восстановить изменения, внесённые в локальный плагин, установите его снова:
Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
После завершения тестирования вы можете удалить локальную версию плагина, введя в:
Shell copilot plugin uninstall NAME
copilot plugin uninstall NAMEПримечание.
Чтобы удалить плагин, используйте имя плагина, указанное в
nameполе файла манифестаplugin.jsonплагина, а не путь к папке плагина.
Распространение вашего плагина
Чтобы распространять плагин, вы можете добавить его на маркетплейс. См . раздел AUTOTITLE.