Gå til innholdet

Opprett en pipeline-mal

Pipeline-maler lages i innstillingene for arbeidsområdet. Oppføringen Pipelines i sidepanelet til arbeidsområdet er kjøringskøen, ikke mallisten — den har ingen «opprett mal»-handling.

For hva hver stegtype, kroppsnøkkel og konfigurasjonsfelt betyr, se Pipeline-stegtyper.

  1. Gå til Innstillinger → Arbeidsområde → Pipeline-maler (/workspaces/<workspace-id>/settings/pipelines).
  2. Trykk Ny mal.

Det finnes ingen id-dialog. Editoren åpnes umiddelbart på et forhåndsutfylt skjelett som heter Ny pipeline, med en automatisk tildelt id (pipeline_1, deretter pipeline_2, …). Klikk på tittelen i toppteksten for å gi den nytt navn.

Lerretet er ikke tomt: en inngangsnode Trigger, én promptagentnode merket Step og en terminal vaktpost som avslutter kjøringen. Vaktposten tegnes ikke. Editoren kobler den skjulte terminalen til hver nåbar mottaker, slik at arbeid du kobler på etter Step, fortsatt kjører.

Sidepanelet Nodebibliotek ligger permanent til venstre i editoren. Filtrer det med boksen Søk i noder, og dra en oppføring ut på lerretet — noden lander der du slipper den, uten innkommende kobling.

Palettenode Stegtype Hva den gjør
Bash script listen Kjører et skallskript med {{state}}-substitusjon; ingen agent sendes ut
Open conversation listen Åpner kjøringens ene synlige område og utsjekkingen der; agentnoder blir med i rommet
Clone PR branch listen Finner PR-ens head-gren via gh pr view og kloner den til kjøringskatalogen
Post PR comment listen Publiserer samlede funn til PR-en som en GitHub-gjennomgangskommentar
Reviewer (prompt) listen Sender ut en spesialisert reviewer-agent; settes på pause til agenten leverer
Consolidate (join) join Venter på flere oppstrømsgrener og ber deretter en agent slå sammen utdataene deres
Custom prompt listen Generisk promptstyrt node som rutes gjennom kroppen promptAgent
Post to space listen Sender en melding til et meldingsområde
Condition / switch (router) router Forgrener flyten på en tilstandsverdi
If file exists (router) router Ruter "true" når en sti finnes under klonen, ellers "false"
Any file exists (OR router) router Ruter "true" når en av de oppgitte stiene finnes
All conditions (AND router) router Ruter "true" bare når alle oppgitte stier finnes
Team dispatch listen Sender ut et helt team og settes på pause til det er ferdig
Approval gate listen Settes på pause i påvente av en godkjenningsavgjørelse
For each (map) forEach Gjengir en prompt per element og sender deretter ut agenten én gang med promptene slått sammen
Call sub-pipeline listen Kjører en annen mal som et nestet steg
Clean up worktrees listen Fjerner foreldede isolerte worktreer; deterministisk, ingen agent sendes ut

Biblioteket grupperer disse under Flyt og logikk, PR-gjennomgang, Agenter, Meldinger og Kode. Det finnes ingen Demogruppe.

Hver arbeidsnode har en sirkulær utgangsport på høyre kant. Dra fra den porten til en annen node for å koble dem sammen. Startutløsere er like: hver av dem har sin egen port, så en ledning fra Tidsplan går ikke også ut fra Manuell kjøring. Trykk Legg til steg (+) rett etter en node for å sette inn en type etter den. Hold markøren over midtpunktet på en eksisterende kant, og trykk × for å koble den fra.

Koblinger redigeres også fra noden som mottar dem:

  1. Velg noden nedstrøms. Konfigurasjonspanelet åpnes til høyre.
  2. Rull til Triggers from og trykk på brikken for hver oppstrømsnode denne skal lytte til. Å trykke på en valgt brikke fjerner koblingen.
  3. Hvis en oppstrømsnode er en ruter, vises en blokk Rutenøkler under brikkene, med ett felt Rutenøkkel fra <node> per ruter-kant. Skriv inn nøkkelen den kanten fyrer på — true eller false for fil-finnes-ruterne, eller navnet på tilfellet for en bryter.

Hver utløsernode er et inngangspunkt. En node kan lytte til flere oppstrømsnoder (fan-in) og føre videre til flere nedstrømsnoder (fan-out), og grafen må forbli asyklisk — ingenting i editoren hindrer deg i å koble en syklus, så sjekk arbeidet ditt.

Den terminale vaktposten filtreres bort fra lerretet, så den kan ikke velges. Editoren kobler den på nytt til hver nåbar mottaker hver gang grafen endres, slik at arbeid du kobler på etter den forhåndsplasserte Step-noden, fortsatt kjører. En tom graf (utløser uten arbeidsefterfølgere) lister opp utløseren selv, slik at en kjøring fullføres umiddelbart.

Velg en node for å åpne konfigurasjonspanelet. Hvilke felt som vises, avhenger av nodens kropp.

Hver node har Etikett, Inndatanøkler (kommaseparerte tilstandsnøkler som leses ved kjøring) og, under Avansert, Reducer, Tidsavbrudd (ms), Nye forsøk, Fortsett hvis dette steget feiler og Utdataskjema. Lytte- og join-noder kan også bytte Type mellom de to.

Legger til velgeren Arkiv som skal klones (hvilke repoer i arbeidsområdet som skal sjekkes ut; tomt betyr ingen), feltet Områdenavn og avmerkingsboksen Åpne en samtale i det. Når avmerkingsboksen er på, navngir Samtalenavn strømmen rommet åpnes med. Agentnoder blir med i dette rommet — de åpner ikke sitt eget.

Legger til Agent (hvilken agent som skal sendes ut), Promptmal (bruk {{key}} for å referere til inndata eller utdata fra oppstrømsnoder) og Utdatanøkkel.

Tidsavbrudd (ms) er i millisekunder, ikke sekunder — 900000 er 15 minutter. Oppgir du 900, får steget 0,9 sekunder.

Samtalemodusen en promptagentnode kjører under, har ikke noe editorfelt på agentnoden. Den ligger i extras['mode'] (chat, plan eller review) på Open conversation-noden som opprettet rommet (standard review). Angir du den på et agentsteg, ignoreres den. Nøkkelen matches eksakt: enhver annen stavemåte ignoreres i stillhet.

Legger til Bash-skript. Det finnes ingen felt for arbeidskatalog eller miljøvariabler, fordi ingen av delene kan konfigureres:

  • Hvert bash-steg i en kjøring deler arbeidskatalogen <cc_root>/pipelines/<runId>/.
  • GITHUB_TOKEN injiseres fra lageret for påloggingsinformasjon, så gh og git clone https://x-access-token:$GITHUB_TOKEN@… fungerer uten oppsett.
  • Skriptet startes som den bokstavelige kjørbare filen bash, så bash må ligge i PATH på serververten. Det er noe å tenke på i Windows.

En ruter evaluerer en betingelse og returnerer en rutenøkkel; motoren fyrer bare den nedstrømskanten hvis rutenøkkel samsvarer, og markerer de andre grenene som hoppet over.

Når du velger en ruter, erstattes feltet Utdatanøkkel med betingelseseditoren. Velg én av de fire modusene:

  • Fil(er) finnes — hvilken som helst — ruter "true" når en av de oppgitte stiene finnes.
  • Filer finnes — alle — ruter "true" bare når alle oppgitte stier finnes.
  • Sammenligning — sammenligner en tilstandsverdi mot en literal.
  • Bryter — ruter på verdien til en tilstandsnøkkel, med et standardtilfelle.

Angi deretter de samsvarende rutenøklene på de utgående kantene (se Koble noder sammen).

Boolske grupper med and / or / not støttes av kroppen, men kan ikke lages fra dette skjemaet — de krever et håndskrevet predikattre under extras.predicate. Det fullstendige vokabularet for predikater og operatorer finnes i Pipeline-stegtyper.

Ingen egen konfigurasjon: den venter på alle oppstrømsstegene sine.

Porten sender ut godkjenneragenten i en skjult samtale med portens prompt og setter seg på pause. Godkjenneren innhenter avgjørelsen din i samtalen og leverer den med submit_output som { "decision": "approved" | "rejected", "reason": "..." }. Avgjørelsen havner under utdatanøkkelen (standard approval_decision), slik at en bryterruter nedstrøms kan forgrene seg på den.

Sett Agent til godkjenneren og Promptmal til portens spørsmål. Porten løses ut gjennom submit_output som { "decision": "approved" | "rejected", "reason": "..." }. Reviewer (prompt)-noder leverer på samme måte.

Legger til Team-ID og Dispatch-modus. Velgeren tilbyr nøyaktig to moduser:

  • allParallel — én oppgave per medlem, settes på pause til alle er ferdige.
  • manager — sender ut lederen, som delegerer.

Enhver annen lagret verdi oppfører seg som allParallel. Sett Reducer til append for å samle hvert medlems resultat i en liste under utdatanøkkelen.

For hver mapper over tilstandsnøkkelen items som standard (extras.iterableKey / extras.itemKey på noden). Den gjengir prompten sin én gang per element ({{item}} som standard) og sender ut agenten én gang med disse promptene sammenkoblet. En tom samling fullføres umiddelbart med en tom liste. Det er ikke én parallell utsending per element.

Kall underpipeline settes på pause til barnekjøringen når en terminaltilstand, og fletter deretter barnets endelige tilstand inn under utdatanøkkelen (standard subflow_result). Pek den mot et barn med extras.templateId. En mal kan ikke kalle seg selv; et barn som feiler eller avbrytes, får foreldresteget til å feile, og det mater deretter stegets policy for nye forsøk og fortsett-ved-feil.

Begge ligger bak Manuell kjøring i toppteksten til editoren.

  1. Trykk Manuell kjøring.
  2. Slå på Tillat manuell kjøring. Denne bryteren lagres umiddelbart — den oppretter (eller sletter) utløserraden manual som gjør at malen vises i kjøringsvelgeren.
  3. Angi Maks parallelle kjøringer hvis du vil ha en øvre grense (la stå tomt for ubegrenset). Ekstra starter venter i tilstanden queued til en plass blir ledig.
  4. Trykk Legg til inndata for hvert skjemafelt en manuell kjøring skal samle inn:
Felt Beskrivelse
Nøkkel Tilstandsnøkkelen verdien lagres under; referer til den som {{key}}
Etikett Visningsetikett (standard er nøkkelen)
Type Tekst, Flerlinjetekst, Tall, Bryter, Velg, Arkiv
Alternativer Kommaseparerte valg, bare for Velg
Standardverdi Forhåndsutfylt verdi
Plassholder Vinketekst inne i det tomme feltet
Hjelpetekst Hjelpetekst under feltet
Påkrevd Om kjøringsskjemaet blokkerer på en tom verdi

En inndata av typen Arkiv viser en velger over arbeidsområdets repoer og fyller repo_id, repo_local_path, repo_full_name og — når repoet har en GitHub-remote — repo_owner og repo_name inn i kjøringens nyttelast.

  1. Trykk Lagre i dialogen. Endringer i inndata flettes inn i utkastet; de beholdes når du lagrer malen.
  1. Trykk Lagre i toppteksten til editoren. Toppteksten viser «Ulagrede endringer» til du gjør det.
  2. Gå tilbake til Innstillinger → Arbeidsområde → Pipeline-maler og kontroller at bryteren i raden til malen er på. Motoren nekter å starte en deaktivert mal, og en deaktivert mal vises aldri i kjøringsvelgeren.
  3. For å starte den automatisk, dra en utløser fra nodebiblioteket ut på lerretet — se Sett opp pipeline-utløsere.