Примечание.
Эта функция включена Публичный предварительный просмотр и подлежит изменению.
В этой статье объясняется, какие динамические рабочие процессы являются и что они могут сделать. Дополнительные сведения об использовании см. в разделе Использование динамических рабочих процессов.
Сведения о динамических рабочих процессах
Динамический рабочий процесс — это программа, которая определяет, как выполняется задача. Он может сочетать автоматизированные шаги с работой одного или нескольких агентов. Шаги могут выполняться друг за другом, параллельно или как смесь обоих.
Динамические рабочие процессы особенно полезны для сложных, многофакторных задач и задач, которые необходимо повторять с детерминированным набором действий, выполняемых каждый раз. Например, можно использовать динамический рабочий процесс для исследования инцидента прерывания службы, сбора журналов и телеметрии, назначения независимых агентов для анализа различных систем и объединения структурированных результатов в отчет о временной шкале и первопричине.
Динамические рабочие процессы могут:
- Выполните команды, используйте средства или вызов других служб.
- Разделите цель на задачи и параллельно выполняйте независимые задачи.
- Передайте результаты от одного этапа к следующему.
- Убедитесь, что подагенты проверяют результаты друг друга.
- Объединить результаты в один ответ.
- Попросите вас ввести данные, если приложение, которое вы используете, поддерживает его.
- Приостанавливайте работу на контрольной точке, чтобы просмотреть результаты и возобновить выполнение, когда вы будете готовы.
Все определяется в коде: шаги, когда следует включать агенты и как использовать их результаты. Агенты обрабатывают части, которые нуждаются в анализе или решении.
Рабочий процесс может попросить агентов вернуть результаты в указанном формате, чтобы последующие шаги могли использовать их. Copilot может попросить агента исправить формат при необходимости.
Динамические рабочие процессы определяются в Copilot расширениях. Они могут быть следующими:
- Создано Copilot. Опишите задачу и процесс, который требуется выполнить в рабочем процессе.
- Создано вами. Вы можете самостоятельно написать расширение, используя Copilotвстроенные рекомендации по разработке.
- Вам предоставлен общий доступ. После загрузки расширения его динамические рабочие процессы доступны для использования.
Чтобы использовать динамический рабочий процесс, вы можете попросить Copilot на естественном языке запустить его по имени. Рассмотрим пример.
Run the java-security-review dynamic workflow on the java files in the current directory.
Run the java-security-review dynamic workflow on the java files in the current directory.
Когда вы запускаете динамический рабочий процесс из запроса, Copilot запускает его в фоновом режиме и сообщает о завершении. Вы можете продолжить работу в сеансе во время его выполнения.
Внимание
Агент чата создает или запускает динамический рабочий процесс, когда вы явно запрашиваете его, или когда команда навыка или косой черты указывает на это.
В Copilot CLIэтом случае можно также запустить существующий динамический рабочий процесс непосредственно из терминала copilot workflow run WORKFLOW-NAME. Вам не нужно открывать интерактивный чат или попросить агента запустить его. Рабочий процесс по-прежнему может использовать агенты для выполнения своих действий.
Команда ожидает завершения или остановки выполнения перед возвращением элемента управления в оболочку. Используйте этот подход, чтобы повторить рабочий процесс с определенными входными данными, сохранить результат или запустить его из скрипта или конвейера CI/CD. Дополнительные сведения см. в разделе Использование динамических рабочих процессов.
Вы также можете запустить рабочий процесс с помощью команды косой черты расширения, пользовательского инструмента или программного перехватчика или из другого кода, использующего этот GitHub Copilot SDKкод. Copilot appВ расширении можно предоставить холст ( пользовательский интерфейс) с элементами управления для запуска рабочего процесса. Эти альтернативные варианты зависят от расширения и используемого клиента.
Дополнительные сведения о холстах см. в разделе Работа с расширениями canvas в приложении GitHub приложение Copilot.
Чтобы узнать, какие динамические рабочие процессы доступны, просто попросите Copilot:
What dynamic workflows are available?
What dynamic workflows are available?
Как динамические рабочие процессы отличаются от автопилота и парка
Если вы уже используете режим autopilot и /fleet команду, динамический рабочий процесс может показаться таким же. Основное различие заключается в том, как планируется и контролируется работа, а не просто сколько агентов используется.
- Autopilot — это режим, который все о автономии. Она позволяет Copilot продолжать работать над задачей без приостановки, чтобы получить входные данные после каждого шага.
- **
/fleet**Copilot рекомендует делегировать работу субагентам и координировать их работу параллельно. Copilot решает, как разбить задачу каждый раз. - Динамический рабочий процесс выполняет процесс, определенный в коде. Автор рабочего процесса определяет шаги, условия и передачи. Процесс может использовать один агент или многие, с работой в последовательности, параллельно или обоих.
Повторное использовать рабочий процесс означает повторное выполнение шагов и правил. Путь к этим шагам может измениться с помощью входных данных или выводов, а агенты могут давать различные ответы на различные запуски.
| Аспект | Автопилот | Fleet | Динамический рабочий процесс |
|---|---|---|---|
| Основная цель | Пусть продолжайте Copilot работать автономно | Рекомендуется Copilot делегировать работу подагентам | Выполнение процесса, определенного в коде |
| Кто определяет процесс? | |||
| Copilot решает следующие действия | |||
| Copilot определяет, как разделить и координировать работу | Автор рабочего процесса определяет шаги, условия и передачи | ||
| Как работает | Зависит от задач и Copilotрешений | Независимая работа может быть делегирована параллельно | Последовательно, параллельно или в обоих, используя один агент или многие |
Дополнительные сведения об управлении выполнением рабочих процессов см. в разделе "Ограничение динамического рабочего процесса " и "Отслеживание", "Остановка", "Приостановка" и возобновление выполнения.
Когда следует использовать динамический рабочий процесс
Используйте динамический рабочий процесс, если вы хотите определить процесс, который можно использовать повторно, или когда для одной задачи требуются четкие этапы, проверки или ограничения. Подходящие кандидаты включают:
- Выполнение проверок выпуска, запрос одного агента на оценку сбоев и приостановку проверки результатов перед возобновлением работы.
- Параллельное просмотр многих измененных файлов в запросе на вытягивание.
- Использование кода для поиска неразрешенных комментариев проверки объединенных запросов на вытягивание, а затем запрашивает две модели, имеют ли комментарии по-прежнему. Код рабочего процесса сообщает о результатах только при согласии обоих.
- Развертка большой базы кода для шаблона( например, отсутствуют тесты или использование API, который вы удаляете, одновременно выполняется во многих каталогах.
- Исследование изменений, планирование его реализации из результатов, а затем внесение изменений.
- Запуск длинного, потенциально дорогого запуска, который может потребоваться приостановить и возобновить позже.
Для быстрого ответа или простого изменения обычно достаточно обычного запроса в стандартном режиме чата.
Разрешения для динамических рабочих процессов
Подагенты динамического рабочего процесса используют систему разрешений ИНТЕРФЕЙСА командной строки и наследуют разрешения сеанса, запущенного им. Все, что вы уже разрешили в сеансе, применяется к подагентам динамического рабочего процесса.
Если один из подагентов рабочего процесса пытается сделать то, что еще не разрешено, его запросы будут отображаться как обычный запрос в интерактивном сеансе CLI. Вы утверждаете его там так же, как и для основного агента. Подагент, которому требуется разрешение, просто ожидает ответа.
Если один субагент запрашивает разрешение и предоставляет его в течение сеанса, это предоставление применяется ко всем подагентам, которым требуется одно и то же разрешение.
При использовании copilot workflow runкоманда не отображает запросы на утверждение разрешений. Предоставьте разрешения агентам рабочего процесса перед запуском. См . раздел AUTOTITLE.
Расширение также может запускать собственный код непосредственно за пределами этих запросов разрешений.
Создание динамического рабочего процесса
Вы можете создать динамический рабочий процесс, запросив Copilot сделать это в интерактивном сеансе. Расскажите Copilot , что требуется выполнить рабочий процесс.
По умолчанию Copilot создается расширение для текущего сеанса. Вместо этого вы можете попросить его создать личное или проектное расширение или написать расширение самостоятельно с помощью Copilotвстроенного руководства по разработке.
Дополнительные сведения см. в разделе Использование динамических рабочих процессов.
Изменение динамического рабочего процесса
Как правило, при первом использовании динамического рабочего процесса вы протестируете его, запустив его с ограниченной областью. Например, для динамического рабочего процесса, предназначенного для обработки нескольких файлов, можно изначально сообщить Copilot запустить рабочий процесс только на двух или трех файлах. Затем можно оценить результат. При необходимости можно попросить Copilot пересмотреть рабочий процесс перед его повторной запуском.
Используйте запрос естественного языка для Copilot изменения сохраненного определения рабочего процесса, а не переопределения ограничения только для одного запуска. Рассмотрим пример.
Update the check-python-style dynamic workflow to use no more than 10 subagents in total.
Update the check-python-style dynamic workflow to use no more than 10 subagents in total.
Редакции сохраняются в расширении динамического рабочего процесса, независимо от того, хранится ли он для сеанса, в каталоге личных расширений или в репозитории проектов. Новые запуски используют обновленную версию после загрузки обновленного расширения. Это не заменяет сохраненные результаты в приостановленном выполнении.
Если вы изменили динамический рабочий процесс, который вы предоставили в репозитории проекта, люди, работающие над этим проектом, должны извлечь обновленную версию репозитория, а затем перезагрузить их расширения, прежде чем они смогут использовать измененную версию.
Повторное использование и совместное использование динамических рабочих процессов
По умолчанию рабочие процессы, которые Copilot авторы для вас относятся к текущему сеансу. Вы можете скопировать расширение в личный каталог расширений, чтобы использовать его в сеансах или в каталог расширений репозитория, чтобы поделиться им с людьми, работающими над этим проектом. В этом случае используется определение, а не журнал выполнения исходного сеанса или сохраненный ход выполнения. Дополнительные сведения см. в разделе Использование динамических рабочих процессов.
Чтобы совместно использовать динамический рабочий процесс, вы можете упаковать его как подключаемый модуль и распространить его через предпочитаемую систему управления подключаемыми модулями. Дополнительные сведения см. в разделе Создание плагина для GitHub Copilot CLI.
Ограничение динамического рабочего процесса
Можно задать следующие ограничения для динамического рабочего процесса:
-
Максимальное количество агентов, принадлежащих рабочему процессу, которые могут быть активными одновременно.
-
Максимальное количество агентов, принадлежащих рабочему процессу, которые можно запустить в общей сложности в ходе выполнения.
-
Максимальное активное время выполнения, включая время, используемое перед приостановкой. Время приостановки выполнения не учитывается.
-
Приблизительное максимальное количество AI credits агентов рабочего процесса и их подагентов может использовать.
Примечание.
Copilot отслеживает кредиты, используемые агентами рабочего процесса, и останавливает новую работу, когда общая сумма достигает предела. Использование сообщается после его возникновения, поэтому работа уже ведется, может занять общее время в прошлом предел. Это приблизительный максимум, а не жесткий потолок.
Ограничения можно определить в трех местах:
-
В запросе: Укажите ограничение на естественном языке в запросе, используемом для запуска динамического рабочего процесса. Рассмотрим пример.
Use the architecture-research dynamic workflow on this repo, with a timeout of 1 hour. -
В коде рабочего процесса: При создании динамического рабочего процесса можно (необязательно) определить ограничения, которые следует использовать при запуске динамического рабочего процесса.
-
В личных параметрах: Вы можете определить ограничения по умолчанию в личных параметрах.Copilot Они будут применяться к любому выполняемому динамическому рабочему процессу, если тот же тип ограничения не указан в запросе или коде рабочего процесса.
В Copilot CLI команде
/settingsможно использовать следующие ключи для настройки личных ограничений по умолчанию для динамических рабочих процессов.workflows.defaultLimits.maxConcurrentSubagentsworkflows.defaultLimits.maxTotalSubagentsworkflows.defaultLimits.timeoutSeconds(необходимо указать в секундах)workflows.defaultLimits.maxAiCredits
Рассмотрим пример.
/settings workflows.defaultLimits.timeoutSeconds 3600
Ограничения определяются в порядке, приведенном выше. Если в запросе указан предел, он переопределяет любое соответствующее ограничение, определенное в динамическом рабочем процессе или в личных параметрах.
Ограничение параллельных субагентов делает дополнительные подагенты ожиданием, пока другие не завершат работу. Достижение этого процесса не останавливает рабочий процесс.
Другие ограничения могут остановить выполнение, но его состояние и сохраненные результаты сохраняются, чтобы вы могли возобновить его позже. При возобновлении выполнения, остановившегося на пределе, увеличьте это ограничение, чтобы разрешить больше работы. Новое ограничение является общим для запуска, включая использование до его остановки, а не свежее пособие.
Предотвращение непредвиденного AI credit использования
Рабочий процесс, запускающий множество вложенных объектов, может занять много времени для завершения и использования большого AI creditsколичества.
Чтобы предотвратить непредвиденное потребление AI credits, необходимо протестировать динамический рабочий процесс с небольшой масштабируемой областью, прежде чем использовать его для крупномасштабных заданий. После выполнения небольшого выполнения проверьте фактическое AI credit использование, а затем задайте соответствующее ограничение AI credits для крупномасштабных запусков.
Просмотр, остановка, приостановка и возобновление выполнения
Чтобы просмотреть текущий или прошлый рабочий процесс, можно использовать /workflows команду косой черты в Copilot CLI сеансе или кнопку Copilot app**"Рабочие** процессы".
Сведения показывают AI credits использование и любые этапы, сообщения о ходе выполнения и вложенные элементы отчетов рабочего процесса. Вы можете отменить или приостановить текущий рабочий процесс. Расширение также может предоставлять собственное представление хода выполнения, например на холсте Copilot app.
Если вы приостановили выполнение или прекратили работу, так как достигнуто ограничение, вы можете выбрать его из списка выполнения, чтобы возобновить его. Рабочий процесс может повторно использовать сохраненные результаты из выполненных шагов и подагентов. Работа, которая не была сохранена, может потребоваться выполнить еще раз.
Дополнительные сведения см. в разделе Использование динамических рабочих процессов.