Bỏ qua để đến nội dung

Tạo mẫu quy trình

Mẫu quy trình được soạn trong cài đặt không gian làm việc. Mục Pipelines trên thanh điều hướng phụ của không gian làm việc là hàng đợi lần chạy, không phải danh sách mẫu — nó không có thao tác “tạo mẫu”.

Để biết ý nghĩa của từng loại bước, khóa body và trường cấu hình, hãy xem tham chiếu các bước quy trình.

  1. Mở Cài đặt → Không gian làm việc → Mẫu quy trình (/workspaces/<workspace-id>/settings/pipelines).
  2. Nhấn Mẫu mới.

Không có hộp thoại nhập id. Trình chỉnh sửa mở ra ngay trên một bộ khung được gieo sẵn tên là Quy trình mới, với id được cấp tự động (pipeline_1, rồi pipeline_2, …). Nhấp vào tiêu đề ở phần đầu để đổi tên nó.

Canvas không trống: một nút đầu vào Trigger, một nút agent prompt mang nhãn Step và một điểm đánh dấu terminal kết thúc lần chạy. Điểm đánh dấu này không được vẽ ra. Trình chỉnh sửa nối lại terminal ẩn đó tới mọi nút đích tiếp cận được, nên công việc bạn gắn thêm sau Step vẫn chạy.

Thanh bên Thư viện nút nằm cố định ở bên trái trình chỉnh sửa. Lọc nó bằng ô Tìm node và kéo một mục vào canvas — nút sẽ nằm đúng nơi bạn thả, không có kết nối vào.

Nút trong bảng chọn Loại bước Tác dụng
Bash script listen Chạy một script shell có thay thế {{state}}; không điều phối agent nào
Open conversation listen Mở không gian hiển thị duy nhất của lần chạy cùng bản checkout của nó; các nút agent tham gia phòng này
Clone PR branch listen Phát hiện nhánh đầu của PR qua gh pr view và clone nó vào thư mục lần chạy
Post PR comment listen Đăng các phát hiện đã tổng hợp lên PR dưới dạng bình luận đánh giá của GitHub
Reviewer (prompt) listen Điều phối một agent đánh giá chuyên biệt; tạm dừng cho đến khi agent gửi kết quả của nó
Consolidate (join) join Chờ vài nhánh thượng nguồn, rồi nhờ một agent tổng hợp đầu ra của chúng
Custom prompt listen Nút tổng quát chạy bằng prompt, định tuyến qua body promptAgent
Post to space listen Gửi một tin nhắn tới một không gian nhắn tin
Condition / switch (router) router Rẽ nhánh luồng theo một giá trị trạng thái
If file exists (router) router Định tuyến "true" khi một đường dẫn tồn tại dưới bản clone, nếu không thì "false"
Any file exists (OR router) router Định tuyến "true" khi bất kỳ đường dẫn nào được liệt kê tồn tại
All conditions (AND router) router Định tuyến "true" chỉ khi mọi đường dẫn được liệt kê đều tồn tại
Team dispatch listen Điều phối cả một nhóm và tạm dừng cho đến khi nhóm hoàn tất
Approval gate listen Tạm dừng để chờ quyết định phê duyệt
For each (map) forEach Kết xuất một prompt cho mỗi mục, rồi điều phối agent một lần với các prompt đó được ghép lại
Call sub-pipeline listen Chạy một mẫu khác như một bước lồng nhau
Clean up worktrees listen Gỡ các worktree cách ly cũ; tất định, không điều phối agent nào

Thư viện nhóm chúng dưới Luồng & logic, Đánh giá PR, Agents, Nhắn tin và Code. Không có nhóm Demo.

Mỗi nút công việc có một cổng đầu ra hình tròn ở cạnh phải. Kéo từ cổng đó sang một nút khác để nối chúng. Các trình kích hoạt khởi đầu cũng vậy: mỗi cái sở hữu cổng riêng, nên một dây nối từ Lịch sẽ không đồng thời đi ra từ Chạy thủ công. Nhấn Thêm bước (+) ngay sau một nút để chèn một loại nút vào sau nó. Đưa chuột vào điểm giữa của một cạnh sẵn có và nhấn × để ngắt kết nối.

Cũng có thể chỉnh sửa kết nối từ chính nút nhận chúng:

  1. Chọn nút hạ nguồn. Bảng cấu hình của nó mở ra ở bên phải.
  2. Cuộn tới Triggers from và nhấn vào chip của từng nút thượng nguồn mà nút này cần lắng nghe. Nhấn lại vào một chip đã chọn sẽ gỡ kết nối.
  3. Nếu một nút thượng nguồn là router, một khối Khóa định tuyến xuất hiện bên dưới các chip, với một trường Khóa định tuyến từ <node> cho mỗi cạnh router. Nhập khóa mà cạnh đó kích hoạt — true hoặc false cho các router kiểm tra tệp tồn tại, hoặc tên nhánh cho một switch.

Mỗi nút trình kích hoạt là một điểm đầu vào. Một nút có thể lắng nghe nhiều thượng nguồn (fan-in) và nuôi nhiều hạ nguồn (fan-out), và đồ thị phải luôn không có chu trình — không gì trong trình chỉnh sửa ngăn bạn nối thành một chu trình, nên hãy tự kiểm tra.

Điểm đánh dấu terminal bị lọc khỏi canvas nên không thể chọn được. Trình chỉnh sửa nối lại nó tới mọi nút đích tiếp cận được mỗi khi đồ thị thay đổi, nên công việc bạn gắn thêm sau Step được gieo sẵn vẫn chạy. Một đồ thị rỗng (trình kích hoạt không có nút công việc kế tiếp) liệt kê chính trình kích hoạt để một lần chạy hoàn tất ngay.

Chọn một nút để mở bảng cấu hình của nó. Những trường nào xuất hiện phụ thuộc vào body của nút.

Mọi nút đều có Nhãn, Khóa đầu vào (các khóa trạng thái cách nhau bằng dấu phẩy, được đọc lúc thực thi) và, trong Nâng cao, Reducer, Hết thời gian (ms), Số lần thử lại, Tiếp tục nếu bước này thất bại và Lược đồ đầu ra. Các nút listen và join cũng có thể chuyển Loại của chúng qua lại giữa hai giá trị đó.

Thêm một bộ chọn phạm vi repo (những repo nào của không gian làm việc sẽ được checkout; để trống nghĩa là không có), một Tên không gian và một hộp kiểm Mở hội thoại trong đó. Khi hộp kiểm đó được bật, một trường Tên hội thoại đặt tên cho stream mà phòng khởi đầu. Các nút agent tham gia phòng này — chúng không tự mở phòng riêng.

Thêm Agent (agent nào sẽ được điều phối), Prompt (dùng {{key}} để tham chiếu đầu vào hoặc đầu ra thượng nguồn) và Khóa đầu ra.

Hết thời gian (ms) tính bằng mili giây, không phải giây — 900000 là 15 phút. Nhập 900 cho bước 0,9 giây.

Chế độ hội thoại mà một nút agent prompt chạy dưới đó không có trường nào trong trình chỉnh sửa trên nút agent. Nó nằm trong extras['mode'] (chat, plan hoặc review) trên nút Open conversation đã tạo phòng (mặc định review). Đặt nó trên một bước agent sẽ bị bỏ qua. Khóa này được khớp chính xác: mọi cách viết khác đều bị âm thầm bỏ qua.

Thêm Script bash. Không có trường thư mục làm việc hay môi trường, vì cả hai đều không cấu hình được:

  • Mọi bước bash trong một lần chạy dùng chung thư mục làm việc <cc_root>/pipelines/<runId>/.
  • GITHUB_TOKEN được tiêm vào từ kho thông tin xác thực, nên gh và git clone https://x-access-token:$GITHUB_TOKEN@… hoạt động mà không cần thiết lập.
  • Script được khởi chạy như đúng tệp thực thi bash, nên bash phải có trong PATH của máy chủ. Đây là một lưu ý trên Windows.

Router đánh giá một điều kiện và trả về một khóa định tuyến; engine chỉ kích hoạt cạnh hạ nguồn có khóa định tuyến khớp và đánh dấu các nhánh khác là bị bỏ qua.

Chọn một router sẽ thay trường Khóa đầu ra bằng trình chỉnh sửa điều kiện. Chọn một trong bốn chế độ của nó:

  • Tệp tồn tại — bất kỳ — định tuyến "true" khi bất kỳ đường dẫn nào được liệt kê tồn tại.
  • Tệp tồn tại — tất cả — định tuyến "true" chỉ khi mọi đường dẫn được liệt kê đều tồn tại.
  • So sánh — so sánh một giá trị trạng thái với một giá trị nguyên văn.
  • Chuyển — định tuyến theo giá trị của một khóa trạng thái, kèm một nhánh mặc định.

Sau đó đặt các khóa định tuyến tương ứng trên các cạnh đi ra (xem Nối các nút với nhau).

Các nhóm boolean and / or / not được body hỗ trợ nhưng không thể tạo từ biểu mẫu này — chúng cần một cây vị từ viết tay dưới extras.predicate. Toàn bộ từ vựng vị từ và toán tử nằm trong tham chiếu các bước quy trình.

Không có cấu hình riêng: nó chờ tất cả các bước thượng nguồn của mình.

Cổng này điều phối agent phê duyệt vào một hội thoại ẩn với prompt của cổng rồi tạm dừng. Agent phê duyệt hỏi xin quyết định của bạn trong hội thoại và gửi nó bằng submit_output dưới dạng { "decision": "approved" | "rejected", "reason": "..." }. Quyết định được ghi vào khóa đầu ra (mặc định approval_decision), nên một router kiểu switch ở hạ nguồn có thể rẽ nhánh theo nó.

Đặt Agent là agent phê duyệt và Prompt là câu hỏi của cổng. Cổng được giải quyết qua submit_output dưới dạng { "decision": "approved" | "rejected", "reason": "..." }. Các nút Reviewer (prompt) cũng gửi theo cách tương tự.

Thêm ID nhóm và Chế độ điều phối. Bộ chọn đưa ra đúng hai chế độ:

  • allParallel — một tác vụ cho mỗi thành viên, tạm dừng cho đến khi tất cả hoàn tất.
  • manager — điều phối trưởng nhóm, người này sẽ ủy thác lại.

Mọi giá trị được lưu khác đều hành xử như allParallel. Đặt Reducer thành append để gom kết quả của từng thành viên vào một danh sách dưới khóa đầu ra.

For each mặc định ánh xạ qua khóa trạng thái items (extras.iterableKey / extras.itemKey trên nút). Nó kết xuất prompt của mình một lần cho mỗi mục ({{item}} theo mặc định) và điều phối agent một lần với các prompt đó được ghép lại. Một tập hợp rỗng hoàn tất ngay với một danh sách rỗng. Đây không phải là một lần điều phối song song cho mỗi mục.

Call sub-pipeline tạm dừng cho đến khi lần chạy con đạt trạng thái kết thúc, rồi hợp nhất trạng thái cuối của con vào dưới khóa đầu ra (mặc định subflow_result). Trỏ nó tới một mẫu con bằng extras.templateId. Một mẫu không thể tự gọi chính nó; một mẫu con thất bại hoặc bị hủy sẽ làm bước cha thất bại, và điều đó lại nuôi chính sách thử lại cùng continue-on-fail của bước đó.

Khai báo đầu vào và cho phép chạy thủ công

Phần tiêu đề “Khai báo đầu vào và cho phép chạy thủ công”

Cả hai nằm phía sau Chạy thủ công trong phần đầu trình chỉnh sửa.

  1. Nhấn Chạy thủ công.
  2. Bật Cho phép chạy thủ công. Công tắc này được lưu ngay lập tức — nó tạo (hoặc xóa) hàng trình kích hoạt manual khiến mẫu xuất hiện trong trình chọn lần chạy.
  3. Đặt Số lần chạy song song tối đa nếu bạn muốn một mức trần (để trống nghĩa là không giới hạn). Các lần khởi chạy thêm sẽ chờ ở trạng thái queued cho đến khi có chỗ trống.
  4. Nhấn Thêm đầu vào cho mỗi trường biểu mẫu mà một lần chạy thủ công cần thu thập:
Trường Mô tả
Khóa Khóa trạng thái mà giá trị được lưu dưới đó; tham chiếu nó bằng {{key}}
Nhãn Nhãn hiển thị (mặc định là khóa)
Loại Văn bản, Văn bản nhiều dòng, Số, Công tắc, Chọn, Repository
Tùy chọn Các lựa chọn cách nhau bằng dấu phẩy, chỉ dành cho Select
Giá trị mặc định Giá trị được điền sẵn
Placeholder Văn bản gợi ý bên trong trường trống
Văn bản trợ giúp Văn bản phụ trợ bên dưới trường
Bắt buộc Liệu biểu mẫu chạy có chặn khi giá trị để trống hay không

Một đầu vào Repository hiển thị bộ chọn trên các repo của không gian làm việc và điền repo_id, repo_local_path, repo_full_name và — khi repo có remote GitHub — repo_owner cùng repo_name vào payload của lần chạy.

  1. Nhấn Lưu trong hộp thoại. Các chỉnh sửa đầu vào được gộp vào bản nháp; chúng được giữ lại khi bạn lưu mẫu.
  1. Nhấn Lưu ở phần đầu trình chỉnh sửa. Phần đầu hiển thị “Thay đổi chưa lưu” cho đến khi bạn lưu.
  2. Quay lại Cài đặt → Không gian làm việc → Mẫu quy trình và kiểm tra công tắc trên hàng của mẫu đang bật. Engine từ chối khởi chạy một mẫu bị tắt và một mẫu bị tắt không bao giờ xuất hiện trong trình chọn lần chạy.
  3. Để tự động khởi chạy nó, hãy kéo một trình kích hoạt từ thư viện nút vào canvas — xem Thiết lập trình kích hoạt quy trình.