Buat templat pipeline
Templat pipeline disusun di pengaturan ruang kerja. Entri Pipeline di bilah sisi ruang kerja adalah antrean eksekusi, bukan daftar templat — di sana tidak ada tindakan “buat templat”.
Untuk mengetahui arti setiap jenis langkah, kunci badan, dan kolom konfigurasi, lihat referensi langkah pipeline.
Buat templat
Bagian berjudul “Buat templat”- Buka Pengaturan → Ruang kerja → Template pipeline
(
/workspaces/<workspace-id>/settings/pipelines). - Tekan Template baru.
Tidak ada dialog id. Editor langsung terbuka pada kerangka yang telah disemai
bernama Pipeline baru, dengan id yang dialokasikan otomatis (pipeline_1,
lalu pipeline_2, …). Klik judul di header untuk mengganti namanya.
Kanvasnya tidak kosong: satu node entri Trigger, satu node agen prompt berlabel Step, dan satu sentin terminal yang mengakhiri eksekusi. Sentin itu tidak digambar. Editor menghubungkan ulang terminal tersembunyi tersebut ke setiap titik akhir yang dapat dijangkau, sehingga pekerjaan yang Anda lampirkan setelah Step tetap berjalan.
Tambahkan node
Bagian berjudul “Tambahkan node”Bilah sisi Pustaka node selalu berada di kiri editor. Saring dengan kotak Cari node dan seret entri ke kanvas — node mendarat di tempat Anda melepasnya, tanpa koneksi masuk.
| Node palet | Jenis langkah | Apa yang dilakukannya |
|---|---|---|
| Bash script | listen | Menjalankan skrip shell dengan substitusi {{state}}; tidak ada agen yang dikirim |
| Open conversation | listen | Membuka satu space yang terlihat untuk eksekusi ini beserta checkout-nya; node agen bergabung ke ruangan ini |
| Clone PR branch | listen | Menemukan branch head PR melalui gh pr view lalu mengkloningnya ke direktori eksekusi |
| Post PR comment | listen | Memposting temuan yang telah dikonsolidasikan ke PR sebagai komentar tinjauan GitHub |
| Reviewer (prompt) | listen | Mengirim agen peninjau spesialis; menangguhkan langkah sampai agen mengirimkan hasilnya |
| Consolidate (join) | join | Menunggu beberapa cabang hulu, lalu meminta agen mengonsolidasikan output mereka |
| Custom prompt | listen | Node generik berbasis prompt yang dirutekan melalui badan promptAgent |
| Post to space | listen | Mengirim pesan ke space perpesanan |
| Condition / switch (router) | router | Mencabangkan alur berdasarkan nilai state |
| If file exists (router) | router | Merutekan "true" saat sebuah path ada di bawah klon, jika tidak "false" |
| Any file exists (OR router) | router | Merutekan "true" saat salah satu path yang terdaftar ada |
| All conditions (AND router) | router | Merutekan "true" hanya saat semua path yang terdaftar ada |
| Team dispatch | listen | Mengirim satu tim penuh dan menangguhkan langkah sampai tim itu selesai |
| Approval gate | listen | Berhenti sejenak menunggu keputusan persetujuan |
| For each (map) | forEach | Merender prompt per item, lalu mengirim agen sekali dengan prompt-prompt itu digabungkan |
| Call sub-pipeline | listen | Menjalankan templat lain sebagai langkah bersarang |
| Clean up worktrees | listen | Menghapus worktree terisolasi yang sudah usang; deterministik, tidak ada agen yang dikirim |
Pustaka ini mengelompokkannya dalam Alur & logika, Tinjauan PR, Agen, Pesan, dan Kode. Tidak ada grup Demo.
Hubungkan node
Bagian berjudul “Hubungkan node”Setiap node kerja memiliki port output berbentuk lingkaran di tepi kanannya.
Seret dari port itu ke node lain untuk menghubungkan keduanya. Pemicu awal juga
sama: masing-masing memiliki portnya sendiri, sehingga kabel dari Jadwal
tidak juga keluar dari Run manual. Tekan Tambah langkah (+) tepat
setelah sebuah node untuk menyisipkan satu jenis langkah di belakangnya. Arahkan
kursor ke titik tengah koneksi yang sudah ada dan tekan × untuk memutusnya.
Koneksi juga dapat diedit dari node yang menerimanya:
- Pilih node hilir. Panel konfigurasinya terbuka di sebelah kanan.
- Gulir ke Pemicu dari dan ketuk chip untuk setiap node hulu yang harus didengarkan node ini. Mengetuk chip yang sudah dipilih akan menghapus koneksinya.
- Jika node hulu adalah router, blok Kunci rute muncul di bawah chip dengan
satu kolom Kunci rute dari <node> per koneksi router. Masukkan kunci
yang memicu koneksi tersebut —
trueataufalseuntuk router file-exists, atau nama kasus untuk switch.
Setiap node pemicu adalah titik masuk. Sebuah node dapat mendengarkan beberapa hulu (fan-in) dan memberi masukan ke beberapa hilir (fan-out), dan graf harus tetap asiklik — tidak ada apa pun di editor yang mencegah Anda membuat siklus, jadi periksa pekerjaan Anda.
Sentin terminal disaring keluar dari kanvas, sehingga tidak dapat dipilih. Editor menghubungkan ulang sentin itu ke setiap titik akhir yang dapat dijangkau setiap kali graf berubah, sehingga pekerjaan yang Anda lampirkan setelah Step yang telah disemai tetap berjalan. Graf kosong (pemicu tanpa penerus kerja) mencantumkan pemicunya sendiri agar eksekusi selesai seketika.
Konfigurasikan node
Bagian berjudul “Konfigurasikan node”Pilih sebuah node untuk membuka panel konfigurasinya. Kolom yang muncul bergantung pada badan node tersebut.
Setiap node memiliki Label, Kunci input (kunci state yang dipisahkan koma, dibaca saat eksekusi) dan, di bawah Lanjutan, Reducer, Batas waktu (ms), Percobaan ulang, Lanjutkan jika langkah ini gagal, dan Skema output (JSON). Node listen dan join juga dapat mengalihkan Jenis-nya antara keduanya.
Buka percakapan
Bagian berjudul “Buka percakapan”Menambahkan pemilih cakupan repo (repo ruang kerja mana yang akan di-checkout; kosong berarti tidak ada), Nama space, dan kotak centang Buka percakapan di dalamnya. Saat kotak centang itu aktif, kolom Nama percakapan memberi nama stream yang dibuka ruangan tersebut. Node agen bergabung ke ruangan ini — node agen tidak membuka ruangannya sendiri.
Agen prompt
Bagian berjudul “Agen prompt”Menambahkan Agen (agen mana yang dikirim), Prompt (gunakan {{key}}
untuk merujuk input atau output hulu), dan Kunci output.
Batas waktu (ms) dinyatakan dalam milidetik, bukan detik — 900000
berarti 15 menit. Memasukkan 900 memberi langkah itu 0,9 detik.
Mode percakapan yang dijalankan oleh node agen prompt tidak memiliki kolom di
editor pada node agen. Mode itu dibawa melalui extras['mode'] (chat, plan,
atau review) pada node Open conversation yang membuat ruangan tersebut
(default review). Menyetelnya pada langkah agen akan diabaikan. Kunci tersebut
dicocokkan secara persis: ejaan lain apa pun diabaikan secara diam-diam.
Skrip bash
Bagian berjudul “Skrip bash”Menambahkan Skrip. Tidak ada kolom direktori kerja maupun lingkungan, karena keduanya tidak dapat dikonfigurasi:
- Setiap langkah bash dalam satu eksekusi berbagi cwd
<cc_root>/pipelines/<runId>/. GITHUB_TOKENdisuntikkan dari penyimpanan kredensial, sehinggaghdangit clone https://x-access-token:$GITHUB_TOKEN@…berfungsi tanpa penyiapan.- Skrip dijalankan sebagai executable literal
bash, sehinggabashharus ada diPATHhost server. Hal ini perlu diperhatikan di Windows.
Router
Bagian berjudul “Router”Router mengevaluasi suatu kondisi dan mengembalikan kunci rute; mesin hanya memicu koneksi hilir yang kunci rutenya cocok dan menandai cabang lainnya sebagai dilewati.
Memilih router akan menggantikan kolom Kunci output dengan editor kondisi. Pilih salah satu dari empat modenya:
- File ada — salah satu — merutekan
"true"saat salah satu path yang terdaftar ada. - File ada — semua — merutekan
"true"hanya saat semua path yang terdaftar ada. - Perbandingan — membandingkan nilai state dengan literal.
- Alih — merutekan berdasarkan nilai kunci state, dengan kasus default.
Lalu setel kunci rute yang sesuai pada koneksi keluaran (lihat Hubungkan node).
Grup boolean and / or / not didukung oleh badan langkah tetapi tidak dapat
dibuat dari formulir ini — grup itu memerlukan pohon predikat yang ditulis tangan
di bawah extras.predicate. Kosakata lengkap predikat dan operator ada di
referensi langkah pipeline.
Tidak ada konfigurasi tersendiri: node ini menunggu semua langkah hulunya.
Gerbang persetujuan
Bagian berjudul “Gerbang persetujuan”Gerbang ini mengirim agen penyetuju ke percakapan tersembunyi dengan prompt
gerbang lalu menangguhkan langkah. Agen penyetuju meminta keputusan Anda di
percakapan tersebut dan mengirimkannya dengan submit_output dalam bentuk
{ "decision": "approved" | "rejected", "reason": "..." }. Keputusan itu
tersimpan di bawah kunci output (default approval_decision), sehingga router
alih di hilir dapat bercabang berdasarkan keputusan tersebut.
Setel Agen ke agen penyetuju dan Prompt ke pertanyaan gerbang. Gerbang
diselesaikan melalui submit_output dalam bentuk
{ "decision": "approved" | "rejected", "reason": "..." }. Node Reviewer
(prompt) mengirimkan dengan cara yang sama.
Pengiriman tim
Bagian berjudul “Pengiriman tim”Menambahkan ID tim dan Mode dispatch. Pemilihnya menawarkan tepat dua mode:
allParallel— satu tugas per anggota, menangguhkan langkah sampai semua selesai.manager— mengirim pemimpin, yang kemudian mendelegasikan.
Nilai lain yang tersimpan berperilaku sebagai allParallel. Setel Reducer
ke append untuk mengumpulkan hasil setiap anggota ke dalam daftar di bawah
kunci output.
For each dan Call sub-pipeline
Bagian berjudul “For each dan Call sub-pipeline”For each memetakan pada kunci state items secara default
(extras.iterableKey / extras.itemKey pada node). Node ini merender promptnya
sekali per item ({{item}} secara default) dan mengirim agen sekali dengan
prompt-prompt tersebut digabungkan. Koleksi kosong selesai seketika dengan daftar
kosong. Ini bukan satu pengiriman paralel per item.
Call sub-pipeline menangguhkan langkah sampai eksekusi anak mencapai status
terminal, lalu menggabungkan state akhir anak di bawah kunci output (default
subflow_result). Arahkan ke anak dengan extras.templateId. Templat tidak
dapat memanggil dirinya sendiri; anak yang gagal atau dibatalkan menggagalkan
langkah induk, yang kemudian meneruskan ke kebijakan percobaan ulang dan lanjut
saat gagal langkah tersebut.
Deklarasikan input dan izinkan eksekusi manual
Bagian berjudul “Deklarasikan input dan izinkan eksekusi manual”Keduanya berada di balik Eksekusi manual di header editor.
- Tekan Eksekusi manual.
- Aktifkan Izinkan eksekusi manual. Sakelar ini langsung tersimpan — ia
membuat (atau menghapus) baris pemicu
manualyang membuat templat muncul di pemilih eksekusi. - Setel Maks. eksekusi paralel jika Anda ingin membatasi (biarkan kosong
untuk tanpa batas). Eksekusi tambahan menunggu dalam status
queuedsampai ada slot yang bebas. - Tekan Tambah input untuk setiap kolom formulir yang harus dikumpulkan oleh eksekusi manual:
| Kolom | Keterangan |
|---|---|
| Kunci | Kunci state tempat nilai disimpan; rujuk sebagai {{key}} |
| Label | Label tampilan (defaultnya adalah kunci) |
| Tipe | Teks, Teks multi-baris, Angka, Sakelar, Pilihan, Repository |
| Opsi (dipisahkan koma) | Pilihan yang dipisahkan koma, hanya untuk Pilihan |
| Nilai default | Nilai yang telah diisi sebelumnya |
| Placeholder | Teks petunjuk di dalam kolom yang kosong |
| Teks bantuan | Teks bantuan di bawah kolom |
| Wajib | Apakah formulir eksekusi memblokir nilai yang kosong |
Input Repository merender pemilih atas repo ruang kerja dan mengisi
repo_id, repo_local_path, repo_full_name dan — saat repo memiliki remote
GitHub — repo_owner dan repo_name ke dalam payload eksekusi.
- Tekan Simpan di dialog. Perubahan input dilipat ke dalam draf; perubahan itu tersimpan saat Anda menyimpan templat.
Simpan dan aktifkan
Bagian berjudul “Simpan dan aktifkan”- Tekan Simpan di header editor. Header menampilkan “Perubahan belum disimpan” sampai Anda melakukannya.
- Kembali ke Pengaturan → Ruang kerja → Template pipeline dan pastikan sakelar baris templat itu aktif. Mesin menolak memulai templat yang dinonaktifkan dan templat yang dinonaktifkan tidak pernah muncul di pemilih eksekusi.
- Untuk memulainya secara otomatis, seret pemicu dari pustaka node ke kanvas — lihat Siapkan pemicu pipeline.
Panduan terkait
Bagian berjudul “Panduan terkait”- Jalankan pipeline secara manual
- Siapkan pemicu pipeline
- Pantau eksekusi pipeline
- Referensi langkah pipeline