Примечание.
Эта функция включена Публичный предварительный просмотр и подлежит изменению.
В этой статье описывается создание, использование и совместное использование динамических рабочих процессов и GitHub Copilot CLI их GitHub Copilot appиспользование.
Общие сведения о динамических рабочих процессах и их работе см. в разделе Динамические рабочие процессы.
Prerequisite
Чтобы использовать динамические Copilot CLIрабочие процессы, необходимо включить экспериментальные функции, выполнив интерфейс командной строки с --experimental параметром командной строки или с помощью /experimental on интерактивного сеанса.
Сведения о доступных динамических рабочих процессах
Возможно, у вас уже есть доступ к одному или нескольким динамическим рабочим процессам в сеансе, например через личное расширение или расширение в репозитории, в который вы работаете. В этом случае его можно использовать, указав его по имени в запросе.
Чтобы узнать, доступны ли динамические рабочие процессы, просто попросите Copilot. Рассмотрим пример.
What dynamic workflows are available?
What dynamic workflows are available?
Если доступны динамические рабочие процессы, можно попросить Copilot описать его. Рассмотрим пример.
Tell me more about the java-security-checks dynamic workflow.
Tell me more about the java-security-checks dynamic workflow.
Если у вас еще нет динамических рабочих процессов, его можно создать. См. статью "Создание динамического рабочего процесса".
Запуск динамического рабочего процесса
-
В сеансе Copilot введите запрос на естественный язык, чтобы попросить Copilot запустить динамический рабочий процесс.
Используйте зарегистрированное имя рабочего процесса и укажите все необходимые входные данные. Например, динамический рабочий процесс, выполняющий проверку безопасности, обычно требует указать файлы, с которыми он должен выполняться. В этом случае можно ввести запрос, например:
Copilot prompt Run the java-security-checks dynamic workflow on the java files in the current directory, with an AI credit limit of 500.
Run the java-security-checks dynamic workflow on the java files in the current directory, with an AI credit limit of 500.Внимание
Установка ограничений для динамического рабочего процесса является необязательным, но рекомендуется, так как она помогает контролировать использование ресурсов и предотвращать чрезмерное потребление AI credits. Дополнительные сведения об ограничениях, которые можно задать, см. в разделе Динамические рабочие процессы.
-
В зависимости от текущих Copilot параметров утверждения разрешений необходимо утвердить динамический рабочий процесс перед запуском. Выберите да.
Если расширение предоставляет другой способ запустить рабочий процесс, например команду косой черты или элемент управления холстом в элементе Copilot appуправления, следуйте инструкциям этого расширения.
Запуск динамического рабочего процесса из командной строки
-
В терминале используйте Copilot CLI команду
copilot workflow run WORKFLOW-NAME [OPTIONS]для запуска существующего динамического рабочего процесса.Рабочий процесс должен быть доступен через личное расширение, расширение проекта или установленный подключаемый модуль. Если вы создали рабочий процесс в сеансе чата, сначала сделайте его расширение доступным за пределами этого сеанса. См. статью "Повторное использование и совместное использование динамических рабочих процессов".
Используется
--argsдля предоставления входных данных для рабочего процесса в формате JSON.Внимание
Эта команда не отображает запросы на утверждение разрешений, даже если вы запускаете его в терминале. Предоставьте разрешения агентам рабочего процесса перед запуском, например с
--allow-toolили--allow-url. Запросы, которые не могут быть утверждены автоматически, отклоняются. Дополнительные сведения см. в разделе GitHub Copilot CLI программный справочник.Например, предположим, что у вас есть рабочий
directoryпроцесс с именемjava-security-checks, который принимает входные данные и требует разрешения на чтение файлов:Shell copilot workflow run java-security-checks \ --args '{"directories":["java/src","java/tests"]}' \ --allow-tool=readcopilot workflow run java-security-checks \ --args '{"directories":["java/src","java/tests"]}' \ --allow-tool=readЗамените имя рабочего процесса, поля ввода и разрешения для сопоставления рабочего процесса. Если рабочий процесс не требует входных данных, опустить
--args.Кроме того, поместите входные данные JSON в файл и префикс его пути с помощью
@:Shell copilot workflow run java-security-checks \ --args @workflow-input.json \ --allow-tool=read
copilot workflow run java-security-checks \ --args @workflow-input.json \ --allow-tool=read -
Просмотрите этапы и сообщения о ходе выполнения, сообщаемые рабочим процессом. По завершении команда выводит результат, если он возвращает его и завершает работу. Если он приостанавливается или останавливается без завершения, команда сообщает о состоянии выполнения и идентификаторе запуска. Чтобы прервать выполнение, нажмите клавиши CTRL+C.
Настроенные ограничения рабочего процесса и ваши личные ограничения по умолчанию по-прежнему применяются. См . раздел AUTOTITLE.
Сохранение результата в файле
Добавьте --result-file для записи возвращаемого значения рабочего процесса в JSON-файл вместо печати в терминале. Сообщения о ходе выполнения по-прежнему отображаются.
copilot workflow run java-security-checks \ --args @workflow-input.json \ --result-file security-results.json \ --allow-tool=read
copilot workflow run java-security-checks \
--args @workflow-input.json \
--result-file security-results.json \
--allow-tool=read
Файл содержит только возвращаемое значение, а не сообщения о ходе выполнения или сведения о выполнении. Относительные пути разрешаются из каталога, в котором была запущена команда.
Файл записывается только после успешного завершения рабочего процесса и возвращает результат. Существующий файл заменяется только после успешной записи нового результата. Приостановка, сбой или прерывание выполнения оставляет существующий файл неизменным.
Выполнение рабочего процесса в скрипте
Для сценариев и конвейеров CI/CD настройте проверку подлинности и разрешения перед выполнением команды. Можно использовать переменную среды проверки подлинности, например COPILOT_GITHUB_TOKEN. См . раздел AUTOTITLE.
Чтобы загрузить расширение проекта, если рабочий каталог еще не был доверенным, задайте GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true для этого вызова. Это позволяет запускать код расширения репозитория. Используйте его только для кода, которому вы доверяете. Вам по-прежнему необходимо предоставить необходимые агенты рабочего процесса разрешения средства.
Используется --silent для подавления выходных данных хода выполнения. Добавьте --output-format json для получения записи JSON, содержащей имя рабочего процесса, идентификатор выполнения, состояние и любой возвращенный результат:
copilot --allow-tool=read workflow run java-security-checks \ --args @workflow-input.json \ --silent --output-format json
copilot --allow-tool=read workflow run java-security-checks \
--args @workflow-input.json \
--silent --output-format json
Создание динамического рабочего процесса
По умолчанию Copilot создается рабочий процесс в расширении текущего сеанса. Вместо этого вы можете попросить его создать рабочий процесс в личном или проекте расширения.
-
Описать то, что требуется выполнить рабочий процесс, любой необходимый порядок шагов, которые части должны использовать агент и любые ограничения. Рассмотрим пример.
Copilot prompt Create a dynamic workflow named review-changed that lists changed files, asks an agent to review them, and summarizes the findings.
Create a dynamic workflow named review-changed that lists changed files, asks an agent to review them, and summarizes the findings.Примечание.
Если вы не укажаете имя рабочего процесса, Copilot выберите его во время разработки.
-
В зависимости от текущих параметров утверждения разрешений вам будет предложено разрешить Copilot создать новый динамический рабочий процесс. Выберите да.
Copilot может запрашивать другие утверждения, так как он работает над созданием и регистрацией динамического рабочего процесса.
- После завершения процесса разработки убедитесь, что рабочий процесс успешно создан и зарегистрирован. Для этого спросите Copilot , какие динамические рабочие процессы доступны.
Создание и регистрация рабочего процесса не запускает запуск. Сведения об использовании см. в разделе "Запуск динамического рабочего процесса".
Вы также можете самостоятельно написать расширение с помощью инструкций Copilot. Чтобы прочитать встроенное руководство, попросите:
Show me the guidance for writing dynamic workflows.
Show me the guidance for writing dynamic workflows.
Повторное использование и совместное использование динамических рабочих процессов
Динамические рабочие процессы реализуются как Copilot расширения. По умолчанию при запросе Copilot на создание рабочего процесса его расширение доступно только в этом сеансе. Рабочий процесс также может храниться в личном или проекте.
Чтобы повторно использовать или предоставить общий доступ к рабочему процессу, созданному в текущем сеансе, скопируйте его расширение в каталог личных расширений или каталог расширений репозитория. Это копирует определение, а не журнал выполнения или сохраненный ход выполнения.
-
Попросите Copilot сообщить вам путь к динамическому рабочему процессу, к которому вы хотите предоставить общий доступ. Рассмотрим пример.
Copilot prompt Tell me the path to the java-security-checks dynamic workflow.
Tell me the path to the java-security-checks dynamic workflow.
Copilot ответит на путь, например: /Users/yourname/.copilot/session-state/d58ba0bf-78fa-4172-b277-c18ba400e7c6/extensions/java-security-checks/extension.mjs
-
Чтобы сделать этот динамический рабочий процесс доступным во всех сеансах, скопируйте каталог, содержащий
extension.mjsфайл в~/.copilot/extensions/каталог.Вы можете попросить Copilot сделать это для вас. Рассмотрим пример.
Copilot prompt Copy the java-security-checks workflow to my personal extensions directory.
Copy the java-security-checks workflow to my personal extensions directory. -
Кроме того, чтобы предоставить общий доступ к динамическому рабочему процессу всем пользователям, работающим в репозитории, скопируйте каталог, содержащий
extension.mjsфайл, в.github/extensions/каталог локальной копии репозитория.Опять же, вы можете попросить Copilot сделать это для вас. Например, если вы работаете в репозитории, в котором вы хотите сделать динамический рабочий процесс доступным:
Copilot prompt Copy the java-security-checks workflow to the current repository's extensions directory.
Copy the java-security-checks workflow to the current repository's extensions directory.После объединения этого изменения в репозиторий товарищи по команде могут использовать рабочий процесс после обновления локального копирования и загрузки расширения.
-
Запустите новый сеанс или перезапустите существующий сеанс. Когда сеанс завершит загрузку, попросите Copilot перечислить доступные динамические рабочие процессы, чтобы убедиться, что рабочий процесс теперь доступен.
Распространение динамических рабочих процессов в подключаемом модуле
Плагины предоставляют возможность распространять пользовательскую Copilot функциональность. Подключаемый модуль можно использовать для добавления динамических рабочих Copilot CLI процессов в и .GitHub Copilot app
Дополнительные сведения см. в разделе Создание плагина для GitHub Copilot CLI.
После создания подключаемого модуля, содержащего динамический рабочий процесс, и публикации его в marketplace подключаемого модуля, пользователи смогут обнаруживать и устанавливать его. См . раздел AUTOTITLE.
Мониторинг динамических рабочих процессов и управление ими
Вы можете отслеживать ход выполнения и AI credits использование, а также любые этапы и вложенные элементы отчетов рабочего процесса. Вы также можете проверить завершенные запуски, приостановить или отменить активный запуск и возобновить выполнение, приостановленное или остановленное при достижении ограничения.
В Copilot CLI:
-
В интерактивном сеансе введите
/workflows.Перечислены запущенные и недавно завершенные динамические рабочие процессы.
-
Используйте клавиши со стрелками для перемещения выделения, а затем нажмите клавишу ВВОД , чтобы открыть сведения о выполнении.
Сведения включают продолжительность активного выполнения, любое текущее этап, сообщаемое рабочим процессом, число текущих активных подагентов, общее количество подагентов и число используемых AI credits до сих пор.
-
В активном запуске нажмите клавишу P , чтобы приостановить, X , чтобы отменить выполнение.
В :Copilot app
Примечание.
Мониторинг запуска доступен только для локальных сеансов.
Если вы работаете или выполняете динамический рабочий процесс в текущем сеансе, кнопка "Рабочие процессы " отображается над полем запроса.
-
Нажмите кнопку "Рабочие процессы ".
Всплывающее окно отображается с описанием активных запусков, запусков, готовых к возобновлению и недавно завершенных запусков.
-
Щелкните рабочий процесс, запущенный во всплывающем окне.
На панели отображаются сведения о выбранном выполнении рабочего процесса.
Сведения включают продолжительность активного выполнения, любое текущее этап, сообщаемое рабочим процессом, число текущих активных подагентов, общее количество подагентов и число используемых AI credits до сих пор.
-
Чтобы остановить активный запуск, нажмите кнопку "Отмена". Чтобы приостановить его, чтобы его можно было возобновить позже, нажмите кнопку "Приостановить".
Мониторинг динамических рабочих процессов с помощью OTel
Если вы включили OpenTelemetry (OTel), можно проверить активность рабочего процесса в трассировках. Рабочий invoke_workflow процесс создает диапазон при каждом запуске или возобновлении с действием его агентов, связанным с ним.
Сведения о конфигурации см. в Copilot CLIразделе Справочник команды GitHub Copilot CLI.
Возобновление выполнения
Вы можете возобновить приостановленный запуск или тот, который остановился в ограничении, когда он указан как возобновление. Рабочий процесс может повторно использовать сохраненные результаты из завершенных шагов и подагентов, а не запуска нового запуска. Работа, которая не была сохранена, может потребоваться выполнить еще раз.
При возобновлении выполнения, достигающего предела, задайте более высокую общую сумму для этого ограничения. Использование до остановки выполнения по-прежнему учитывается в отношении новой общей суммы.
Отменяемые запуски не могут быть возобновлены.
В Copilot CLI:
- В интерактивном сеансе введите
/workflows. - Используйте клавиши со стрелками, чтобы переместить выделение в приостановленный или остановленный запуск, который вы хотите возобновить.
- Нажмите клавишу R , чтобы возобновить выполнение.
- При появлении запроса увеличьте достигнутое ограничение и подтвердите новый итог.
В :Copilot app
-
В сеансе, который содержит приостановленные или остановленные динамические рабочие процессы, нажмите кнопку "Рабочие процессы " непосредственно над полем запроса.
Все возобновляемые запуски перечислены в разделе "Готово к возобновлению".
-
Щелкните запуск, который вы хотите возобновить.
-
На боковой панели нажмите кнопку "Возобновить". Если выполнение достигло предела, нажмите кнопку "Возобновить" с ограничением... Вместо этого следуйте инструкциям, чтобы задать более высокий итог и возобновить работу.
Планирование динамического выполнения рабочего процесса
Динамический рабочий процесс можно запланировать в текущем Copilot CLI сеансе так же, как и любой другой запрос, с помощью /every команд или /after команд. Рассмотрим пример.
/every 1d run the changed-files-report dynamic workflow on the 'main' branch, limiting it to 200 AI credits
/every 1d run the changed-files-report dynamic workflow on the 'main' branch, limiting it to 200 AI credits
Дополнительные сведения см. в разделе Запросы по расписанию GitHub Copilot CLI.