Utwórz szablon potoku
Szablony potoków tworzy się w ustawieniach obszaru roboczego. Pozycja Potoki w pasku bocznym obszaru roboczego to kolejka uruchomień, a nie lista szablonów — nie ma tam akcji „utwórz szablon”.
Co oznacza każdy rodzaj kroku, każdy klucz treści i każde pole konfiguracji, opisuje dokumentacja referencyjna rodzajów kroków potoku.
Utwórz szablon
Dział zatytułowany „Utwórz szablon”- Przejdź do Ustawienia → Obszar roboczy → Szablony potoków
(
/workspaces/<workspace-id>/settings/pipelines). - Naciśnij Nowy szablon.
Nie ma okna dialogowego z identyfikatorem. Edytor otwiera się od razu na
przygotowanym szkielecie o nazwie Nowy potok, z automatycznie przydzielonym
identyfikatorem (pipeline_1, potem pipeline_2, …). Kliknij tytuł w nagłówku,
aby go zmienić.
Kanwa nie jest pusta: węzeł wejściowy Trigger, jeden węzeł agenta promptowego z etykietą Step oraz końcowy wartownik, który zamyka uruchomienie. Wartownik nie jest rysowany. Edytor przepina tego ukrytego wartownika na każde osiągalne ujście, więc praca dołączona po Step i tak się wykona.
Dodaj węzły
Dział zatytułowany „Dodaj węzły”Pasek boczny Biblioteka węzłów znajduje się na stałe po lewej stronie edytora. Filtruj go polem Szukaj węzłów i przeciągnij pozycję na kanwę — węzeł wyląduje tam, gdzie go upuścisz, bez połączenia przychodzącego.
| Węzeł palety | Rodzaj kroku | Co robi |
|---|---|---|
| Bash script | listen | Uruchamia skrypt powłoki z podstawianiem {{state}}; agent nie jest wysyłany |
| Open conversation | listen | Otwiera jedną widoczną przestrzeń uruchomienia i jej checkout; węzły agentów dołączają do tego pokoju |
| Clone PR branch | listen | Odnajduje gałąź źródłową PR przez gh pr view i klonuje ją do katalogu uruchomienia |
| Post PR comment | listen | Publikuje scalone ustalenia w PR jako komentarz recenzji GitHub |
| Reviewer (prompt) | listen | Wysyła wyspecjalizowanego agenta recenzenta; wstrzymuje krok, aż agent zgłosi swój wynik |
| Consolidate (join) | join | Czeka na kilka gałęzi nadrzędnych, a następnie prosi agenta o scalenie ich wyników |
| Custom prompt | listen | Ogólny węzeł sterowany promptem, kierowany przez treść promptAgent |
| Post to space | listen | Wysyła wiadomość do przestrzeni wiadomości |
| Condition / switch (router) | router | Rozgałęzia przepływ według wartości stanu |
| If file exists (router) | router | Kieruje "true", gdy ścieżka istnieje pod klonem, w przeciwnym razie "false" |
| Any file exists (OR router) | router | Kieruje "true", gdy istnieje dowolna z wymienionych ścieżek |
| All conditions (AND router) | router | Kieruje "true" tylko wtedy, gdy istnieje każda z wymienionych ścieżek |
| Team dispatch | listen | Wysyła cały zespół i wstrzymuje krok, aż ten zakończy pracę |
| Approval gate | listen | Wstrzymuje przepływ w oczekiwaniu na decyzję o zatwierdzeniu |
| For each (map) | forEach | Renderuje prompt dla każdego elementu, a następnie wysyła agenta raz z tymi promptami połączonymi |
| Call sub-pipeline | listen | Uruchamia inny szablon jako zagnieżdżony krok |
| Clean up worktrees | listen | Usuwa nieaktualne izolowane drzewa robocze; deterministycznie, bez wysyłania agenta |
Biblioteka grupuje je pod Przepływ i logika, Przegląd PR, Agenci, Wiadomości i Kod. Grupy Demo nie ma.
Połącz węzły
Dział zatytułowany „Połącz węzły”Każdy węzeł pracy ma na prawej krawędzi okrągły port wyjściowy. Przeciągnij
z tego portu na inny węzeł, aby je połączyć. Wyzwalacze startowe działają tak
samo: każdy ma własny port, więc połączenie z Harmonogram nie wychodzi
również z Uruchomienie ręczne. Naciśnij Dodaj krok (+) tuż za węzłem,
aby wstawić za nim typ. Najedź na środek istniejącej krawędzi i naciśnij ×, aby
ją odłączyć.
Połączenia edytuje się też z węzła, który je odbiera:
- Wybierz węzeł podrzędny. Jego panel konfiguracji otworzy się po prawej.
- Przewiń do Triggers from i stuknij znacznik każdego węzła nadrzędnego, którego ten ma słuchać. Stuknięcie wybranego znacznika usuwa połączenie.
- Jeśli węzeł nadrzędny jest routerem, pod znacznikami pojawia się blok
Klucze routingu z jednym polem Klucz routingu z <węzeł> na każdą
krawędź routera. Wpisz klucz, na który ta krawędź się uruchamia —
truelubfalsedla routerów „plik istnieje”, albo nazwę przypadku dla przełącznika.
Każdy węzeł wyzwalacza jest punktem wejścia. Węzeł może słuchać kilku elementów nadrzędnych (fan-in) i zasilać kilka elementów podrzędnych (fan-out), a graf musi pozostać acykliczny — nic w edytorze nie powstrzymuje przed połączeniem cyklu, więc sprawdź swoją pracę.
Końcowy wartownik jest odfiltrowany z kanwy, więc nie można go wybrać. Edytor przepina go na każde osiągalne ujście przy każdej zmianie grafu, więc praca dołączona po początkowym Step i tak się wykona. Pusty graf (wyzwalacz bez następników pracy) wymienia sam wyzwalacz, aby uruchomienie zakończyło się natychmiast.
Skonfiguruj węzeł
Dział zatytułowany „Skonfiguruj węzeł”Wybierz węzeł, aby otworzyć jego panel konfiguracji. To, które pola się pojawią, zależy od treści węzła.
Każdy węzeł ma Etykietę, Klucze wejściowe (oddzielone przecinkami klucze stanu odczytywane w czasie wykonania) oraz w sekcji Zaawansowane pole Reducer, Limit czasu (ms), Liczba ponownych prób, Kontynuuj, jeśli ten krok się nie powiedzie i Schemat wyjściowy (JSON). Węzły typu listen i join mogą też przełączać swój Rodzaj między tymi dwoma.
Otwórz rozmowę
Dział zatytułowany „Otwórz rozmowę”Dodaje selektor Repozytoria do sklonowania (które repozytoria obszaru roboczego wyewidencjonować; puste oznacza żadne), pole Nazwa przestrzeni oraz pole wyboru Otwórz w nim rozmowę. Gdy to pole jest zaznaczone, pole Nazwa rozmowy nazywa strumień, od którego pokój się otwiera. Węzły agentów dołączają do tego pokoju — nie otwierają własnego.
Agent z promptem
Dział zatytułowany „Agent z promptem”Dodaje Agent (którego agenta wysłać), Szablon promptu (użyj {{key}}, aby
odnieść się do danych wejściowych lub wyników nadrzędnych) oraz Klucz
wyjściowy.
Limit czasu (ms) jest podawany w milisekundach, a nie w sekundach —
900000 to 15 minut. Wpisanie 900 daje krokowi 0,9 sekundy.
Tryb rozmowy, w którym działa węzeł agenta promptowego, nie ma pola w edytorze na
węźle agenta. Podróżuje w extras['mode'] (chat, plan lub review) na węźle
Open conversation, który utworzył pokój (domyślnie review). Ustawienie go
na kroku agenta jest ignorowane. Klucz jest dopasowywany dokładnie: każda inna
pisownia jest po cichu ignorowana.
Skrypt bash
Dział zatytułowany „Skrypt bash”Dodaje pole Skrypt bash. Nie ma pól katalogu roboczego ani środowiska, bo żadne z nich nie jest konfigurowalne:
- Każdy krok bash w uruchomieniu dzieli katalog roboczy
<cc_root>/pipelines/<runId>/. GITHUB_TOKENjest wstrzykiwany z magazynu poświadczeń, więcghigit clone https://x-access-token:$GITHUB_TOKEN@…działają bez dodatkowej konfiguracji.- Skrypt jest uruchamiany jako dosłowny plik wykonywalny
bash, więcbashmusi znajdować się wPATHhosta serwera. To kwestia systemu Windows.
Router ocenia warunek i zwraca klucz trasy; silnik uruchamia tylko tę krawędź podrzędną, której klucz trasy pasuje, a pozostałe gałęzie oznacza jako pominięte.
Wybranie routera zastępuje pole Klucz wyjściowy edytorem warunku. Wybierz jeden z jego czterech trybów:
- Plik(i) istnieją — dowolny — kieruje
"true", gdy istnieje dowolna z wymienionych ścieżek. - Pliki istnieją — wszystkie — kieruje
"true"tylko wtedy, gdy istnieje każda z wymienionych ścieżek. - Porównanie — porównuje wartość stanu z literałem.
- Przełącznik — kieruje według wartości klucza stanu, z przypadkiem domyślnym.
Następnie ustaw pasujące klucze tras na krawędziach wychodzących (zobacz Połącz węzły).
Grupy logiczne and / or / not są obsługiwane przez treść, ale nie można ich
utworzyć z tego formularza — wymagają ręcznie napisanego drzewa predykatów pod
extras.predicate. Pełny słownik predykatów i operatorów znajduje się w
dokumentacji referencyjnej rodzajów kroków
potoku.
Złączenie
Dział zatytułowany „Złączenie”Brak własnej konfiguracji: czeka na wszystkie swoje kroki nadrzędne.
Bramka zatwierdzenia
Dział zatytułowany „Bramka zatwierdzenia”Bramka wysyła agenta zatwierdzającego do ukrytej rozmowy z promptem bramki i
wstrzymuje krok. Zatwierdzający uzyskuje Twoją decyzję w rozmowie i zgłasza ją
przez submit_output jako { "decision": "approved" | "rejected", "reason": "..." }.
Decyzja trafia pod klucz wyjściowy (domyślnie approval_decision), więc podrzędny
router przełącznika może na niej rozgałęzić.
Ustaw Agent na zatwierdzającego, a Szablon promptu na pytanie bramki.
Bramka rozwiązuje się przez submit_output jako { "decision": "approved" | "rejected", "reason": "..." }. Węzły Reviewer (prompt) zgłaszają w ten sam sposób.
Wysyłanie zespołu
Dział zatytułowany „Wysyłanie zespołu”Dodaje ID zespołu i Tryb wysyłania. Selektor oferuje dokładnie dwa tryby:
allParallel— jedno zadanie na członka, wstrzymuje krok, aż wszystkie się zakończą.manager— wysyła lidera, który deleguje.
Każda inna zapisana wartość zachowuje się jak allParallel. Ustaw Reducer na
append, aby zebrać wynik każdego członka w listę pod kluczem wyjściowym.
For each i wywołanie podpotoku
Dział zatytułowany „For each i wywołanie podpotoku”For each domyślnie iteruje po kluczu stanu items (extras.iterableKey /
extras.itemKey na węźle). Renderuje swój prompt raz na element ({{item}}
domyślnie) i wysyła agenta raz z tymi promptami połączonymi. Pusta kolekcja
kończy się natychmiast z pustą listą. To nie jest jedno równoległe wysłanie na
element.
Call sub-pipeline wstrzymuje krok, aż uruchomienie podrzędne osiągnie stan
końcowy, a następnie scala jego stan końcowy pod kluczem wyjściowym (domyślnie
subflow_result). Wskaż je przez extras.templateId. Szablon nie może wywołać
samego siebie; nieudane lub anulowane uruchomienie podrzędne powoduje
niepowodzenie kroku nadrzędnego, który następnie stosuje politykę ponownych prób
i kontynuacji po niepowodzeniu tego kroku.
Zadeklaruj dane wejściowe i zezwól na ręczne uruchomienia
Dział zatytułowany „Zadeklaruj dane wejściowe i zezwól na ręczne uruchomienia”Oba znajdują się za przyciskiem Ręczne uruchamianie w nagłówku edytora.
- Naciśnij Ręczne uruchamianie.
- Włącz Zezwól na ręczne uruchamianie. Ten przełącznik zapisuje się od razu —
tworzy (lub usuwa) wiersz wyzwalacza
manual, dzięki któremu szablon pojawia się na stronie uruchamiania. - Ustaw Maks. równoległych uruchomień, jeśli chcesz limit (zostaw puste, aby
nie ograniczać). Nadmiarowe uruchomienia czekają w stanie
queued, aż zwolni się miejsce. - Naciśnij Dodaj pole dla każdego pola formularza, które ma zbierać ręczne uruchomienie:
| Pole | Opis |
|---|---|
| Klucz | Klucz stanu, pod którym zapisywana jest wartość; odwołaj się do niego jako {{key}} |
| Etykieta | Etykieta wyświetlana (domyślnie klucz) |
| Typ | Tekst, Tekst wielowierszowy, Liczba, Przełącznik, Lista wyboru, Repozytorium |
| Opcje | Opcje oddzielone przecinkami, tylko dla Listy wyboru |
| Wartość domyślna | Wartość wstępnie wypełniona |
| Tekst zastępczy | Tekst podpowiedzi wewnątrz pustego pola |
| Tekst pomocy | Tekst pomocniczy pod polem |
| Wymagane | Czy formularz uruchomienia blokuje się przy pustej wartości |
Pole Repozytorium renderuje selektor repozytoriów obszaru roboczego i
zapisuje repo_id, repo_local_path, repo_full_name, a — gdy repozytorium ma
zdalne GitHub — także repo_owner i repo_name do danych uruchomienia.
- Naciśnij Zapisz w oknie dialogowym. Zmiany pól wejściowych są zwijane do wersji roboczej; zostają zachowane, gdy zapiszesz szablon.
Zapisz i włącz
Dział zatytułowany „Zapisz i włącz”- Naciśnij Zapisz w nagłówku edytora. Do tego czasu nagłówek pokazuje „Niezapisane zmiany”.
- Wróć do Ustawienia → Obszar roboczy → Szablony potoków i sprawdź, czy przełącznik w wierszu szablonu jest włączony. Silnik odmawia uruchomienia wyłączonego szablonu, a wyłączony szablon nigdy nie pojawia się na stronie uruchamiania.
- Aby uruchamiał się automatycznie, przeciągnij wyzwalacz z biblioteki węzłów na kanwę — zobacz Skonfiguruj wyzwalacze potoków.
Powiązane poradniki
Dział zatytułowany „Powiązane poradniki”- Uruchom potok ręcznie
- Skonfiguruj wyzwalacze potoków
- Monitoruj uruchomienia potoków
- Rodzaje kroków potoku