Skip to main content

Добавление пользовательских инструкций для GitHub Copilot CLI

Дайте Copilot дополнительный контекст о том, как понять ваш project и как строить, протестировать и проверять её изменения.

GitHub Copilot может предоставить ответы, адаптированные под ваши личные предпочтения, работу вашей команды, используемые инструменты или особенности вашего project, если вы предоставите достаточно контекста to do этого. Вместо того, чтобы постоянно добавлять эту контекстную информацию в свои запросы, вы можете создать пользовательские инструкции, которые автоматически добавят эту информацию за вас. Дополнительная информация не отображается, но доступна Copilot, что позволяет генерировать ответы более высокого качества.

Типы пользовательских инструкций

GitHub Copilot CLI поддерживает следующие типы пользовательских инструкций.

Пользовательские инструкции по всему репозиторию

Они применяются ко всем запросам, сделанным в контексте репозитория.

Они указываются в файле copilot-instructions.md в каталоге .github в корне репозитория. Дополнительные инструкции см. в статье "Создание пользовательских инструкций на уровне репозитория".

Индивидуальные инструкции по пути

Они применяются к запросам, сделанным в контексте файлов, соответствующих заданному пути.

Они указываются в одном или нескольких файлах NAME.instructions.md внутри или ниже каталога .github/instructions в корне репозитория, либо внутри или ниже каталога .github/instructions в текущем рабочем каталоге. Дополнительные инструкции см. в статье "Создание пользовательских инструкций для конкретного пути".

Если путь, указанный в этих инструкциях, совпадает с файлом, над которым работает Copilot, и также существует пользовательский файл инструкций на уровне репозитория, то инструкции из обоих файлов используются. Следует избегать возможных конфликтов между инструкциями, так как выбор Copilot между конфликтующими инструкциями является недетерминированным.

Инструкции агента

Ими пользуются различные агенты ИИ.

Вы можете создать один или несколько AGENTS.md файлов. Они могут находиться в корневом каталоге репозитория, в текущем рабочем каталоге или в любом из каталогов, указанных списком путей с разделением запятой в COPILOT_CUSTOM_INSTRUCTIONS_DIRS переменной среды.

Инструкции в файле корневой директории, если они AGENTS.md найдутся, считаются первичными. Если в корне репозитория находятся AGENTS.md и .github/copilot-instructions.md, используются инструкции из обоих файлов.

Инструкции, находящиеся в других AGENTS.md файлах, рассматриваются как дополнительные инструкции. Любые найденные первичные инструкции, скорее всего, окажут большее влияние на ответы Copilot, чем дополнительные инструкции.

Для получения дополнительной информации смотрите репозиторий agentsmd/agents.md.

В качестве альтернативы можно использовать CLAUDE.md файлы.GEMINI.md Они должны находиться в корне репозитория.

Местные инструкции

Они применимы в конкретной локальной среде.

Вы можете задать инструкции в своей собственной домашней директории, создав файл по адресу $HOME/.copilot/copilot-instructions.md.

Также можно установить COPILOT_CUSTOM_INSTRUCTIONS_DIRS переменную среды в список каталогов, разделённых запятой. Второй пилот CLI будет искать файл AGENTS.md и любые файлы .github/instructions/**/*.instructions.md в каждом из этих каталогов.

Создание пользовательских инструкций на уровне репозитория

  1. В корне вашего репозитория создайте файл с именем .github/copilot-instructions.md.

    Создайте папку .github, если её ещё нет.

  2. Добавьте инструкции по естественному языку в файл в формате Markdown.

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

    Для помощи в написании эффективных индивидуальных инструкций см. О кастомизации ответов GitHub Copilot.

Создание пользовательских инструкций для конкретного пути

  1. Создайте каталог, .github/instructions если он еще не существует.

  2. По желанию создайте подкаталоги .github/instructions для организации ваших файлов инструкций.

  3. Создайте один или несколько NAME.instructions.md файлов, где NAME указывается назначение инструкций. Имя файла должно заканчиваться .instructions.md.

  4. В начале файла создайте блок frontmatter, содержащий ключевое applyTo слово. Используйте синтаксис glob, чтобы указать, к каким файлам или каталогам применяются инструкции.

    Например:

    ---
    applyTo: "app/models/**/*.rb"
    ---
    

    Можно указать несколько шаблонов, разделив их запятыми. Например, чтобы применить инструкции ко всем файлам TypeScript в репозитории, можно использовать следующий блок frontmatter:

    ---
    applyTo: "**/*.ts,**/*.tsx"
    ---
    

    Примеры Glob:

    •      `*` - все будут совпадать со всеми файлами текущей директории.
      
    •      `**` или `**/*` — все совпадут со всеми файлами во всех каталогах.
      
    •      `*.py` - будет совпадать со всеми `.py` файлами текущей папки.
      
    •      `**/*.py` - будет рекурсивно совпадать со всеми `.py` файлами во всех каталогах.
      
    •      `src/*.py`- будет `.py` совпадать со всеми `src` файлами в каталоге. Например `src/foo.py` , и `src/bar.py`_нет_`src/foo/bar.py`.
      
    •      `src/**/*.py` - будет рекурсивно совпадать со всеми `.py` файлами в `src` каталоге. Например, `src/foo.py`, `src/foo/bar.py`и `src/foo/bar/baz.py`.
      
    •      `**/subdir/**/*.py` - будет рекурсивно совпадать со всеми `.py` файлами в любой `subdir` папке на любой глубине. Например, `subdir/foo.py`, `subdir/nested/bar.py`, `parent/subdir/baz.py`, и `deep/parent/subdir/nested/qux.py`, но _не_`foo.py` на пути, не содержащем каталога `subdir` .
      
  5. Опционально, чтобы предотвратить использование файла либо Агент кодирования Copilot одним из вариантов Обзор кода Copilot, добавьте excludeAgent ключевое слово в блок фронтматтера. Используйте либо или "code-review"``"coding-agent".

    Например, следующий файл будет читаться только .Агент кодирования Copilot

    ---
    applyTo: "**"
    excludeAgent: "code-review"
    ---
    

    Если ключевое excludeAgent слово не включено в передний блок Matterblock, оба Обзор кода Copilot и Агент кодирования Copilot будут использовать ваши инструкции.

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

Вы успешно добавили в репозиторий пользовательский файл инструкций?

          <a href="https://docs.github.io/success-test/yes.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline">
          <span>Да</span></a><a href="https://docs.github.io/success-test/no.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline"><span>нет</span></a>

Пользуемые инструкции

Инструкции в файлах доступны для использования Copilot сразу после сохранения файла(ов). Инструкции автоматически добавляются к запросам, которые вы отправляете в Copilot.

Если вы внесёте изменения в пользовательские инструкции во время сессии CLI, ваши изменения будут доступны для использования Copilot при следующем отправке запроса в текущих или будущих сессиях.

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

  •         [AUTOTITLE](/copilot/reference/custom-instructions-support)
    
  •         [AUTOTITLE](/copilot/tutorials/customization-library/custom-instructions) — тщательно подобранная коллекция примеров
    
  •         [AUTOTITLE](/copilot/tutorials/use-custom-instructions)