Langkau ke kandungan

Cipta templat pipeline

Templat pipeline dikarang dalam tetapan ruang kerja. Entri Pipeline dalam bar sisi ruang kerja ialah baris gilir larian, bukan senarai templat — ia tiada tindakan “cipta templat”.

Untuk mengetahui maksud setiap jenis langkah, kunci badan dan medan konfigurasi, lihat rujukan langkah pipeline.

  1. Pergi ke Tetapan → Ruang kerja → Templat pipeline (/workspaces/<workspace-id>/settings/pipelines).
  2. Tekan Templat baharu.

Tiada dialog id. Editor terbuka serta-merta pada rangka kerja yang telah disemai bernama Pipeline baharu, dengan id yang diperuntukkan secara automatik (pipeline_1, kemudian pipeline_2, …). Klik tajuk dalam pengepala untuk menamakannya semula.

Kanvas tidak kosong: satu nod kemasukan Trigger, satu nod ejen prompt berlabel Step dan satu sentinel terminal yang menamatkan larian. Sentinel itu tidak dilukis. Editor menyambung semula terminal tersembunyi itu ke setiap titik akhir yang boleh dicapai, jadi kerja yang anda lampirkan selepas Step tetap berjalan.

Bar sisi Pustaka nod sentiasa berada di kiri editor. Tapisnya dengan kotak Cari nod dan seret satu entri ke kanvas — nod itu mendarat di tempat anda melepaskannya, tanpa sambungan masuk.

Nod palet Jenis langkah Apa yang dilakukannya
Bash script listen Menjalankan skrip shell dengan penggantian {{state}}; tiada ejen dihantar
Open conversation listen Membuka satu-satunya ruang yang kelihatan bagi larian itu dan checkout-nya; nod ejen menyertai bilik ini
Clone PR branch listen Menemui cawangan head PR melalui gh pr view dan mengklonnya ke direktori larian
Post PR comment listen Menyiarkan dapatan yang digabungkan ke PR sebagai komen semakan GitHub
Reviewer (prompt) listen Menghantar ejen penyemak pakar; menangguhkan sehingga ejen menyerahkan hasilnya
Consolidate (join) join Menunggu beberapa cabang huluan, kemudian meminta ejen menggabungkan output mereka
Custom prompt listen Nod dipacu prompt generik yang dialirkan melalui badan promptAgent
Post to space listen Menghantar mesej ke ruang pemesejan
Condition / switch (router) router Mencabangkan aliran berdasarkan nilai keadaan
If file exists (router) router Mengeluarkan kunci laluan "true" apabila sesuatu laluan wujud di bawah klon, jika tidak "false"
Any file exists (OR router) router Mengeluarkan kunci laluan "true" apabila mana-mana laluan yang disenaraikan wujud
All conditions (AND router) router Mengeluarkan kunci laluan "true" hanya apabila setiap laluan yang disenaraikan wujud
Team dispatch listen Menghantar keseluruhan pasukan dan menangguhkan sehingga ia selesai
Approval gate listen Berhenti seketika untuk keputusan kelulusan
For each (map) forEach Memaparkan prompt bagi setiap item, kemudian menghantar ejen sekali dengan prompt itu dicantumkan
Call sub-pipeline listen Menjalankan templat lain sebagai langkah bersarang
Clean up worktrees listen Membuang worktree terasing yang lapuk; deterministik, tiada ejen dihantar

Pustaka ini mengelompokkan semua ini di bawah Aliran & logik, Semakan PR, Ejen, Pemesejan dan Kod. Tiada kumpulan Demo.

Setiap nod kerja mempunyai port output bulat di tepi kanannya. Seret dari port itu ke nod lain untuk menyambungkannya. Pencetus permulaan juga sama: setiap satu memiliki portnya sendiri, jadi wayar dari Jadual tidak juga keluar dari Larian manual. Tekan Tambah langkah (+) tepat selepas satu nod untuk menyisipkan satu jenis selepasnya. Tuding titik tengah tepi yang sedia ada dan tekan × untuk memutuskan sambungan.

Sambungan juga boleh diedit dari nod yang menerimanya:

  1. Pilih nod hiliran. Panel konfigurasinya terbuka di sebelah kanan.
  2. Tatal ke Pencetus dari dan ketik cip bagi setiap nod huluan yang perlu didengari nod ini. Mengetik cip yang dipilih akan membuang sambungan itu.
  3. Jika nod huluan ialah router, blok Kunci laluan muncul di bawah cip dengan satu medan Kunci laluan dari <node> bagi setiap tepi router. Masukkan kunci yang dicetuskan oleh tepi itu — true atau false untuk router fail-wujud, atau nama kes untuk suis.

Setiap nod pencetus ialah titik kemasukan. Satu nod boleh mendengar beberapa huluan (fan-in) dan menyuap beberapa hiliran (fan-out), dan graf itu mesti kekal asiklik — tiada apa-apa dalam editor menghalang anda daripada menyambung kitaran, jadi semak kerja anda.

Sentinel terminal ditapis keluar dari kanvas, jadi ia tidak boleh dipilih. Editor menyambung semula sentinel itu ke setiap titik akhir yang boleh dicapai setiap kali graf berubah, jadi kerja yang anda lampirkan selepas Step yang disemai tetap berjalan. Graf kosong (pencetus tanpa pengganti kerja) menyenaraikan pencetus itu sendiri supaya satu larian selesai serta-merta.

Pilih satu nod untuk membuka panel konfigurasinya. Medan yang muncul bergantung pada badan nod itu.

Setiap nod mempunyai Label, Kunci input (kunci keadaan yang dipisahkan koma, dibaca pada masa pelaksanaan) dan, di bawah Lanjutan, Pengurang, Tamat masa (ms), Percubaan semula, Teruskan jika langkah ini gagal dan Skema output (JSON). Nod listen dan join juga boleh menukar Jenis-nya antara kedua-duanya.

Menambah pemilih skop repo (repositori ruang kerja mana yang hendak di-checkout; kosong bermaksud tiada), satu Nama ruang, dan kotak centang Buka perbualan di dalamnya. Apabila kotak centang itu dihidupkan, medan Nama perbualan menamakan strim yang dibuka oleh bilik itu. Nod ejen menyertai bilik ini — ia tidak membuka biliknya sendiri.

Menambah Ejen (ejen mana yang hendak dihantar), Templat prompt (gunakan {{key}} untuk merujuk input atau output huluan) dan Kunci output.

Tamat masa (ms) adalah dalam milisaat, bukan saat — 900000 ialah 15 minit. Memasukkan 900 memberi langkah itu 0.9 saat.

Modus perbualan yang digunakan oleh nod ejen prompt tiada medan editor pada nod ejen. Ia menumpang extras['mode'] (chat, plan atau review) pada nod Open conversation yang mencipta bilik itu (lalai review). Menetapkannya pada langkah ejen diabaikan. Kunci itu dipadankan dengan tepat: sebarang ejaan lain diabaikan secara senyap.

Menambah Skrip Bash. Tiada medan direktori kerja atau persekitaran, kerana kedua-duanya tidak boleh dikonfigurasi:

  • Setiap langkah bash dalam satu larian berkongsi cwd <cc_root>/pipelines/<runId>/.
  • GITHUB_TOKEN disuntik daripada stor kelayakan, jadi gh dan git clone https://x-access-token:$GITHUB_TOKEN@… berfungsi tanpa penyediaan.
  • Skrip itu dilancarkan sebagai boleh laksana literal bash, jadi bash mesti ada pada PATH hos pelayan. Itu pertimbangan Windows.

Router menilai satu syarat dan memulangkan kunci laluan; enjin hanya memicu tepi hiliran yang kunci laluannya sepadan dan menandakan cabang lain sebagai dilangkau.

Memilih router menggantikan medan Kunci output dengan editor syarat. Pilih salah satu daripada empat modusnya:

  • Fail wujud — mana-mana — mengeluarkan kunci laluan "true" apabila mana-mana laluan yang disenaraikan wujud.
  • Fail wujud — semua — mengeluarkan kunci laluan "true" hanya apabila setiap laluan yang disenaraikan wujud.
  • Perbandingan — membandingkan nilai keadaan dengan satu literal.
  • Suis — mengeluarkan laluan berdasarkan nilai kunci keadaan, dengan satu kes lalai.

Kemudian tetapkan kunci laluan yang sepadan pada tepi keluar (lihat Sambungkan nod).

Kumpulan boolean and / or / not disokong oleh badan itu tetapi tidak boleh dikarang daripada borang ini — ia memerlukan pokok predikat yang ditulis dengan tangan di bawah extras.predicate. Kosa kata penuh predikat dan pengendali ada dalam rujukan langkah pipeline.

Tiada konfigurasi tersendiri: ia menunggu semua langkah huluannya.

Gerbang itu menghantar ejen pelulus ke dalam perbualan tersembunyi dengan prompt gerbang dan menangguhkan. Pelulus meminta keputusan anda dalam perbualan itu dan menyerahkannya dengan submit_output sebagai { "decision": "approved" | "rejected", "reason": "..." }. Keputusan itu mendarat di bawah kunci output (lalai approval_decision), jadi router suis di hiliran boleh mencabang berdasarkannya.

Tetapkan Ejen kepada pelulus dan Templat prompt kepada soalan gerbang. Gerbang diselesaikan melalui submit_output sebagai { "decision": "approved" | "rejected", "reason": "..." }. Nod Reviewer (prompt) menyerah dengan cara yang sama.

Menambah ID pasukan dan Modus penghantaran. Pemilih itu menawarkan tepat dua modus:

  • allParallel — satu tugasan bagi setiap anggota, menangguhkan sehingga semua selesai.
  • manager — menghantar pemimpin, yang kemudian mewakilkan.

Sebarang nilai lain yang tersimpan berkelakuan sebagai allParallel. Tetapkan Pengurang kepada append untuk mengumpulkan hasil setiap anggota ke dalam senarai di bawah kunci output.

For each memetakan ke atas kunci keadaan items secara lalai (extras.iterableKey / extras.itemKey pada nod). Ia memaparkan promptnya sekali bagi setiap item ({{item}} secara lalai) dan menghantar ejen sekali dengan prompt itu dicantumkan. Koleksi kosong selesai serta-merta dengan senarai kosong. Ia bukan satu penghantaran selari bagi setiap item.

Call sub-pipeline menangguhkan sehingga larian anak mencapai keadaan terminal, kemudian menggabungkan keadaan akhir anak di bawah kunci output (lalai subflow_result). Arahkannya kepada anak dengan extras.templateId. Sesuatu templat tidak boleh memanggil dirinya sendiri; anak yang gagal atau dibatalkan menggagalkan langkah induk, yang kemudian menyuap polisi cuba semula dan terus-walaupun-gagal langkah itu.

Kedua-duanya berada di sebalik Larian manual dalam pengepala editor.

  1. Tekan Larian manual.
  2. Hidupkan Benarkan larian manual. Suis ini kekal serta-merta — ia mencipta (atau memadam) baris pencetus manual yang menjadikan templat itu muncul dalam pemilih larian.
  3. Tetapkan Maksimum larian selari jika anda mahu had (biarkan kosong untuk tanpa had). Permulaan tambahan menunggu dalam keadaan queued sehingga satu slot kosong.
  4. Tekan Tambah input bagi setiap medan borang yang perlu dikumpulkan oleh larian manual:
Medan Keterangan
Kunci Kunci keadaan tempat nilai disimpan; rujuk sebagai {{key}}
Label Label paparan (lalai kepada kunci)
Jenis Teks, Teks berbilang baris, Nombor, Togol, Pilih, Repositori
Pilihan (dipisahkan koma) Pilihan dipisahkan koma, untuk Pilih sahaja
Nilai lalai Nilai yang telah diisi terlebih dahulu
Pemegang tempat Teks petunjuk di dalam medan kosong
Teks bantuan Teks bantuan di bawah medan
Diperlukan Sama ada borang larian menyekat nilai kosong

Input Repositori memaparkan pemilih ke atas repositori ruang kerja dan mengisi repo_id, repo_local_path, repo_full_name dan — apabila repositori itu mempunyai remote GitHub — repo_owner dan repo_name ke dalam muatan larian.

  1. Tekan Simpan dalam dialog. Suntingan input dilipat ke dalam draf; ia kekal apabila anda menyimpan templat.
  1. Tekan Simpan dalam pengepala editor. Pengepala menunjukkan “Perubahan belum disimpan” sehingga anda melakukannya.
  2. Kembali ke Tetapan → Ruang kerja → Templat pipeline dan pastikan suis baris templat itu dihidupkan. Enjin menolak untuk memulakan templat yang dilumpuhkan dan templat yang dilumpuhkan tidak pernah muncul dalam pemilih larian.
  3. Untuk memulakannya secara automatik, seret pencetus dari pustaka nod ke kanvas — lihat Sediakan pencetus pipeline.