Створити шаблон конвеєра
Шаблони конвеєрів створюють у налаштуваннях робочого простору. Пункт Конвеєри на бічній панелі робочого простору — це черга запусків, а не список шаблонів: у ньому немає дії «створити шаблон».
Що означає кожен тип кроку, ключ тіла та поле конфігурації, дивіться в довідці з кроків конвеєра.
Створити шаблон
Розділ із назвою «Створити шаблон»- Перейдіть до Налаштування → Робочий простір → Шаблони конвеєрів
(
/workspaces/<workspace-id>/settings/pipelines). - Натисніть Новий шаблон.
Діалогу з ідентифікатором немає. Редактор відкривається одразу з підготовленим
каркасом під назвою Новий конвеєр і з автоматично виділеним ідентифікатором
(pipeline_1, далі pipeline_2, …). Натисніть заголовок у верхній частині, щоб
перейменувати його.
Полотно не порожнє: вузол входу Trigger, один вузол промпт-агента з міткою Step і термінальний сторожовий елемент, який завершує запуск. Сторожовий елемент не відображається. Редактор перепідключає цей прихований термінал до кожного досяжного стоку, тож робота, приєднана після Step, усе одно виконується.
Додати вузли
Розділ із назвою «Додати вузли»Бічна панель Бібліотека вузлів постійно розташована ліворуч від редактора. Відфільтруйте її полем Пошук вузлів і перетягніть елемент на полотно — вузол опиниться там, де ви його відпустите, без вхідного з’єднання.
| Вузол палітри | Тип кроку | Що робить |
|---|---|---|
| Bash script | listen | Запускає shell-скрипт із підстановкою {{state}}; агент не запускається |
| Open conversation | listen | Відкриває єдиний видимий простір запуску та його checkout; вузли агентів приєднуються до цієї кімнати |
| Clone PR branch | listen | Визначає головну гілку PR через gh pr view і клонує її до каталогу запуску |
| Post PR comment | listen | Публікує зведені знахідки в PR як коментар рев’ю GitHub |
| Reviewer (prompt) | listen | Запускає спеціалізованого агента-рев’юера; призупиняється, доки агент не надішле свій результат |
| Consolidate (join) | join | Чекає на кілька гілок вище за потоком, потім просить агента звести їхні виводи |
| Custom prompt | listen | Загальний вузол на основі промпту, що працює через тіло promptAgent |
| Post to space | listen | Надсилає повідомлення до простору обміну повідомленнями |
| Condition / switch (router) | router | Розгалужує потік за значенням стану |
| If file exists (router) | router | Спрямовує "true", якщо шлях існує в клоні, інакше "false" |
| Any file exists (OR router) | router | Спрямовує "true", якщо існує будь-який із перелічених шляхів |
| All conditions (AND router) | router | Спрямовує "true" лише коли існують усі перелічені шляхи |
| Team dispatch | listen | Запускає цілу команду й призупиняється до її завершення |
| Approval gate | listen | Призупиняється в очікуванні рішення про схвалення |
| For each (map) | forEach | Формує промпт для кожного елемента, потім один раз запускає агента з цими промптами, зчепленими разом |
| Call sub-pipeline | listen | Виконує інший шаблон як вкладений крок |
| Clean up worktrees | listen | Видаляє застарілі ізольовані worktree; детерміновано, агент не запускається |
Бібліотека групує їх у розділи Потік і логіка, Перегляд PR, Агенти, Повідомлення та Код. Групи Demo немає.
З’єднати вузли
Розділ із назвою «З’єднати вузли»Кожен робочий вузол має на правому краї круглий порт виводу. Перетягніть із
цього порту на інший вузол, щоб з’єднати їх. Стартові тригери влаштовані так
само: кожен має власний порт, тож з’єднання від Розклад не виходить також і
з Ручний запуск. Натисніть Додати крок (+) одразу після вузла, щоб
вставити після нього тип. Наведіть курсор на середину наявного ребра й натисніть
×, щоб роз’єднати.
З’єднання також редагують із вузла, який їх отримує:
- Виберіть вузол нижче за потоком. Праворуч відкриється його панель конфігурації.
- Прокрутіть до Triggers from і торкніться чипа кожного вузла вище за потоком, який цей вузол має слухати. Дотик до вибраного чипа видаляє з’єднання.
- Якщо вузол вище за потоком — це маршрутизатор, під чипами з’являється блок
Ключі маршруту з полем Ключ маршруту від <node> для кожного
ребра маршрутизатора. Введіть ключ, за яким спрацьовує це ребро —
trueабоfalseдля маршрутизаторів перевірки наявності файлів, або назву варіанта для перемикача.
Кожен вузол-тригер є точкою входу. Вузол може слухати кілька вузлів вище за потоком (збіжність) і живити кілька вузлів нижче за потоком (розгалуження), а граф має залишатися ациклічним — ніщо в редакторі не заважає вам з’єднати цикл, тож перевіряйте свою роботу.
Термінальний сторожовий елемент відфільтровано з полотна, тож його не можна вибрати. Редактор перепідключає його до кожного досяжного стоку щоразу, коли граф змінюється, тож робота, приєднана після підготовленого Step, усе одно виконується. Порожній граф (тригер без наступників-робіт) перелічує сам тригер, тож запуск завершується негайно.
Налаштувати вузол
Розділ із назвою «Налаштувати вузол»Виберіть вузол, щоб відкрити його панель конфігурації. Які поля з’являться, залежить від тіла вузла.
Кожен вузол має Мітку, Ключі входу (ключі стану через кому, які читаються під час виконання) і, у розділі Додатково, Редюсер, Таймаут (мс), Спроби повтору, Продовжити, якщо цей крок не вдався та Схему виводу. Вузли listen і join також можуть перемикати свій Тип між цими двома.
Відкрити розмову
Розділ із назвою «Відкрити розмову»Додає вибір області репозиторіїв (які репозиторії робочого простору отримати; порожньо — жодного), поле Назва простору та прапорець Відкрити розмову. Коли цей прапорець увімкнено, поле Назва розмови задає стрім, із яким відкривається кімната. Вузли агентів приєднуються до цієї кімнати — вони не відкривають власної.
Промпт-агент
Розділ із назвою «Промпт-агент»Додає Агент (якого агента запускати), Промпт (використовуйте {{key}},
щоб посилатися на входи або виводи вище за потоком) і Ключ виходу.
Таймаут (мс) задається в мілісекундах, а не в секундах — 900000 — це 15
хвилин. Якщо ввести 900, крок отримає 0,9 секунди.
Режим розмови, у якому працює вузол промпт-агента, не має поля в редакторі на
вузлі агента. Він передається через extras['mode'] (chat, plan або
review) на вузлі Відкрити розмову, який створив кімнату (типово review).
Якщо задати його на кроці агента, його проігнорують. Ключ зіставляється точно:
будь-яке інше написання мовчки ігнорується.
Bash-скрипт
Розділ із назвою «Bash-скрипт»Додає Скрипт. Полів робочого каталогу чи середовища немає, бо ні те, ні те не налаштовується:
- Кожен крок bash у запуску має спільний поточний каталог
<cc_root>/pipelines/<runId>/. GITHUB_TOKENпідставляється зі сховища облікових даних, тожghіgit clone https://x-access-token:$GITHUB_TOKEN@…працюють без налаштування.- Скрипт запускається як буквальний виконуваний файл
bash, тожbashмає бути вPATHхоста сервера. Це актуально для Windows.
Маршрутизатор
Розділ із назвою «Маршрутизатор»Маршрутизатор обчислює умову й повертає ключ маршруту; рушій запускає лише те ребро нижче за потоком, чий ключ маршруту збігається, а інші гілки позначає як пропущені.
Вибір маршрутизатора замінює поле Ключ виходу редактором умови. Виберіть один із чотирьох режимів:
- Файл(и) існують — будь-який — спрямовує
"true", якщо існує будь-який із перелічених шляхів. - Файли існують — усі — спрямовує
"true"лише коли існують усі перелічені шляхи. - Порівняння — порівнює значення стану з літералом.
- Перемикач — спрямовує за значенням ключа стану, з варіантом за замовчуванням.
Потім задайте відповідні ключі маршруту на вихідних ребрах (див. З’єднати вузли).
Логічні групи and / or / not підтримуються тілом, але створити їх із цієї
форми не можна — для них потрібне написане вручну дерево предикатів у
extras.predicate. Повний словник предикатів та операторів наведено в
довідці з кроків конвеєра.
Об’єднання
Розділ із назвою «Об’єднання»Власної конфігурації не має: чекає на всі свої кроки вище за потоком.
Шлюз схвалення
Розділ із назвою «Шлюз схвалення»Шлюз запускає агента-затверджувача в приховану розмову з промптом шлюзу й
призупиняється. Затверджувач запитує ваше рішення в розмові та надсилає його
через submit_output у вигляді { "decision": "approved" | "rejected", "reason": "..." }.
Рішення потрапляє під ключ виходу (типово approval_decision), тож
перемикач-маршрутизатор нижче за потоком може розгалузитися за ним.
Укажіть у полі Агент затверджувача, а в полі Промпт — питання шлюзу. Шлюз
завершується через submit_output у вигляді { "decision": "approved" | "rejected", "reason": "..." }. Вузли Reviewer (prompt) надсилають результат так само.
Диспетчеризація команди
Розділ із назвою «Диспетчеризація команди»Додає ID команди та Режим диспетчеризації. Вибір пропонує рівно два режими:
allParallel— одне завдання на учасника, призупиняється, доки всі не завершаться.manager— запускає лідера, який делегує.
Будь-яке інше збережене значення поводиться як allParallel. Установіть
Редюсер на append, щоб зібрати результат кожного учасника в список під
ключем виходу.
For each і Call sub-pipeline
Розділ із назвою «For each і Call sub-pipeline»For each типово перебирає ключ стану items (extras.iterableKey /
extras.itemKey на вузлі). Він формує свій промпт один раз на елемент (типово
{{item}}) і запускає агента один раз із цими промптами, зчепленими разом.
Порожня колекція завершується негайно з порожнім списком. Це не один паралельний
запуск на кожен елемент.
Call sub-pipeline призупиняється, доки дочірній запуск не досягне кінцевого
стану, потім об’єднує фінальний стан дочірнього запуску під ключем виходу
(типово subflow_result). Укажіть дочірній шаблон через extras.templateId.
Шаблон не може викликати сам себе; невдалий або скасований дочірній запуск
провалює батьківський крок, який потім застосовує політику повторних спроб і
продовження після невдачі цього кроку.
Оголосити входи й дозволити ручні запуски
Розділ із назвою «Оголосити входи й дозволити ручні запуски»Обидва розташовані за кнопкою Ручний запуск у верхній частині редактора.
- Натисніть Ручний запуск.
- Увімкніть Дозволити ручний запуск. Цей перемикач зберігається негайно —
він створює (або видаляє) рядок тригера
manual, завдяки якому шаблон з’являється в селекторі запуску. - Задайте Макс. паралельних запусків, якщо потрібне обмеження (залиште
порожнім для необмеженої кількості). Зайві запуски чекають у стані
queued, доки не звільниться місце. - Натискайте Додати вхід для кожного поля форми, яке має збирати ручний запуск:
| Поле | Опис |
|---|---|
| Ключ | Ключ стану, під яким зберігається значення; посилайтеся на нього як {{key}} |
| Мітка | Відображувана мітка (типово — ключ) |
| Тип | Текст, Багаторядковий текст, Число, Перемикач, Список, Репозиторій |
| Варіанти | Варіанти через кому, лише для Списку |
| Значення за замовчуванням | Попередньо заповнене значення |
| Підказка | Текст-підказка всередині порожнього поля |
| Текст довідки | Допоміжний текст під полем |
| Обов’язкове | Чи блокує форма запуску порожнє значення |
Вхід типу Репозиторій показує вибір із репозиторіїв робочого простору й
заповнює repo_id, repo_local_path, repo_full_name, а коли репозиторій має
GitHub-remote — repo_owner і repo_name у корисному навантаженні запуску.
- Натисніть Зберегти в діалозі. Зміни входів додаються до чернетки; вони зберігаються, коли ви зберігаєте шаблон.
Зберегти й увімкнути
Розділ із назвою «Зберегти й увімкнути»- Натисніть Зберегти у верхній частині редактора. Доти там показується «Незбережені зміни».
- Поверніться до Налаштування → Робочий простір → Шаблони конвеєрів і переконайтеся, що перемикач у рядку шаблону увімкнено. Рушій відмовляється запускати вимкнений шаблон, і вимкнений шаблон ніколи не з’являється в селекторі запуску.
- Щоб запускати його автоматично, перетягніть тригер із бібліотеки вузлів на полотно — див. Налаштувати тригери конвеєра.
Пов’язані посібники
Розділ із назвою «Пов’язані посібники»- Запустити конвеєр вручну
- Налаштувати тригери конвеєра
- Моніторити запуски конвеєрів
- Довідка з кроків конвеєра