Skip to main content

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

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

Введение

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

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

  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 как поля верхнего уровня. Неизвестные поля верхнего уровня сообщаются и игнорируются. Поле 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.

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

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

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

    Shell
    copilot plugin list
    

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

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

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

    Copilot prompt
    /agent
    

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

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

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

    Внимание

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

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

    Shell
    copilot plugin uninstall NAME
    

    Примечание.

    Чтобы удалить плагин, используйте имя плагина, указанное в name поле файла манифеста plugin.json плагина, а не путь к папке плагина.

Распространение вашего плагина

Чтобы распространять плагин, вы можете добавить его на маркетплейс. См . раздел AUTOTITLE.

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