Skip to main content
Skip to content

Создание плагина для GitHub Copilot CLI

Создайте плагин для обмена настройками в удобном для установки пакете.

Плагины — это пакеты, расширяющие функциональность 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подключаемый модуль.

Создание плагина

  1. Создайте папку для вашего плагина.

  2. Выберите формат подключаемого модуля, а затем добавьте plugin.json файл манифеста в корневой каталог.

    Чтобы создать подключаемый модуль агента 1.0, добавьте канонический $schemaкод:

Пример файла подключаемых модулей агента 1.0 plugin.json

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поля , name, version``repository``description``homepage``license``author``keywordsи extensions как поля верхнего уровня. Copilot CLI отчеты и игнорирует неизвестные поля верхнего уровня. Поле extensions — это карта данных, определенных клиентом, ключом к которым является пространство имен обратного домена.

Чтобы создать устаревший подключаемый модуль, опустите подключаемые $schemaмодули агента. Поля пути компонента можно использовать в манифесте:

Пример устаревшего plugin.json файла

JSON
{
  "name": "my-dev-tools",
  "description": "React development utilities",
  "agents": "agents/",
  "skills": ["skills/", "extra-skills/"],
  "hooks": "hooks.json",
  "mcpServers": ".mcp.json"
}

Для подробностей полного набора полей, которые вы можете включить в этот файл, смотрите Ссылка на плагин GitHub Copilot CLI.

  1. Добавьте компоненты в подключаемый модуль.

    В подключаемом модуле подключаемого SKILL.md модуля агента 1.0 навыки должны быть непосредственными подкаталогамиskills/, и каждый навык должен содержать файл. Конфигурация MCP должна находиться в mcp.json корневом каталоге подключаемого модуля. Вы не можете переопределить эти расположения в plugin.json. Copilot-specific components go in the com.github.copilot directory, например com.github.copilot/agents/ для пользовательских агентов и com.github.copilot/hooks/hooks.json для перехватчиков.

    В устаревшем подключаемом модуле используйте расположения компонентов по умолчанию или пути компонентов, настроенные в plugin.json.

    Рассмотрим пример.

    1. Добавьте агента, создав 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...
      
    2. Добавьте навык, создав skills/NAME подкаталог вашей папки плагинов, где NAME находится название вашего навыка. Затем в этой подкаталоге создайте SKILL.md файл, который определяет навык.

      Например, чтобы создать навык «развернуть», создайте skills/deploy/SKILL.md:

      Markdown
      ---
      name: deploy
      description: Deploy the current project to...
      ---
      
      Instructions for the skill...
      
    3. Для подключаемого модуля подключаемого модуля агента 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"
           }
         }
       }
      }
      

      Имя streamable-http транспорта принимается для потоковых HTTP-серверов. Для stdio серверов предоставляются PLUGIN_ROOT и переменные среды, Copilot CLI а также PLUGIN_DATA развертываются ${PLUGIN_ROOT} и ${PLUGIN_DATA}``argsв , env значениях и cwd.

Тестирование подключаемого модуля с помощью GitHub Copilot CLI

Следующие команды проверяют подключаемый модуль в Copilot CLI.

  1. Установите плагин локально, чтобы тестировать его по ходу разработки.

    Например, где ./my-plugin находится путь к вашему каталогу плагинов, введите:

    Shell
    copilot plugin install ./my-plugin
    
  2. Проверьте, что плагин успешно загрузился, просмотрев список установленных плагинов:

    Shell
    copilot plugin list
    

    Или вы можете начать новую интерактивную сессию и войти:

    Copilot prompt
    /plugin list
    
  3. Убедитесь, что агенты, навыки, крючки и конфигурации MCP-серверов, которые вы определили, загружены правильно.

    Например, в интерактивной сессии, чтобы проверить, загружены ли пользовательские агенты, определённые в плагине, введите:

    Copilot prompt
    /agent
    

    Чтобы проверить, что навыки, определённые в плагине, загружены, введите:

    Copilot prompt
    /skills list
    
  4. Используйте функционал, предоставленный компонентами вашего плагина, чтобы убедиться, что каждый компонент работает как следует.

  5. По мере необходимости развивайте плагины.

    Внимание

    При установке подключаемого модуля его компоненты кэшируются и Copilot CLI считываются из кэша для последующих сеансов. Чтобы получить изменения, внесенные в локальный подключаемый модуль, установите его еще раз:

    Shell
    copilot plugin install ./my-plugin
    
  6. После завершения тестирования вы можете удалить локальную версию плагина, введя в:

    Shell
    copilot plugin uninstall NAME
    

    Используйте значение name поля в манифесте NAMEподключаемого модуля, а не путь к каталогу подключаемого модуляplugin.json.

Добавление оценок для подключаемого модуля

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

Распространение подключаемого модуля

Чтобы поделиться подключаемым модулем с другими пользователями, добавьте его в Marketplace. См . раздел AUTOTITLE.

По умолчанию репозиторий может включить подключаемый модуль для проекта. Члены могут переопределить эти значения по умолчанию локально, но корпоративные управляемые параметры могут требовать или блокировать подключаемый модуль и всегда иметь приоритет.

Дополнительные материалы