Bỏ qua nội dung chính
DocsXây dựng workflowKiểu bước

8 Bước

Sử dụng và tham khảo từ lĩnh vực Agent riêng lẻ, nhóm chat , tác vụ nền tảng , mật mã , phân loại, nhà nước BAR máy tính, sub work, hướng dẫn froval.

Braidrun hiện cung cấp 8 loại bước. Chỉ phải chọn một chế độ chính cho mỗi bước; các trường khác là các cải tiến (thử lại, điều kiện, phê duyệt thủ công, v.v.).

1. đơn - đại lý duy nhất

Bước phổ biến nhất: yêu cầu Đại lý thực hiện một nhiệm vụ.

yaml
  - step: plan
    agent: planner
    input: "Plan a daily report pipeline"
    depends_on: [intro]
    retry:
      maxAttempts: 3
      backoff: exponential

Các cải tiến kết hợp được phép: parallelrepeat_untiliterate_over.

2. group_chat — thảo luận giữa nhiều Agent

Nhiều Đại lý thay phiên nhau nói về cùng một chủ đề. Bạn có thể chỉ định thứ tự phát biểu hoặc để người điều phối dàn nhạc quyết định.

yaml
  - step: peer_review
    group_chat:
      agents: [coder, reviewer]
      topic: "Review the change"
      max_rounds: 6
      repeat_until: "score >= 8"

repeat_until Biểu thức điều kiện sẽ được đánh giá sau mỗi vòng; nếu đạt thì group_chat sẽ kết thúc.

3. Agent_based — ủy quyền động

Agent orchestrator chọn worker và phân phối tác vụ con lúc chạy. So với group_chat tĩnh, phù hợp hơn với kịch bản "tôi không biết ai hợp, để planner quyết định".

yaml
  - step: delegate
    agent_based:
      orchestrator: planner
      workers: [coder, analyst, writer]
      input: "{{steps.plan.output}}"

4. mã - tập lệnh xác định

Hỗ trợ 7 ngôn ngữ: Python / JavaScript / TypeUse / Bash / Ruby / Lua / CLI. Trong sản xuất, họ chạy trong một thùng cát theo mặc định.

yaml
code_preamble:
  python:
    inline: |
      import json, os

workflow:
  - step: transform
    code:
      language: python
      timeout: 30
      script: |
        data = json.loads(os.environ.get("STEP_INPUTS", "{}"))
        print(json.dumps({"rows": len(data)}))
Tiền tố mã chia sẻ

Khi có nhiều bước mã cần chia sẻ các chức năng nhập hoặc tiện ích, hãy sử dụng cấp cao nhất code_preamble, nhóm lại bởi ngôn ngữ lập trình; tại thời điểm chạy nó tự động được chuẩn bị với văn lệnh của các bước mã trong cùng một ngôn ngữ.

5. phân loại - biến định tuyến

Để Agent xuất ra "ngữ cảnh hiện tại thuộc loại nào" và ghi vào một biến định tuyến, cho condition của các bước sau dùng.

yaml
  - step: classify_request
    classifier:
      agent: router
      input: "Classify the user intent"
      categories:
        - name: coding
          description: Needs code changes
        - name: analysis
          description: Needs investigation only
      output_variable: route

  - step: coding_path
    agent: coder
    condition: route == coding
    depends_on: [classify_request]

Khuyến khích classifier + condition thay vì phức tạp on_success.next Mảng chuỗi.

6. state_machine — máy trạng thái lồng nhau

Chạy dưới dạng nút tổng hợp DAG, nó có thể có một số trạng thái và chuyển tiếp bên trong.

yaml
  - step: triage
    state_machine:
      initial: ingest
      states:
        - name: ingest
          agent: planner
          transitions:
            - condition: route == analysis
              next: analyze
            - condition: route == coding
              next: code
        - name: analyze
          agent: analyst
          transitions:
            - next: DONE
        - name: code
          agent: coder
          transitions:
            - next: DONE

Không cấu hình song song ở các bước bên ngoài; chỉ có một luồng đi vào state_machine.

7. sub_workflow - mô-đun quy trình làm việc phụ

Gọi một Mô-đun được xuất bản khác. Đầu vào/đầu ra tuân thủ hợp đồng do mô-đun khai báo; phát hiện vòng lặp được thực hiện trong thời gian chạy.

yaml
  - step: fetch_report
    sub_workflow:
      workflow_id: 0d2c…ab12        # UUID of the published module
      version_strategy: pinned
      pinned_version: "2.0.1"
      inputs:
        app_id: "{{var:app_id}}"
        window: last_7d
      outputs:
        report_path: report_path    # parent variable <- module output

Liệt kê tất cả các mô-đun tích hợp: Thư viện mô- đun có sẵn.

8. dòng chảy ra-t loài đọc - dòng chảy chéo đọc

Một bước cấp hệ thống: nó đọc các giá trị từ các đầu ra được xuất bản bởi một thực hiện workflow khác (xem xuất bản bên dưới) và viết chúng vào các biến công việc này. Theo mặc định, nó đọc nguồn tin mới thực hiện thành công nhất gần đây nhất.

yaml
  - step: read_spend_report
    workflow_output_read:
      workflow_id: 7f3a…9c21           # source workflow UUID
      selector:
        mode: latest_successful
      outputs:
        report_url: spend_report_url   # published name -> local variable
      missing_policy: use_default
      defaults:
        report_url: ""
  • selector.mode — Mặc định là khả năng mới nhất (sự thực hiện thành công gần đây nhất); bạn cũng có thể sử dụng khả năng thực hiện d để chọn một thực hiện cụ thể, hoặc nhập có thể để lấy mã nhận dạng thực hiện từ một biến số
  • outputs — Cần thiết: một bản đồ từ các tên xuất xuất ra đến tên biến này
  • missing_policy — Khi kết xuất còn thiếu: bị lỗi (mặc định, lỗi bước), nhảy qua bước này (skip này) hoặc dùng mặc định (lấy giá trị từ mặc định)
  • require_workflow_status — Mặc định việc thực hiện mã nguồn phải được hoàn tất

Tăng cường cấp bước

Các lĩnh vực sau đây không phải là đứng vững một bước, nhưng tăng cường co thắt thêm vào một bước.

manual_approval — Chấp thuận thủ công

Thêm một cổng hướng dẫn trước bất cứ bước nào: thực hiện tạm dừng và ghi chú người duyệt, tiếp tục được chấp thuận, và dừng lại khi bị từ chối hoặc hoãn lại.

yaml
  - step: deploy
    agent: deployer
    input: "Deploy to production"
    manual_approval:
      enabled: true
      approvers:
        - team-lead@company.com
      timeout: 3600
      approval_message: "Ready to ship?"

Xem danh sách tham số đầy đủ và quá trình phê duyệt: Chấp thuận thủ công.

publish_outputs — Xuất khẩu đầu ra bên ngoài

Sau khi một bước thành công, xuất bản tên đầu ra cho các luồng công việc khác để đọc thông qua công việc luồng ra-trat read. Theo mặc định, không có hiện vật bên trong được xuất bản.

yaml
  - step: build_report
    agent: analyst
    input: "Summarize yesterday's spend"
    publish_outputs:
      - name: report_url
        type: url
        source: "{{steps.build_report.output}}"
        description: Latest spend report link
        visibility:
          scope: team
  • source — Cần thiết: một biểu thức mẫu đánh giá vào thời điểm xuất bản, ví dụ tham khảo lại đầu ra của bước này
  • type — Mặc định là văn bản; cũng hỗ trợ Đánh dấu, json, số, booleany, url, file, v. v
  • visibility.scope — riêng (mặc định, chỉ người sở hữu workflow), nhóm, hoặc công việc luồng cho phép danh sách (đã cho phép công việc)

structured_output — Kết xuất cuối cùng đã cấu trúc

Chỉ có bước đơn Agent: Agent gọi các công cụ như bình thường, nhưng câu trả lời cuối cùng của nó được phân tích thành một kết quả có cấu trúc chống lại một giản đồ đã đăng ký; khi viết to được thiết lập, kết quả cũng được lặp lại thành một tập tin.

yaml
  - step: final_commentary
    agent: analyst
    input: "Write the commentary"
    structured_output:
      schema: ai_commentary_parts
      write_to: "{{var:output_dir}}/commentary.json"
      fail_on_empty: true
  • schema — Cần thiết: tên của một cấu trúc đã đăng ký
  • write_to — Tùy chọn: đường dẫn tập tin cần ghi, với hỗ trợ kiểu dáng; định dạng ghi hiện thời chỉ hỗ trợ json
  • fail_on_empty — Có nên thất bại khi kết quả cấu trúc trống; mặc định là đúng

Xem nhanh giới hạn kết hợp

  • parallel — Chỉ có thể định cấu hình các bước Đại lý duy nhất
  • repeat_until — Chỉ một Đại lý hoặc nhóm_chat
  • iterate_over — Chỉ một Đại lý hoặc mã duy nhất
  • structured_output — Chỉ bước đơn
  • state_machine — Chạy dưới dạng nút tổng hợp DAG, không cấu hình song song ở lớp bên ngoài