Vytvořte šablonu pipeline
Šablony pipeline se píšou v nastavení pracovního prostoru. Položka Pipelines v postranním panelu pracovního prostoru je fronta běhů. Seznam šablon je jinde a tahle obrazovka akci „vytvořit šablonu“ nemá.
Co znamená každý druh kroku, klíč těla a pole konfigurace, je v typech kroků pipeline.
Vytvoř šablonu
Sekce “Vytvoř šablonu”- Jdi do Nastavení → Pracovní prostor → Šablony pipeline
(
/workspaces/<workspace-id>/settings/pipelines). - Stiskni Nová šablona.
Dialog pro id tu není. Editor se hned otevře na založené kostře
pojmenované Nový pipeline, s automaticky přiděleným id (pipeline_1, pak
pipeline_2, …). Název v záhlaví přejmenuješ kliknutím.
Plátno není prázdné: vstupní uzel Trigger, jeden uzel agenta s promptem s popiskem Step a koncová zarážka, která běh ukončí. Zarážka se nekreslí. Editor tu skrytou zarážku přepojí na každý dosažitelný konec, takže práce, kterou napojíš za Step, se pořád provede.
Přidej uzly
Sekce “Přidej uzly”Postranní panel Knihovna uzlů je v editoru trvale vlevo. Filtruješ ji polem Hledat uzly a položku přetáhneš na plátno. Uzel spadne tam, kam ho pustíš, a nemá žádnou příchozí hranu.
| Uzel v paletě | Druh kroku | Co dělá |
|---|---|---|
| Bash script | listen | Spustí shell skript s dosazením {{state}}; žádný agent se neodesílá |
| Open conversation | listen | Otevře jediný viditelný prostor běhu a jeho checkout; uzly agentů vstoupí do téhle místnosti |
| Clone PR branch | listen | Zjistí větev hlavy PR přes gh pr view a naklonuje ji do adresáře běhu |
| Post PR comment | listen | Pošle sloučená zjištění do PR jako komentář revize na GitHubu |
| Reviewer (prompt) | listen | Odešle specializovaného review agenta; pozastaví se, dokud agent neodešle výsledek |
| Consolidate (join) | join | Počká na několik předchozích větví a pak požádá agenta, aby jejich výstupy sloučil |
| Custom prompt | listen | Obecný uzel řízený promptem, vedený tělem promptAgent |
| Post to space | listen | Pošle zprávu do prostoru pro zprávy |
| Condition / switch (router) | router | Rozvětví tok podle hodnoty stavu |
| If file exists (router) | router | Vede "true", když cesta pod klonem existuje, jinak "false" |
| Any file exists (OR router) | router | Vede "true", když existuje kterákoli uvedená cesta |
| All conditions (AND router) | router | Vede "true" jen tehdy, když existuje každá uvedená cesta |
| Team dispatch | listen | Odešle celý tým a pozastaví se, dokud neskončí |
| Approval gate | listen | Pozastaví se kvůli rozhodnutí o schválení |
| For each (map) | forEach | Vykreslí prompt pro každou položku a pak agenta odešle jednou s těmi prompty spojenými |
| Call sub-pipeline | listen | Spustí jinou šablonu jako vnořený krok |
| Clean up worktrees | listen | Odstraní zastaralé izolované worktree; deterministické, žádný agent se neodesílá |
Knihovna je sdružuje pod Tok a logika, Kontrola PR, Agenti, Zprávy a Kód. Skupina Demo v knihovně není.
Propoj uzly
Sekce “Propoj uzly”Každý pracovní uzel má na pravé hraně kulatý výstupní port. Táhni z toho
portu na jiný uzel a propojíš je. Spouštěče na startu fungují stejně: každý má
vlastní port, takže hrana z Plán nevede zároveň z Ruční spuštění.
Stiskni Přidat krok (+) hned za uzlem a vložíš za něj typ.
Najetím na střed existující hrany a stiskem × spojení zrušíš.
Spojení se upravují i z uzlu, který je přijímá:
- Vyber navazující uzel. Vpravo se otevře jeho panel konfigurace.
- Sjeď na Spouští se z a klepni na čip každého předchozího uzlu, na který má tenhle poslouchat. Klepnutí na vybraný čip spojení odebere.
- Když je předchozí uzel router, pod čipy se objeví blok Klíče trasy
a v něm pro každou hranu z routeru pole Klíč trasy z <uzel>. Zadej
klíč, na který ta hrana vystřelí:
truenebofalseu routerů existence souboru, nebo název větve u přepínače.
Každý uzel spouštěče je vstupní bod. Uzel může poslouchat několik předchůdců (fan-in) a krmit několik následníků (fan-out). Graf musí zůstat acyklický. Editor ti cyklus nezakáže, takže si spojení zkontroluj.
Koncová zarážka se z plátna odfiltruje, takže ji nejde vybrat. Editor ji při každé změně grafu přepojí na každý dosažitelný konec, takže práce napojená za založený Step se pořád provede. Prázdný graf (spouštěč bez navazující práce) uvede samotný spouštěč, aby běh hned skončil.
Nastav uzel
Sekce “Nastav uzel”Vyber uzel a otevře se jeho panel konfigurace. Která pole se ukážou, záleží na těle uzlu.
Každý uzel má Popisek, Vstupní klíče (oddělené čárkou) (klíče stavu, které se čtou při provedení) a pod Pokročilé položky Reducer, Časový limit (ms), Počet pokusů, Pokračovat, pokud tento krok selže a Výstupní schéma (JSON). Uzly listen a join mezi sebou umí přepnout i Druh.
Open conversation
Sekce “Open conversation”Přidá výběr Repozitáře ke klonování (které repozitáře pracovního prostoru se checkoutnou; prázdný výběr znamená žádný), Název prostoru a zaškrtávací pole Otevřít v ní konverzaci. Když je zaškrtnuté, pole Název konverzace pojmenuje proud, se kterým se místnost otevře. Uzly agentů do téhle místnosti vstoupí. Vlastní neotevírají.
Agent s promptem
Sekce “Agent s promptem”Přidá Agent (kterého agenta odeslat), Šablona promptu (vstupy nebo
výstupy předchůdců odkážeš přes {{key}}) a Výstupní klíč.
Časový limit (ms) je v milisekundách. 900000 je 15 minut. Když zadáš
900, krok dostane 0,9 sekundy.
Režim konverzace, ve kterém uzel agenta s promptem běží, na uzlu agenta pole
nemá. Veze se v extras['mode'] (chat, plan nebo review) na uzlu
Open conversation, který místnost založil (výchozí review). Nastavení
na kroku agenta se ignoruje. Klíč se porovnává přesně: jakékoli jiné
hláskování se tiše ignoruje.
Bash script
Sekce “Bash script”Přidá Bash skript. Pole pro pracovní adresář ani prostředí tu nejsou, protože ani jedno nejde nastavit:
- Každý bash krok v běhu sdílí cwd
<cc_root>/pipelines/<runId>/. GITHUB_TOKENse vloží z úložiště přihlašovacích údajů, takžeghagit clone https://x-access-token:$GITHUB_TOKEN@…fungují bez dalšího nastavení.- Skript se spouští jako doslovný spustitelný soubor
bash, takžebashmusí být naPATHhostitele serveru. Na Windows na to mysli.
Router
Sekce “Router”Router vyhodnotí podmínku a vrátí klíč trasy. Engine vystřelí jen navazující hranu, jejíž klíč trasy sedí, a ostatní větve označí jako přeskočené.
Výběr routeru nahradí pole Výstupní klíč editorem podmínky. Vyber jeden ze čtyř režimů:
- Soubor(y) existují — libovolný — vede
"true", když existuje kterákoli uvedená cesta. - Soubory existují — všechny — vede
"true"jen tehdy, když existuje každá uvedená cesta. - Porovnání — porovná hodnotu stavu s literálem.
- Přepínač — vede podle hodnoty klíče stavu a má výchozí větev.
Potom na odchozích hranách nastav odpovídající klíče trasy (viz Propoj uzly).
Skupiny booleovských and / or / not tělo umí, z tohohle formuláře je
ale nenapíšeš. Potřebují ručně napsaný strom predikátů pod extras.predicate.
Úplná slovní zásoba predikátů a operátorů je v
typech kroků pipeline.
Join
Sekce “Join”Vlastní konfiguraci nemá: čeká na všechny své předchozí kroky.
Approval gate
Sekce “Approval gate”Brána odešle schvalujícího agenta do skryté konverzace s promptem brány
a pozastaví se. Schvalovatel se v konverzaci zeptá na tvé rozhodnutí a odešle
ho přes submit_output jako { "decision": "approved" | "rejected", "reason": "..." }.
Rozhodnutí spadne pod výstupní klíč (výchozí approval_decision), takže
navazující router typu přepínač se podle něj může větvit.
Do Agent dej schvalovatele a do Šablona promptu otázku brány. Brána
se vyřeší přes submit_output jako { "decision": "approved" | "rejected", "reason": "..." }. Stejně odesílají i uzly Reviewer (prompt).
Team dispatch
Sekce “Team dispatch”Přidá ID týmu a Režim dispatch. Výběr nabízí přesně dva režimy:
allParallel— jeden úkol na člena, pozastaví se, dokud neskončí všichni.manager— odešle vedoucího, který deleguje.
Jakákoli jiná uložená hodnota se chová jako allParallel. Reducer nastav
na append, ať se výsledek každého člena sebere do seznamu pod výstupním
klíčem.
For each a Call sub-pipeline
Sekce “For each a Call sub-pipeline”For each ve výchozím stavu mapuje klíč stavu items (extras.iterableKey /
extras.itemKey na uzlu). Prompt vykreslí jednou pro každou položku (výchozí
{{item}}) a agenta odešle jednou s těmi prompty spojenými za sebe.
Prázdná kolekce hned skončí prázdným seznamem. Na každou položku nejde
samostatné paralelní odeslání.
Call sub-pipeline se pozastaví, dokud podřízený běh nedojde do koncového
stavu, a potom sloučí konečný stav potomka pod výstupní klíč (výchozí
subflow_result). Na potomka ukážeš přes extras.templateId. Šablona nemůže
volat sama sebe. Selhaný nebo zrušený potomek shodí rodičovský krok a ten pak
použije svou politiku opakování a pokračování při chybě.
Deklaruj vstupy a povol ruční spuštění
Sekce “Deklaruj vstupy a povol ruční spuštění”Obojí je schované za Ruční spuštění v záhlaví editoru.
- Stiskni Ruční spuštění.
- Zapni Povolit ruční spuštění. Přepínač se uloží hned. Založí (nebo
smaže) řádek spouštěče
manual, díky kterému se šablona objeví ve výběru pro spuštění. - Nastav Max. souběžných běhů, když chceš strop (prázdné znamená bez
omezení). Další starty čekají ve stavu
queued, dokud se neuvolní místo. - Stiskni Přidat vstup pro každé pole formuláře, které má ruční běh posbírat:
| Pole | Popis |
|---|---|
| Klíč | Klíč stavu, pod který se hodnota uloží; odkážeš na něj jako {{key}} |
| Popisek | Zobrazovaný popisek (výchozí je klíč) |
| Typ | Text, Víceřádkový text, Číslo, Přepínač, Výběr, Repozitář |
| Možnosti (oddělené čárkou) | Volby jen pro Výběr |
| Výchozí hodnota | Předvyplněná hodnota |
| Zástupný text | Nápověda uvnitř prázdného pole |
| Nápověda | Text pod polem |
| Povinné | Jestli formulář běhu prázdnou hodnotu zablokuje |
Vstup Repozitář vykreslí výběr nad repozitáři pracovního prostoru a do
payloadu běhu doplní repo_id, repo_local_path, repo_full_name a, když
má repozitář remote na GitHubu, i repo_owner a repo_name.
- V dialogu stiskni Uložit. Úpravy vstupů se složí do konceptu a uloží se, až uložíš šablonu.
Ulož a zapni
Sekce “Ulož a zapni”- V záhlaví editoru stiskni Uložit. Než to uděláš, záhlaví ukazuje „Neuložené změny“.
- Vrať se do Nastavení → Pracovní prostor → Šablony pipeline a zkontroluj, že přepínač na řádku šablony je zapnutý. Engine odmítne spustit vypnutou šablonu a vypnutá šablona se ve výběru pro spuštění nikdy neobjeví.
- Aby se spouštěla sama, přetáhni spouštěč z knihovny uzlů na plátno. Viz Nastavte spouštěče pipeline.