Bỏ qua nội dung chính
DocsXây dựng workflowVăn bản tiêu đề chọn

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.

trình phân tích cú pháp có thẩm quyền

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 DTOYAML
groupChatgroup_chat
agentBasedagent_based
stateMachinestate_machine
repeatUntilrepeat_until
iterateOveriterate_over
manualApprovalmanual_approval
onSuccess / onFailureon_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:

yaml
agents:
  planner:
    preset: universal
  coder:
    preset: coder
    overrides:
      max_iterations: 2000

Tham 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}}
yaml
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à sai
  • contains / contains_cs — Quản lý kiểm tra, phân biệt trường hợp
  • contains_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ụ:

yaml
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:

yaml
condition: "{{var:route}} == coding"      # don't — write the variable name directly
condition: (a == 1 || b == 2) && c == 3   # don't — parentheses are not supported

Việ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ữ:

yaml
code_preamble:
  python:
    ref: ./lib/shared_utils.py

Hoặc sử dụng biểu mẫu nội tuyến:

yaml
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:

yaml
on_success:
  - next: publish

on_failure:
  - notify: slack
    message: implementation failed
    stop: true

Khi xuất dưới dạng Web DTO, nó tương ứng với:

json
{
  "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 / repeatUntil Sau khi trường DTO được xuất, nó đã được chuyển đổi thành snake_case