Tham chiếu cú pháp YAML
Tham khảo biến, biểu thức điều kiện, định sẵn tác vụ, mã phần mở rộng - tham khảo đầy đủ và có thẩm quyền cho Braidrun YML.
Web DTO của Braidrun thực hiện chuyến đi khứ hồi cấp byte YAML, nhưng sử dụng kiểu đặt tên trường khác: camelCase vs snake_case. Trang này giải thích rõ ràng về ánh xạ, biến, điều kiện và quy tắc đặt trước mà bạn cần biết.
Mở rộng và YAML vòng-trip cả hai sử dụng nền tảng máy đọc giao diện /api/workflows/parse để tránh viết một bộ luật khác về phía trình duyệt.
Đặt tên: CamelCase ↔ snake_case
Web JSON sử dụng lạc đàCase; thực hiện YAML sử dụng rắn case:
| Web DTO | YAML |
|---|---|
groupChat | group_chat |
agentBased | agent_based |
stateMachine | state_machine |
repeatUntil | repeat_until |
iterateOver | iterate_over |
manualApproval | manual_approval |
onSuccess / onFailure | on_success / on_failure |
Đặt trước và ghi đè Agent
Bạn nên sử dụng giá trị đặt trước để khai báo Agent và sử dụng phần ghi đè để bao gồm bất kỳ trường nào khi cần thiết:
agents:
planner:
preset: universal
coder:
preset: coder
overrides:
max_iterations: 2000Tham chiếu biến
- Các biến quy trình làm việc:
{{var:name}} - Bước đầu ra:
{{steps.step_name.output}}
variables:
topic: workflow
workflow:
- step: plan
agent: planner
input: "Plan for {{var:topic}}"
- step: implement
agent: coder
input: "Implement based on {{steps.plan.output}}"
depends_on: [plan]Biểu thức điều kiện (điều kiện)
Hình thức cơ bản là "trái bên phải", và người điều hành phải có khoảng trống ở cả hai bên. Các nhà điều hành được hỗ trợ:
==/!=— So sánh chuỗi chính xác, nhạy cảm với trường hợp><>=<=— So sánh thuộc số; nếu hai bên không phải là một số, điều kiện được đối xử là saicontains/contains_cs— Quản lý kiểm tra, phân biệt trường hợpcontains_ci— Kiểm tra tình hình, kiểm tra hồ sơ
Nhiều so sánh có thể được kết hợp ở cấp cao nhất với &&(và) và ||(hoặc); && bị trói chặt hơn và được nhóm lại trước. Ví dụ:
condition: route == coding
condition: score >= 8
condition: status == done && score >= 8
# && binds tighter — reads as (a == 1 && b != done) || retry == true
condition: a == 1 && b != done || retry == trueĐừng viết:
condition: "{{var:route}} == coding" # don't — write the variable name directly
condition: (a == 1 || b == 2) && c == 3 # don't — parentheses are not supportedViệc bố mẹ nhóm lại không được hỗ trợ — khi bạn cần lập luận phức tạp hơn, hãy sử dụng classifier để tạo ra một biến số định tuyến hoặc chia nó thành nhiều bước. Ghi rõ tên biến; đừng dùng cú pháp có sẵn trong tình trạng nào. Một điều kiện không thể phân tích được sẽ bị đối xử sai lầm, và bước được bỏ qua.
code_preamble - lời mở đầu mã được chia sẻ
Khi nhiều mật mã bước cần phải chia sẻ nhập khẩu hoặc chức năng trợ giúp, hãy sử dụng mã cấp cao phía trước. Nó được nhóm lại bởi ngôn ngữ lập trình và, tại thời điểm chạy, tự động chuẩn bị các tập lệnh của các bước mã trong cùng một ngôn ngữ:
code_preamble:
python:
ref: ./lib/shared_utils.pyHoặc sử dụng biểu mẫu nội tuyến:
code_preamble:
python:
inline: |
import json, os
def log(msg):
print(f"[workflow] {msg}")Hành động chuyển tiếp(on_success / on_failure)
Sử dụng dạng đối tượng hành động thay vì mảng chuỗi:
on_success:
- next: publish
on_failure:
- notify: slack
message: implementation failed
stop: trueKhi xuất dưới dạng Web DTO, nó tương ứng với:
{
"onSuccess": [{"next": "publish"}],
"onFailure": [
{
"notify": "slack",
"message": "implementation failed",
"stop": true
}
]
}Danh sách điều khoản xác minh
- Cách sử dụng tham chiếu biến
{{var:name}} - YAML đã xuất vẫn vượt qua
/api/workflows/parseđọc lại - Trạng thái không có biến mẫu, và tổ hợp & & & & && / chămm không dùng dấu ngoặc
manualApproval/onFailure/repeatUntilSau khi trường DTO được xuất, nó đã được chuyển đổi thành snake_case